Господа, а кто-нибудь пользовался режимом мониторинга I2C в новых контроллерах?
На шине только три устройства - мастер, слейв, и монитор.
Пока передаёт мастер, автомат состояний монитора в режиме slave receiver, данные видно хорошо.
Когда передаёт слейв, автомат монитора переходит в состояние slave transmitter, и из регистра данных можно прочитать только ноль.
Под регистром данных подразумеваются и data register, и data buffer register - разницы нету.
Прерываний в программе никаких нету - тупой цикл, который считывает байтики из I2C, пишет их в FIFO, а оттуда перекладывает в UART.