Погрузить ATmega328 в очень глубокий сон и послушать последовательный порт?

Я изучил параметры сна ATmega328 и прочитал несколько статей о нем, и мне хотелось бы понять, есть ли еще параметры.

Поэтому я хотел бы получить как можно более низкий ток, так что все, что меньше 100 мкА, будет хорошо — при условии, что я смогу прослушивать UART и прерывания для пробуждения.

Я использую специальную печатную плату (не UNO) с ATmega328p.

Перевод чипа в режим глубокого сна:

 set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
 sleep_enable();
 sleep_cpu ();

не разбудит его с помощью последовательной связи, согласно этому.

Вам нужно будет перевести его в режим IDLE, чтобы слушать последовательный порт, но это будет потреблять несколько мА - плохо.

Я нашел эту ссылку, по которой можно аппаратно подключить последовательный порт к прерыванию — это опасно, так как можно потерять данные, и, кроме того, мне нужны эти 2 контакта прерываний.

Я также прочитал эту статью Гэммона, в которой говорится, что можно отключить некоторые вещи, чтобы перейти в режим ожидания с гораздо меньшим энергопотреблением, но он не упомянул, как именно это достигается:

 power_adc_disable();
      power_spi_disable();
      power_timer0_disable();
      power_timer1_disable();
      power_timer2_disable();
      power_twi_disable();

Итак, в заключение, есть ли какой-либо вариант, позволяющий получить ток менее 0,25 мА, а также прослушивать последовательный порт без каких-либо манипуляций с оборудованием? Например, просыпаетесь с длинным последовательным вводом данных?

, 👍13