[an error occurred while processing this directive]
|
Раньше использовал аппаратный I2C (у PIC16F877) и не было проблем, а теперь понадобилась софтверная реализация и в процессе ее отладки возникли вопросы. А именно:
Реализую последовательное чтение, дополняя каждый байт , как и положено, сигналом ACK. Теперь предположим, что неожиданно программа узнает, что надо заканчивать чтение (и переходить к записи), а последний ACK уже выдан.
Что делать ?
Естественное желание - выдать STOP, чтобы начать новую жизнь. Однако этот естественный шаг не находит понимания у 24LC256. Опытным путем установлено, что еепромка упорно ждет чтения с NACK в конце. И только после этого способна к дальнейшим действиям.
Правда, много STOPов тоже могут ей помочь прийти в себя, но есть предположение, что она их воспринимает как чтение байта с NACK в конце ;)
Подскажите, плз, как делать правильно, если при последовательном чтении ACK уже выдан, и требуется срочно выйти из режима последовательного чтения ?
SK
E-mail: info@telesys.ru