Раздел: Документация
0 ... 87 88 89 90 91 92 93 ... 105 АО (не используется) М А1 (не используется) (2 А2 (не используется,) ( 3 Vss(4 Зашита даннах
Л. EEPROM- матрица Буфер страницы Vcc Vss Y-декодер I УпраВленje чтением/записью Рис. 7.12. Назначение выводов и внутренняя блок-схема модуля памяти 24LC16B посылается адресный байт, который определяет местоположение ячейки памяти в выбранном блоке. Его значение может быть от 0 до 255. Если проводится операция записи, то следом за ней в микросхему записывается восемь бит данных. В режиме случайного чтения после записи адресного указателя снова генерируется условие «СТАРТ», а потом передаются биты адреса и бит R/W, установленный в 1 (для режима чтения). Затем данные, хранящиеся в памяти, считываются бит за битом. Временные диаграммы операций чтения и записи представлены на рис. 7.13. 6) Cmapm Cmapm Подтверждение ПодтверждениеПодт&ерждение \\ Стоп
Биты управленияАдресные разрядаРазряды данных Нет подтверждения Подтверждение Старт\ Стоп Р Подтверждение О А О ( А
J 1 J L J l Биты управления Адресные разряды Биты упраоленияРазряды данных Рис. 7.13. Временные диаграммы операций чтения и записи а - при записи байта, б - при случайном доступе Интерфейс 12С Рис. 7.14. Экспериментальная схема 24LC16B Текст программы 2416.PAS на ТР6 Program HCjnemory; (•Программа управления модулем памяти 24LC16B.*) (•Компьютер выступает в качестве ведущего устройства, другие микросхемы ведомые •) (•Соединение с экспериментальной платой параллельного порта. D1=SDA, C1=SCK, S1=SDA.») (•Условия шины 12С: SCL=1, SDA=1шина не занята SCL=1, SDA=1 - 0:условие "СТАРТ" SCL=1, SDA=0 - 1:условие "СТОП" допустимые данныеданные постоянны, когда SCL=1 изменение данных:когда SCL=0,*) uses crt,dos; {$1 c:\ioexp\tplib1.pas} var l, l] :integer, block, address,data;byte; (*TP6 программная библиотека PC № 1, преобразование в двоично-десятичный формат •) Function BCD(data:byte):byte; (•Преобразование двоичного кода в двоично-десятичный •) begin BCD-=round((data div I0)«16+10*frac(data/10)); end; На рис. 7.14 приведена схема модуля 24LC16B, соединенного с экспериментальной платой параллельного порта. Контакт D1 управляет линией SDA, данные с которой считываются через контакт S1. Контакт С1 управляет линией SCL. (*ТР6 программная библиотека PC № 2, запись данных в линию SDA.*) Procedure SDA(data:byte); (•Помещение данных в линию SDA.*) begin wnte data port(P address, 1-data) end; (*TP6 программная библиотека PC № 3, управление линией SCL.*) Procedure SCL(data:byte); (•Помещение данных в линию SCL.*) write control port(P address,1-data); end; (*ТР6 программная библиотека PC № 4, инициализация шины PC.*) Procedure INIT, (•Генерация условия инициализации, SDA-SCL=1.«) begin SDA(1); SCL(1); delay(100), end; (*TP6 программная библиотека PC № 5, генерация условия "СТАРТ".*) Procedure START; («Генерация условия "СТАРТ,*) begin SDA(1); SCL(1); SDA(O); SCL(O); end; (»TP6 программная библиотека PC № 6, генерация тактовых импульсов для подтверждения.*) Procedure АСК, (•Генерация подтверждения и соответствующих тактовых импульсов.*) begin SCL(1); SCL(O); end; (*TP6 программная библиотека PC № 7, передача данных в шину PC.*) Procedure TRANSMIT(data:byte); (•Передача данных через шину.*) var 1:byte, begin for i:=8 downto 1 do begin SDA(round(data and bit weight(i)/bit weight(i))); («Помещение данных в линию SDA, когда SCL=0.«) begin SCL(1); SCL(O); («SCL=0 - 1 «) («SCL=1 - 0.*) end, SDA(1), ACK; (*SDA становится равным 1.*) («Генерация тактовых импульсов подтверждения.*) 0 ... 87 88 89 90 91 92 93 ... 105
|