Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.08.2007, 10:07
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
I2C подскажите.
Добрый день, кто хорошо знает шину I2C подскажите нормальным русским языком.
Вопрос вот в чём, при записи байта после каждого пакета проверяем ask. Если ask=0 продолжаем, если нет, повторяем только последний байт или с самого начала, начиная со стартового условия?
Если повторяем только последний байт делаем ли паузу, после того как убедились что ask не 0?
При записи одного байта проблем нет, можно повторить весь цикл, а при страничной записи как?
Дата шиты читал, в Help CodeVision смотрел, указанном примере при записи ask не проверяется.
|
|
|
|
09.08.2007, 10:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
в microchip.com даташите 24с256 нарисованы диаграммы и для страничной записи.
Как нарисовано - так и сделайте. будет работать.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
09.08.2007, 13:22
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Всё так и делаю, но при страничной записи не всегда после каждого байта память выставляет ask.
Симулирую в Proteus.
|
|
|
|
09.08.2007, 13:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Как я помню если нет потверждения на получении приемником последнего байта считается что это конец передачи и выставляется условие стоп.И почему не должно быть потверждение? если схема собрана правельно то никаких неприятностей не должно быть.Но про повторную передачу слышал тоже,надо просто посмотреть описание МК с шиной I2C.Если что найду посмотрю.Выложи проект если что не получится посмотрю и то только с пиком
|
|
|
|
09.08.2007, 14:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Если пишеш на ассеме для пиков,то надо самому программно отслеживать бит потверждения и если его нет то вновь посылать байт,все зависит сколько должно передано байт.Но я так понял сам пик не будет заново передавать байт если нет потверждения с шины i2c,просто будет сброшен бит ACKSTAT регистра SSPCON2 .
|
|
|
|
09.08.2007, 14:45
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Сообщение от CERGEI1982
|
Если пишеш на ассеме для пиков,то надо самому программно отслеживать бит потверждения и если его нет то вновь посылать байт,все зависит сколько должно передано байт.Но я так понял сам пик не будет заново передавать байт если нет потверждения с шины i2c,просто будет сброшен бит ACKSTAT регистра SSPCON2 .
|
Делаю на AVR, реализую протокол программно.
получается что при страничной записи если после очередного байта не выставляется ask, то потом хоть до упора передавай его повторно ask уже не выставится.
Пока не дашь стоп, потом цикл записи начинаешь сначала, тогда идёт пока опять не спотыкнётся.
Хотя везде написанно, что если нет потверждения передаём повторно байт.
На логическом анализаторе картинка в точности соответствует тому, что с даташите.
Может быть модель в Proteus не совсем точно моделирует данную память, надо попробовать в железе.
В принципе вопрос уже не горящий. Пока буду писать побайтно, износостойкости памяти по расчётам хватит на два с половиной года активной работы.
|
|
|
|
09.08.2007, 15:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
PROTEUS любит "поприкалываться". Проверяйте в железе.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
09.08.2007, 15:05
|
|
Прописка
Регистрация: 13.06.2004
Адрес: Москва
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 32 раз(а) в 18 сообщении(ях)
|
Re: I2C подскажите.
Сообщение от Andrewg
|
Добрый день, кто хорошо знает шину I2C подскажите нормальным русским языком.
Вопрос вот в чём, при записи байта после каждого пакета проверяем ask. Если ask=0 продолжаем, если нет, повторяем только последний байт или с самого начала, начиная со стартового условия?
Если повторяем только последний байт делаем ли паузу, после того как убедились что ask не 0?
При записи одного байта проблем нет, можно повторить весь цикл, а при страничной записи как?
Дата шиты читал, в Help CodeVision смотрел, указанном примере при записи ask не проверяется.
|
Насколько я помню aсk (acknowledge bit) - подтверждение приема ведомым устройством. Отсутствие ответа от ведомого устройства not acknowledge bit (NAK) при записи говорит о сбое обмена и требует повтора всего цикла передачи.
|
|
|
|
09.08.2007, 15:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Сообщение от avr123-nm-ru
|
PROTEUS любит "поприкалываться". Проверяйте в железе.
|
А кто не любит?
Но если делать всё по датащитам - всё (скорее всего) будет работать нормально как в симуляции, так и в железе.
|
|
|
|
09.08.2007, 15:19
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: I2C подскажите.
Сообщение от Slava1355
|
Насколько я помню aсk (acknowledge bit) - подтверждение приема ведомым устройством. Отсутствие ответа от ведомого устройства not acknowledge bit (NAK) при записи говорит о сбое обмена и требует повтора всего цикла передачи.
|
Наверно так и есть. В симуляции так и не смог записать страницу.
Страница 128 байт, где нибуть, да не выставляет ask.
попробую в железе, потом сообщю результат.
Proteus ни в коем случае не ругаю.
Здорово облегчает отладку.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
i2c и atmega
|
ams666 |
Микроконтроллеры, АЦП, память и т.д |
3 |
29.11.2007 06:12 |
Помогите с I2C
|
mdn_tec |
Микроконтроллеры, АЦП, память и т.д |
27 |
27.04.2007 17:56 |
Подскажите,плиз, ЖКИ с управлением по I2C
|
lisergin |
Микроконтроллеры, АЦП, память и т.д |
3 |
18.07.2005 16:21 |
I2C
|
chipic128 |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.02.2005 02:19 |
I2C
|
zevs |
Микроконтроллеры, АЦП, память и т.д |
0 |
11.01.2005 16:11 |
Часовой пояс GMT +4, время: 22:10.
|
|