Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

ГЛ А В А 1 5 П рограммирование UART и обмен данными с персональным комп ьютером Все контроллеры АVR, кроме самых младших Тiny, содержат в себе модули асин­ хронного приемопередатчика UART или синхронно-асинхронного USART. При работе USART в асинхронном режиме он ничем не отличается от обычного UART (и по умолчанию дополнительные функции USART отключены). В дальнейшем, чтобы не путаться, мы будем обобщенно называть этот модуль UART, подчерки­ вая, что речь идет об асинхронном режиме обмена данными. Дополнительные функции расширенного порта USART в теории должны приблизить этот интерфейс к SPI и TWI, позволяя организовать обмен данными многих устройств между со­ бой, но на практике эти функции так и не прижились, и в огромном большинстве случаев этот порт эксплуатируется как простой UART. Как уже говорилось ранее (см. главу 3), за десятилетия существования этот интер­ фейс «вылизаю> до возможного идеала. UART - самый беспроблемный из всех интерфейсов, и если вы его правильно включаете, то он никогда не сбоит и не отка­ зывает без существенных поводов. По сути, принципиальное ограничение на ис­ пользование UART только одно: в силу своей асинхронной природы он требует «кварцованной» частоты. Использование UART при тактировании контроллера от встроенного RС-генератора в принципе еще возможно при очень низких скоростях передачи (600- 1 200 битов в секунду), но и в этом варианте от сбоев вы не застра­ хованы. А при стандартной для наших целей скорости 9600 тактирование возможно только от внешнего кварца, причем желательно не менее 2-4 МГц (подробнее об этом далее). ЗАМЕТКИ НА ПОЛЯХ UART - основной канал для связи контроллеров AVR с внешним миром . Большая часть последовательных интерфейсов, как проводных, так и беспроводных (RS-232 , RS-485, USB, Wi-Fi , Bluetooth и т. п . ) , все равно в конечном итоге чаще всего сводится именно к использованию UART с дополнением в виде того или иного аппаратного адаптера . Причем нередко эти адаптеры бывают устроены намного сложнее, чем AVR , и обладают развитой собственной функциональностью, так что в таких случаях возникает вопрос: а зачем там AVR вообще нужен? Например, с помощью модулей Wi-Fi на основе популярной микросхемы ESP8266 вполне можно построить беспро-

RkJQdWJsaXNoZXIy MTExODQxMg==