[an error occurred while processing this directive]
Вопрос к знатокам I2C между PIC и 24LC256
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SKov 20 января 2003 г. 16:06

Раньше использовал аппаратный I2C (у PIC16F877) и не было проблем, а теперь понадобилась софтверная реализация и в процессе ее отладки возникли вопросы. А именно:
Реализую последовательное чтение, дополняя каждый байт , как и положено, сигналом ACK. Теперь предположим, что неожиданно программа узнает, что надо заканчивать чтение (и переходить к записи), а последний ACK уже выдан.
Что делать ?
Естественное желание - выдать STOP, чтобы начать новую жизнь. Однако этот естественный шаг не находит понимания у 24LC256. Опытным путем установлено, что еепромка упорно ждет чтения с NACK в конце. И только после этого способна к дальнейшим действиям.
Правда, много STOPов тоже могут ей помочь прийти в себя, но есть предположение, что она их воспринимает как чтение байта с NACK в конце ;)
Подскажите, плз, как делать правильно, если при последовательном чтении ACK уже выдан, и требуется срочно выйти из режима последовательного чтения ?
SK

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru