I2C. Постраничный доступ к Slave на ATmega

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

I2C. Постраничный доступ к Slave на ATmega

Сообщение T-Xen »

Добрый день всем =)
С постраничным доступом к EEPROM-кам всё более менее понятно. Но что если в роли ведомого выступает микроконтроллер, у которого адрес страницы является командой на выдачу определенных данных? Как тогда может примерно выглядеть код такого ведомого? :)
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: I2C. Постраничный доступ к Slave на ATmega

Сообщение igor-x »

T-Xen писал(а): :)


поищи библиотеку avrlib от Pascal Stang . там и мастер и ведомый хорошо реализован
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

Re: I2C. Постраничный доступ к Slave на ATmega

Сообщение T-Xen »

Я именно этой библиотекой и пользуюсь
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: I2C. Постраничный доступ к Slave на ATmega

Сообщение igor-x »

T-Xen писал(а):Я именно этой библиотекой и пользуюсь


тогда в чем же трудности? - на Мастере инициируем обмен со слейвом. для примера так:

i2cMasterReceive(TARGET_ADDR, strlen(RecBuf),&RecBuf[0]) ;
в RecBuf имеем необходимое количество байт( или старниц) полученных из слейв

или
i2cMasterTransmit(TARGET_ADDR, strlen(RecBuf),&RecBuf[0]) ;

RecBuf передается в слэйв

а со стороны слэва практически никакого кода не надо - он просто получает в буфере переданное количество байт.
или передает запрошенное количество байт , находящичся в буфере для передачи
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

Re: I2C. Постраничный доступ к Slave на ATmega

Сообщение T-Xen »

А как же слэйв поймет какую страницу передавать?

У меня есть мысль сделать вот как. Мастер посылает бит номера страницы. Ведомый при приеме в свитче заносит в свой выходной буфер данные соответствующей страницы. Потом мастер переходит в режим чтения и ведомый выдает ему то, что лежит в буфере.
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: I2C. Постраничный доступ к Slave на ATmega

Сообщение igor-x »

T-Xen писал(а):А как же слэйв поймет какую страницу передавать?

У меня есть мысль сделать вот как. Мастер посылает бит номера страницы. Ведомый при приеме в свитче заносит в свой выходной буфер данные соответствующей страницы. Потом мастер переходит в режим чтения и ведомый выдает ему то, что лежит в буфере.


.. не совсем понятен термин "страница" в применениии к памяти МК.
ну неважно.

приведенный вами алгоритм реализуется двумя функциями библиотеки i2cSlaveReceiveService и i2cSlaveTransmitService .
Мастер посылает "бит номера страницы" или еще какую либо команду, после приема блока данных slave вызывает i2cSlaveReceiveService , анализирует команду и помещает в выходной буфер необходимые данные.
после это , если Мастер сделает обмен по шине - прием данных из slave., то получит в своем буфере данные из slave.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»