Проектирование средств контроля и диагностики с элементами высокой интеграции. Методические указания - 14 стр.

UptoLike

12
два пути для продолжения работы с памятьюждать 5-10 мс и затем
обращаться к памяти с запросным пакетом, либо постоянно посылать
запросный пакет до тех пор, пока микросхема памяти не откликнется сигналом
ACK.
Запись в память последовательности байт (пакетный режим записи)
Как мы отмечали выше, запись информации по одному байту требует
достаточно длительного времени. Для ускорения процесса записи в составе
микросхемы памяти имеется специальный буфер, в который происходит
предварительная запись получаемой от контроллера информации. Запись
последовательности байт в принципе аналогична записи одного байта с той
лишь разницей, что микроконтроллер не передает сигнал STOP после первого
байта, а просто продолжает передачу, посылая второй байт
, третий и т. д. (не
забывая получать ACK в конце каждого байта). Когда буфер в микросхеме
памяти заполняется полностью, необходимо прекратить передачу и выдать
сигнал STOP, чтобы инициализировать физическую запись буфера в память.
Интересно, что время записи информации из буфера в память практически не
зависит от степени заполнения буфера, т. е. на
запись одного байта из буфера
потребуется примерно столько же времени, что и для записи полного буфера (в
нашем случае буфер имеет размер 64 байта). Процесс записи одиночного байта
по указанному адресу проиллюстрирован рисунком рис. 6.
Рис. 6. Запись последовательности байт
В работе с буфером имеются некоторые тонкости. Эти тонкости связаны
с тем, что передаваемая информация не обязательно начинает заполнять буфер
с его начала.
Вкратце этот процесс можно описать следующим образом.
Предположим, что мы начали запись информации в микросхему
последовательной памяти с адреса 30. Этот адрес был
передан в микросхему
памяти, и ее внутренний счетчик адреса установился в указанное значение.
Теперь мы начали записывать байты один за другим в микросхему памяти (а
точнеев ее буфер) и дошли до конца буфера. Когда это произойдет? Это
произойдет через 34 записи, т. к. длина буфера в нашем случае – 64 байта, а
начали мы его заполнять не с начала, а с адреса 30. После записи 34-х байт