ssps 0 23 марта, 2006 Опубликовано 23 марта, 2006 · Жалоба Может кто-нибудь уже писал для PIC'ов I2C-slave device? Поделитесь, пожалуйста... Или дайте ссылку на это. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 12 25 марта, 2006 Опубликовано 25 марта, 2006 · Жалоба Полноценный слэйв? Разве это возможно? Для слэйва времянка слишком строгая, программа не успеет. Мастера можно написать без проблем, а для слэйва лучше юзать что-нибудь вроде PIC16F74 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vm1 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба IIC slave писал на 12С508 и 16С73. В первом случае максимальная скорость не более 20кГц, причём приходилось блокировать SCL согласно спецификации - следовательно мастер должен это понимать, и ждать пока SCL не освободят. Реально нормальный IIC slave- начиная с 16C73 и выше, где есть аппаратная поддержка. Может кто-нибудь уже писал для PIC'ов I2C-slave device? Поделитесь, пожалуйста... Или дайте ссылку на это. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kojevnikov 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Ну а что там сложного. Если физику I2C понимаешь. Если не забуду принесу свой проект. скину. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mollex 0 4 сентября, 2006 Опубликовано 4 сентября, 2006 · Жалоба Помогите пожалуйста разобраться с аппаратной поддержкой I2C Контроллер PIC16f873 Вопрос такой Установка скорости обмена На стр. 78 даташита сказано что она устанавливается по формуле f= fген/(4*(sspadd+1) причем за скорость отвечают семь младших бит, и в этот же регистр записывается адресс при работе в режиме ведомого Я не могу догнать этот регистр двухбайтовый? И как в него записать требуюмое мне значени. Если у кого нибудь есть программки аппаратной реализауии I2C на асемблере или С буду очень благодарен если вы ими поделеитесь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба И на asm., и на С AN736.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mollex 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба Спасибо посмотрел ваши файлы Вот код подлючения модуля и2с void Init_Ssp( void ) { TRISC |= 0b00011000; // ensure SDI and SD0 are inputs SSPIF = 0; // reset I2C based interrupt flag SSPCON2 = 0b00000000; // ensure all state bits are reset SSPSTAT = 0b00000000; // SSPADD = (( FOSC / (4 * i2c_bus_rate) )) - 1; // initialize i2c bus rate SSPCON = 0b00111000; // Master I2C mode } Вторая строчка снизу Что записать в SSPADD чтобы частота SCL была приблизительно 100кГц Пишу программу для чтения из 24С04 Использую компилятор MicroC. Написал программу с помощью стандартных библиотек встроеных в этот компилятор. Начал отлаживать в Протеусе и при помощи логического анализатора посмотрел временные диаграммы. Все нормально но не работает Переписал программу програмно и все заработало Отличие от перво программы было в так называемом времени удержания данных(время когда линия scl меняет значение с 1 на 0 и до прихода нового бита информации на sda) Хотя оно по документации может равняться 0 но я его сдалел несколько наносек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 6 сентября, 2006 Опубликовано 6 сентября, 2006 · Жалоба Если этот код из приведенного мною примера, то i2c_bus_rate=400000 (десятичное), а FOSC = 16000000 (десятичное). Для 100кГц i2c_bus_rate=100000. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 6 сентября, 2006 Опубликовано 6 сентября, 2006 · Жалоба Помогите пожалуйста разобраться с аппаратной поддержкой I2C Контроллер PIC16f873 Вопрос такой Установка скорости обмена На стр. 78 даташита сказано что она устанавливается по формуле f= fген/(4*(sspadd+1) причем за скорость отвечают семь младших бит, и в этот же регистр записывается адресс при работе в режиме ведомого Я не могу догнать этот регистр двухбайтовый? И как в него записать требуюмое мне значени. Если у кого нибудь есть программки аппаратной реализауии I2C на асемблере или С буду очень благодарен если вы ими поделеитесь При работе в режиме ведомого скорость обмена задается ведущим, и это регистр можно использовать для задания адреса. А в режиме ведущего, соответственно, отсутствует понятие адреса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mollex 0 6 сентября, 2006 Опубликовано 6 сентября, 2006 · Жалоба При работе в режиме ведомого скорость обмена задается ведущим, и это регистр можно использовать для задания адреса. А в режиме ведущего, соответственно, отсутствует понятие адреса. И вправду как все логично получается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться