RFM95 digital io для управления отключением звука на PAM8403, чтобы избавиться от шипения во время приема

Я создаю решение с ESP32, усилителем PAM8403, параллельным TFT - дисплеем и модулем RFM95 LoRa. Все работает отлично, но я хочу избавиться от шума, который генерируется, когда Лора находится в режиме приема.

Я могу сделать это, потянув штифт 12 низко на PAM8403, который приглушает весь звук. Однако у меня закончились выходные контакты на ESP32, и уже слишком поздно использовать расширитель ввода-вывода, так как печатная плата была построена.

Моя первоначальная идея состояла в том, чтобы использовать контакты RX/TX на ESP32, когда устройство вышло из режима диагностики. Однако если я смогу избежать этого, то это будет здорово. В моем коде, когда я выпускаю Lora.sleep() / Lora.idle (), шипение исчезает.

Поэтому я начал задаваться вопросом, могу ли я просто вызвать функцию отключения звука через другое логическое состояние, которое становится низким, когда ЛоРа бездействует, и высоким, когда спит (позволяя отключить звук).

Я использую библиотеку LoRa от Sandeep Mistry, и мне было интересно, могу ли я использовать DIO1, DIO2и т. Д. В качестве вывода ввода-вывода для управления отключением звука. Если нет, то можно ли использовать любой из уже подключенных контактов, чтобы вести себя желаемым образом?

Заранее всем спасибо!

, 👍0

Обсуждение

Похоже, что нет. Контакты DIO могут быть настроены для указания определенных событий, ни одно из которых не является спящим / бездействующим., @Majenko

Спасибо @Majenko - будут ли какие-либо события, которые могут быть подделаны со стороны пользователя (ESP32 / программно), которые будут удерживать один из контактов на низком уровне? Во время периода отключения звука я не хочу использовать плату lora, просто используйте ее для изменения состояний..., @Jaspal Singh Rathour

На самом деле, что, если я отсоединю штырь сброса и подключу его к ESP32, это не будет бесплатно, как PIN up? или есть проблемы в будущем из-за отсутствия выделенного вывода сброса для RFM95.., @Jaspal Singh Rathour

Да, похоже, вы могли бы переориентироваться на сброс. Библиотека использует это только в begin (), и есть специальный случай, проверяющий, установлен ли вывод сброса в -1, и в этом случае он игнорирует его. Таким образом, вы можете привязать nRESET к +3,3 В и использовать свой вывод сброса GPIO для другой цели, если используете функцию setPins () для изменения nRESET на -1., @Majenko

Спасибо @Majenko Я знал, что где-то будет способ.... поэтому у меня есть TFT Reset и емкостный сенсорный сброс, соединенные вместе. Должен ли я подключить сброс для rfm к ним или на самом деле нет необходимости иметь соединение сброса? Или даже сброс esp32..., @Jaspal Singh Rathour

Сброс может привести вещи в заведомо хорошее состояние, так что это удобно иметь. Конечно, один большой мастер-сброс для сброса всех ваших периферийных устройств при запуске-это хорошо. Однако я бы избегал сброса ESP32, так как это происходит при загрузке кода., @Majenko


1 ответ


Лучший ответ:

2

Нет, вы не можете использовать контакты DIO для указания спящего режима. Они могут быть установлены только для обозначения определенных событий, и sleep/idle не входит в их число.

Однако вывод nRESET является необязательным, и вы можете использовать функцию setPins() в библиотеке LoRa, чтобы изменить, к какому выводу он подключен, и один из вариантов - установить его равным -1, и в этом случае библиотека игнорирует его (это должно быть запущено до вызова функции .begin ()).используется только во время begin() для первоначального сброса модуля LoRa.

Вы можете либо привязать nRESET HIGH (к 3,3 В), чтобы никогда не сбрасывать его, либо соединить его с сигналом сброса другого периферийного устройства, чтобы он сбрасывался одновременно - просто будьте осторожны с порядком инициализации в этом случае, чтобы не сбросить модуль после его настройки...

,

Ах, приятно знать, что это то, что reset на самом деле делает. С тех пор я внедрил рекламные звуковые эффекты, которые теперь звучат намного лучше без окружающего шипения., @Jaspal Singh Rathour