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

332 Часть 111. Практическое программирование микроконтроллеров А VR 264 байта будет содержать 9 битов BFAO • . BFAB, поэтому в первом байте размещен только 9-й бит - BFAB). При чтении, кроме того, необходимо послать пустой байт после адреса. Адресация основной памяти в страничных операциях (чтение в буфер из основной памяти и запись из буфера в нее) производится несколько иначе: адрес страницы также 9-битовый ( РАО . . РАВ), эти биты располагаются также в двух байтах, но со сдвигом на одну позицию влево : младший бит младшего байта адреса остается пус­ тым и может иметь любое значение. Пустой байт при адресации страниц требуется послать только после адреса. Буквами r на диаграмме обозначены биты адреса страницы, зарезервированные для старших моделей памяти. Организовать обмен мы попробуем штатным способом на основе аппаратного SPI. На рис. 1 2 .2 приведена схема соединений на основе ATmega8535 для этого случая. Отметим, что серия АТ45 не допускает 5-вольтового напряжения питания (единст­ венная среди прочих в табл. 1 2 . 1 ), поэтому для простоты мы тут питаем всю схему от напряжения 3 ,3 вольта (если внешний источник выдает обычные 5 вольт, то сле­ дует установить 3 -вольтовый стабилизатор - например, типа LP2950-3 .3). В реальных применениях вам, возможно, понадобится подключать контроллер к 5 вольтам, тогда 3-вольтовый стабилизатор следует установить отдельно на мик­ росхему памяти, а управляющие выходы контроллера (РВО, MOSI и SLK) под- Рис. 1 2.2. Схема для тестирования процедур записи и чтения flаsh-памяти 45DBxxxB по последовательному интерфейсу SPI

RkJQdWJsaXNoZXIy MTExODQxMg==