Взялся я тут частично перевести документацию на ATmega16, а именно расставить наконец точки над USART. Изначально хотел перевести для себя, чтобы подробней разобраться, но раз перевел, то почему бы не поделиться. Язык корявенький, но суть понять думаю можно. Если бы я еще красиво фразы строил, то за два вечера точно бы не управился.
Если честно, то четыре года назад, когда datasheet на ATmega16 впервые попал на мой жесткий диск, я был в ужасе. 349 страниц текста, еще и на английском. Только читать замучаешься, не то что понять и разобраться. Так что тем, кто сейчас стоит на той же ступеньке, на которой я тогда, перевод, даже кривой, может быть очень кстати. В главах про USART описывается не только работа с контроллером. Там описан и сам протокол и его реализация, и принцип по которому контроллер его обрабатывает.
Желающие могут качать и читать.
Перевод документации ATmega16, страницы с 144 по 171 — глава USART:
При работе с разными контроллерами и цифровой электроникой постоянно приходится сверяться с документацией и справочниками. Совершенно невозможно удержать в голове все константы, форматы и имена функций. И не нужно. Мозг должен заниматься творчеством. Решил собрать в одном месте несколько полезных шпаргалок.
Думаю, ни для кого не секрет, что первоначально программу в микроконтроллер заливают при помощи специального устройства — программатора. Конечно, ардуинщикам обычно не нужно об этом беспокоиться — у них есть bootloader (загрузчик), заранее прошитый в микроконтроллер, и прошивку он забирает по UART через COM-порт или через USB. Но чтобы прошить этот загрузчик или другую прошивку в «чистый» МК, нужен программатор.
Но в этой статье мы не будем рассматривать сборку и пайку с нуля, а воспользуемся возможностями Arduino. Дело в том, что на большинстве плат Arduino до версии Uno есть микросхема FT232RL компании FTDI.