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

328 Часть 111. Практическое программирование микроконтроллеров АVR put_O : cbl PORTB , mosi nop ; задержка на один такт r Ьit : sbl PORTB , sck ; выдали строб и подождали nop ; задержка на один такт sblc PINB , miso ; читаем бит с miso rjmp rl_Ьit clc ; если О - сбросим перенос rjmp rend_Ьit rl Ьit : sec ; если 1 - установим перенос rend Ьit : rol data_in ; перенос во входной байт cbl PORTB , sck ; выдали строб и подождали nop dec temp brne spi_loop sei ; если команды cli нет , то тоже можно удалить ret При тактовой частоте МК 4 МГц такая процедура обеспечит скорость передачи по­ рядка 0,5 МГц. Пустые операции ( nop ) нужны, чтобы сформировать задержку (-250 нс при 4 МГц) между формированием данных на линиях MISO и MOSI и мо­ ментом их чтения (перепадом на SCK). Если быстродействие ведомого позволяет, то эти операции можно убрать . В качестве достаточно простого примера использования SPI рассмотрим обмен с flаsh-памятью серии AT45DB. Но сначала попробуем подробнее разобраться в различных типах памяти, которые имеются в продаже. О разновидностях энергонезависимой памяти Напомним, что изначально существовала программируемая энергонезависимая па­ мять PROM, в том числе и однократно программируемые кристаллы (ОТР PROM) - по-русски ППЗУ. Добавка буквы Е (ErasaЫe, стираемая) означала, что такие микро­ схемы позволяют стирать и программировать информацию заново несколько раз. ОТР EPROM и УФ-стираемые версии EPROM давно не применяются, и все совре­ менные ППЗУ являются электрически перепрограммируемыми - ЭСППЗУ, или, по-английски, EEPROM. Эти две буквы: ЭС/ЕЕ, в сущности, вывели такие микро­ схемы из-под определения ROM (Read Only Memory, т. е. «память только для чте­ ния»), т. к. позволяют многократно менять информацию прямо в устройстве, но название сохранилось, позволяя надежно отличить такие микросхемы от обычной быстродействующей памяти RAM. Модная ныне flаsh-память тоже, вообще говоря, относится к EEPROM, но чтобы подчеркнуть разницу в технологиях, чаще всего под EEPROM имеют в виду разновидность с произвольным доступом к байтовым

RkJQdWJsaXNoZXIy MTExODQxMg==