Использование внешнего сброса для запуска приема радиосигнала
Я разрабатываю маломощное радиочастотное приложение с использованием ATTiny (Adafruit Trinket).
Когда система получает радиосигнал, ей нужно считать данные с некоторых датчиков и передать их. Поскольку у меня мало контактов, я пытаюсь придумать креативные (с малым количеством контактов) способы проектирования этой системы.
Моя текущая идея такова:
- Переведите AVR в спящий режим.
- Подключите вывод прерывания Rx радио к выводу сброса AVR
- При сбросе AVR проверьте радиобуфер
- (если в буфере ничего нет, предположим, что это настоящий сброс при включении питания, и вернёмся в спящий режим)
- В противном случае, считывайте показания датчиков, передавайте
- Иди спать
Моя цель заключается в том, чтобы AVR потреблял как можно меньше энергии во время сна (более того, ему нужно будет просыпаться всего несколько раз в день).
Разумно ли использовать вывод сброса AVR таким образом? Есть ли какие-то подводные камни, о которых следует знать?
@baum, 👍2
1 ответ
Лучший ответ:
Я не могу придумать никаких подвохов, за исключением того факта, что память ATtiny будет повторно инициализирован каждый раз, когда вы его сбрасываете. Но я предполагаю, что вы осознавая это.
Обратите внимание, что если вы хотите сохранить некоторые данные после сброса, это возможно использование как встроенной EEPROM, так и .noinit раздел оперативной памяти.
- Как перевести ATtiny/ATmega в режим глубокого сна (чтобы годами работать от батарей), но при этом обнаруживать нажатие кнопки?
- GIMSK' was not declared in this scope
- Как объявить контакт сброса PB3 ATtiny44 в программе (используя платформу IDE arduino)
- Сброс глубокого сна с датчиком удара
- ATtiny85 со сном и последовательным портом
- Сохранить значение в EEPROM для выполнения различных действий при сбросе?
- ESP8266 требует двух перезагрузок, чтобы проснуться от глубокого сна
- Сброс Arduino Uno в коде
Вы также можете использовать регистры EEARL и EEARH для хранения 2 байтов между сбросами, поскольку они сохраняют свое значение между сбросами. Однако такое поведение не указано в техническом описании, поэтому не рекомендуется для критических/профессиональных приложений., @Gerben