Пытаюсь использовать Nano Every в качестве USB-логического анализатора, но не могу изолировать его от "наблюдаемого устройства"

Вот сценарий: у меня есть радио, которое отображает информацию на ЖК-дисплее 1602A. 1602A подключен к заголовку, поэтому я могу легко вытащить его и вместо этого подключить провода логического анализатора. Логический анализатор декодирует протокол HD44780 и показывает мне данные, которые пошли бы на 1602A. Логический анализатор, что неудивительно, не оказывает заметного влияния на радио.

Теперь я хочу заменить логический анализатор на Nano Every. Я подключил его так, чтобы наблюдаемые сигналы были подключены к цифровым входным контактам на каждом. Каждый питается через USB и не намеренно извлекает энергию из радио. Все работает, как ожидалось, и каждый тасует показания на ПК через последовательный. ОДНАКО при такой комбинации радиоприемник потребляет по меньшей мере вдвое больше тока от источника питания, и регуляторы напряжения радиоприемника начинают существенно нагреваться!

Я бы подумал, что цифровые входные контакты каждого из них имеют достаточно высокий импеданс, чтобы это не оказало существенного влияния на радио, точно так же как логический анализатор этого не сделал. Я могу только предположить, что "значительный" ток течет из жидкокристаллического заголовка радио в входные контакты Nano Self, поскольку они являются единственным соединением между радио и Nano.

Итак, я думаю, мой вопрос таков: Как я могу заставить Nano Self работать больше как логический анализатор? Нужна ли мне дополнительная схема между тестируемыми сигналами и входными контактами "Я", возможно, логическими буферами? Или здесь происходит что-то еще?

, 👍1

Обсуждение

в качестве выхода может быть установлен один из выводов ... определите, какие контакты вызывают проблему ... пожалуйста, оставьте свой код, если можете, @jsotola

Это мой первый раз, когда я работаю с регистрами портов, и у меня был "PORTD.DIRCLR = 11111111; // Установите весь порт на вход". Я думаю, что это должно было быть B00000000 вместо этого, правильно?, @Bezewy

11111111-десятичное число ... B1111111111 является двоичным .... вы можете сделать " DDRD = B00000000;", чтобы установить контакты регистра D в качестве входных данных, @jsotola

Извините, это была опечатка-код имел префикс B для двоичного литерала. Я не думаю, что DDRD даже определен для Arduino Nano Каждый или другой ATmega4809 на основе ардуино. Это могло бы быть так, если бы в разделе Инструменты в IDE был выбран пункт "эмуляция регистра", но вместо этого я решил использовать новые регистры портов.., @Bezewy


1 ответ


1

@jsotola был правильным, и программное обеспечение неверно определило направления выводов. Похоже, я сломал один из выводов в процессе (мультиметр показывает непрерывность между выводом и землей), но когда я перемонтировал новый вывод на порту D и запустил исправленное программное обеспечение, все, кажется, работает так, как ожидалось!

,