Свежие обсуждения
Микроконтроллеры

I2C + PIC + CСS + Prоteus= Проблема?

1 4 5

Сергей, а длина пакета у Вас какая - 10 байт? Насколько я помню, при приеме последнего байта из пакета, приемнику нужно выставлять на линию вместо бита подтверждения бит отмены. Что пишут про функцию i2c_read - она устанавливает при приеме бит подтверждения?

 

мммм....
это уже интересно
i2c_read можно вызывать с аргументом "0" или "1"....
цитата:
data = i2c_read(ack);
ack -Optional, defaults to 1.
0 indicates do not ack.
1 indicates to ack.

Попробовал изменить код:
if (i<9) sec = i2c_read(1);
else
sec = i2c_read(0);/i>
Похоже пересчтало зависать в симуляторе. Попробую в железке...

УРА!!!! УРА!!!! УРА!!!! УРА!!!! УРА!!!! ЗАРАББОТАЛО!!!!
Наконец то заработало!!!!!
нужно было всегго лиш перед командой СТОП сказать, что я не буду читать больше в этом сеансе. Последняя команда чтения должна быть с аргументом "0" - i2c_read(0)!

Спасибо, уважаемый chav1961!!!!!

 

Сергей К: Спасибо за наводку. Нашел упоминание про то, что с шиной i2c в Протеусе возникают проблемы. Прийдется отлаживать на реальном устройстве

Странно , но я насколько помню проблеммы были не в I2C , а в невнимательности ...

 

Вот пример из ccsc
Examples:
i2c_start();
i2c_write(0xa1);
data1 = i2c_read();
data2 = i2c_read();
i2c_stop();

Про особенности команды i2c_read(0) нет ни слова.

 

В принципе, пример может быть вполне работоспособен. Просто протокол i2c некоторые девайсы могут реализовывать... кхм... с недокументированными фичами. Например, стоп-последовательность автоматически может подразумевать в таком девайсе и конец пакета. В принципе, логично, но с точки зрения протокола - неправильно.

 

Сергей тут не спрашивал, но у меня не получилось тоже... Как в микросхему еепром положить прошивку в протеусе? Есть место под bin файл. А что там должно быть внутри? Каков формат?

 

пример с "их" сайта http://www.ccsinfo.com/forum/viewtopic.php?t=32753&start=11

i2c_start();
i2c_write(NUNCHUCK_I2C_READ_ADDR);
buffer[0] = i2c_read();
buffer[1] = i2c_read();
buffer[2] = i2c_read();
buffer[3] = i2c_read();
buffer[4] = i2c_read();
buffer[5] = i2c_read(0);
i2c_stop();
}

 

Vladikas: Сергей тут не спрашивал, но у меня не получилось тоже... Как в микросхему еепром положить прошивку в протеусе? Есть место под bin файл. А что там должно быть внутри? Каков формат?

Есть конвертеры хекс в бин , если ты про это.
Если прошивка не лезет надо сбросить модель.
З.Ы. Давно эти и другие мелочи собирались в фак вывести .
Счас этим Halex занимается, бум ждать.
Ато в самом деле задолбало каждый день одни и те же вопросы...

 

Может есть какой то хелп полный? Пусть и на английском даже. В русском сегменте сети на свой последний вопрос ответа не нашел, как и в английском хелпе, который прилагался.

 

Vladikas: Может есть какой то хелп полный?
я на днях скачал описание команд ССS (Июль 2001. 2,6Мб, PDF). Там все по английски, но вроди более понятно, чем в родном хэлпе. Называется "C Compiler Reference Manual".
Конвертировал в DjVu. Размер 0,92 Мбайта. Залил на наш обменник и на народ.