RFM95 digital io для управления отключением звука на PAM8403, чтобы избавиться от шипения во время приема
Я создаю решение с ESP32, усилителем PAM8403, параллельным TFT - дисплеем и модулем RFM95 LoRa. Все работает отлично, но я хочу избавиться от шума, который генерируется, когда Лора находится в режиме приема.
Я могу сделать это, потянув штифт 12 низко на PAM8403, который приглушает весь звук. Однако у меня закончились выходные контакты на ESP32, и уже слишком поздно использовать расширитель ввода-вывода, так как печатная плата была построена.
Моя первоначальная идея состояла в том, чтобы использовать контакты RX/TX на ESP32, когда устройство вышло из режима диагностики. Однако если я смогу избежать этого, то это будет здорово. В моем коде, когда я выпускаю Lora.sleep() / Lora.idle ()
, шипение исчезает.
Поэтому я начал задаваться вопросом, могу ли я просто вызвать функцию отключения звука через другое логическое состояние, которое становится низким, когда ЛоРа бездействует, и высоким, когда спит (позволяя отключить звук).
Я использую библиотеку LoRa
от Sandeep Mistry, и мне было интересно, могу ли я использовать DIO1, DIO2
и т. Д. В качестве вывода ввода-вывода для управления отключением звука. Если нет, то можно ли использовать любой из уже подключенных контактов, чтобы вести себя желаемым образом?
Заранее всем спасибо!
1 ответ
Лучший ответ:
Нет, вы не можете использовать контакты DIO для указания спящего режима. Они могут быть установлены только для обозначения определенных событий, и sleep/idle не входит в их число.
Однако вывод nRESET является необязательным, и вы можете использовать функцию setPins()
в библиотеке LoRa, чтобы изменить, к какому выводу он подключен, и один из вариантов - установить его равным -1
, и в этом случае библиотека игнорирует его (это должно быть запущено до вызова функции .begin ()
).используется только во время begin()
для первоначального сброса модуля LoRa.
Вы можете либо привязать nRESET HIGH (к 3,3 В), чтобы никогда не сбрасывать его, либо соединить его с сигналом сброса другого периферийного устройства, чтобы он сбрасывался одновременно - просто будьте осторожны с порядком инициализации в этом случае, чтобы не сбросить модуль после его настройки...
Ах, приятно знать, что это то, что reset на самом деле делает. С тех пор я внедрил рекламные звуковые эффекты, которые теперь звучат намного лучше без окружающего шипения., @Jaspal Singh Rathour
- Постоянная частота дискретизации АЦП на ESP8266 или ESP32
- Как избежать электромагнитных помех на входе ESP32
- Присоедините функцию Arduino ISR к члену класса
- Внешние прерывания Esp32 иногда отсутствуют
- Как реализовать детектор brown out arduino ESP32?
- Чтение внутренних критических разделов из ISR
- Анимация светодиодной ленты с ESP32 не работает при использовании WiFi
- ESP32 больше не может вводить прерывание после появления прерывания во время функции delayMicrosecond
Похоже, что нет. Контакты 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