С постраничным доступом к EEPROM-кам всё более менее понятно. Но что если в роли ведомого выступает микроконтроллер, у которого адрес страницы является командой на выдачу определенных данных? Как тогда может примерно выглядеть код такого ведомого?
I2C. Постраничный доступ к Slave на ATmega
I2C. Постраничный доступ к Slave на ATmega
Добрый день всем =)
С постраничным доступом к EEPROM-кам всё более менее понятно. Но что если в роли ведомого выступает микроконтроллер, у которого адрес страницы является командой на выдачу определенных данных? Как тогда может примерно выглядеть код такого ведомого?
С постраничным доступом к EEPROM-кам всё более менее понятно. Но что если в роли ведомого выступает микроконтроллер, у которого адрес страницы является командой на выдачу определенных данных? Как тогда может примерно выглядеть код такого ведомого?
Re: I2C. Постраничный доступ к Slave на ATmega
T-Xen писал(а):
поищи библиотеку avrlib от Pascal Stang . там и мастер и ведомый хорошо реализован
Re: I2C. Постраничный доступ к Slave на ATmega
Я именно этой библиотекой и пользуюсь
Re: I2C. Постраничный доступ к Slave на ATmega
T-Xen писал(а):Я именно этой библиотекой и пользуюсь
тогда в чем же трудности? - на Мастере инициируем обмен со слейвом. для примера так:
i2cMasterReceive(TARGET_ADDR, strlen(RecBuf),&RecBuf[0]) ;
в RecBuf имеем необходимое количество байт( или старниц) полученных из слейв
или
i2cMasterTransmit(TARGET_ADDR, strlen(RecBuf),&RecBuf[0]) ;
RecBuf передается в слэйв
а со стороны слэва практически никакого кода не надо - он просто получает в буфере переданное количество байт.
или передает запрошенное количество байт , находящичся в буфере для передачи
Re: I2C. Постраничный доступ к Slave на ATmega
А как же слэйв поймет какую страницу передавать?
У меня есть мысль сделать вот как. Мастер посылает бит номера страницы. Ведомый при приеме в свитче заносит в свой выходной буфер данные соответствующей страницы. Потом мастер переходит в режим чтения и ведомый выдает ему то, что лежит в буфере.
У меня есть мысль сделать вот как. Мастер посылает бит номера страницы. Ведомый при приеме в свитче заносит в свой выходной буфер данные соответствующей страницы. Потом мастер переходит в режим чтения и ведомый выдает ему то, что лежит в буфере.
Re: I2C. Постраничный доступ к Slave на ATmega
T-Xen писал(а):А как же слэйв поймет какую страницу передавать?
У меня есть мысль сделать вот как. Мастер посылает бит номера страницы. Ведомый при приеме в свитче заносит в свой выходной буфер данные соответствующей страницы. Потом мастер переходит в режим чтения и ведомый выдает ему то, что лежит в буфере.
.. не совсем понятен термин "страница" в применениии к памяти МК.
ну неважно.
приведенный вами алгоритм реализуется двумя функциями библиотеки i2cSlaveReceiveService и i2cSlaveTransmitService .
Мастер посылает "бит номера страницы" или еще какую либо команду, после приема блока данных slave вызывает i2cSlaveReceiveService , анализирует команду и помещает в выходной буфер необходимые данные.
после это , если Мастер сделает обмен по шине - прием данных из slave., то получит в своем буфере данные из slave.