Минимальная скорость ATMega328 с UART

9

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

Текущий план состоит в том, чтобы подключить UART к приемнику RF Link для связи на скорости 1200 бод.

Что меня интересует, так это то, какова минимальная скорость, на которой я могу запустить ATMega328 и при этом работать UART со скоростью 1200 бод. 1MHz достаточно быстро?

robzy
источник

Ответы:

11

Часы UART работают в 16 раз быстрее. Таким образом, вы могли бы обойтись без 19,2 кГц. 1 МГц будет хорошо.

Чаще всего вы будете работать с тактовой частотой, которая дает удобный делитель для генерации тактовой частоты UART, и все еще достаточно быстра для любой другой обработки, которую вам нужно выполнить. Каждый раз, когда байт или пакет передаются через UART, переводите ЦП в режим пониженного энергопотребления и снова активируйте прерывание, когда будет готово больше данных.

Клинт Лоуренс
источник
Я думаю, что предложение «Часы UART работают со скоростью, в 16 раз превышающей скорость передачи», немного вводит в заблуждение. Генератор скорости передачи данных USART работает на тактовой частоте системы / генератора и просто предварительно масштабируется значением UBRR. Также это зависит от режима работы. Коэффициент 16 относится к «Асинхронному нормальному режиму».
Rev 1.0
1

По моим наблюдениям, использование ATMega328p ниже 1 МГц для экономии энергии нецелесообразно (поскольку для завершения расчета вам потребуется больше времени). Однако снижение напряжения приведет к высокой экономии энергии. Работа на частоте 1 МГц и 1,8 В потребляет только 1% энергии при работе на частоте 16 МГц и 5 В. Я сделал эту диаграмму энергопотребления ATMega328

Согласно этому AVR UART Calculator, если вы используете AVR на частоте 1 МГц (скорость по умолчанию без внешнего кристалла), вы можете использовать UART до 4800

Cano64
источник