Использование внешнего сброса для запуска приема радиосигнала

Я разрабатываю маломощное радиочастотное приложение с использованием ATTiny (Adafruit Trinket).

Когда система получает радиосигнал, ей нужно считать данные с некоторых датчиков и передать их. Поскольку у меня мало контактов, я пытаюсь придумать креативные (с малым количеством контактов) способы проектирования этой системы.

Моя текущая идея такова:

  • Переведите AVR в спящий режим.
  • Подключите вывод прерывания Rx радио к выводу сброса AVR
  • При сбросе AVR проверьте радиобуфер
    • (если в буфере ничего нет, предположим, что это настоящий сброс при включении питания, и вернёмся в спящий режим)
  • В противном случае, считывайте показания датчиков, передавайте
  • Иди спать

Моя цель заключается в том, чтобы AVR потреблял как можно меньше энергии во время сна (более того, ему нужно будет просыпаться всего несколько раз в день).

Разумно ли использовать вывод сброса AVR таким образом? Есть ли какие-то подводные камни, о которых следует знать?

, 👍2


1 ответ


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

1

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

Обратите внимание, что если вы хотите сохранить некоторые данные после сброса, это возможно использование как встроенной EEPROM, так и .noinit раздел оперативной памяти.

,

Вы также можете использовать регистры EEARL и EEARH для хранения 2 байтов между сбросами, поскольку они сохраняют свое значение между сбросами. Однако такое поведение не указано в техническом описании, поэтому не рекомендуется для критических/профессиональных приложений., @Gerben