Доброго времени суток!
У меня есть контроллеры PIC16F877A (слейвы) которые получают и отправляют данные контроллеру PIC18F252 (мастер). I2C аппаратный. Проблема в том, что если мастер обращается в первый раз к слейву №1, то остальные наглухо зависают и вообще не формируют ACK при обращении к ним. То же самое, если в первый раз обратится к слейву №2, то он принимает пакет, а остальные виснут.
И если всё время обращаться только к одному контроллеру, то он данные без проблем принимает и всегда формирует ACK.
Отладка показала, что слейв, если обращаются не к нему, программно не обрабатывает пакеты.
Исходник прикрепил.
И несколько скриншотов.
Адрес слейва, который подключён - 0x82, а 0x86 не подключён.



Как видно, всё прекрасно работает пока мастер не обратится не к тому контроллеру..
Пожалуйста, укажите, в чём может быть проблема? Как её исправить?
Вложения