16+
Пятница
23 августа
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры PIC

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Nikolay_Po  (09.04.2019 20:56 - 09.04.2019 21:03, файл(ы)) , в ответ на I2C мастер, что на PIC24HJ, что на dsPIC30F, не вызывает прерываний по завершению "СТОП" [РАЗОБРАЛСЯ] см. ниже сообщение "РЕШЕНИЕ ПРОБЛЕМЫ". автор: Nikolay_Po
РЕШЕНИЕ ПРОБЛЕМЫ: 
Потребовалась проверка бит активности модуля, 5 младших, регистра I2CxCON, перед принудительной установкой флага прерывания мастера, что выполняется при помещении задания в пустую очередь транзакций. Исходный код MCC (MPLAB Code Configurator) не содержал такой проверки и, при особо интенсивном использовании очереди сообщений, приводил к вызову прерывания I2C-мастера в момент, когда ещё не было завершено событие шины, а именно, СТОП, но сама очередь была уже пуста. В этом случае модуль зависал при попытке выполнить другую операцию, например, СТАРТ, и больше не вызывал прерываний. На картинках - примеры опроса EEPROM до возвращения её отзывчивости после записи страницы.
Прикреплённые файлы:
I2C_2-page_write-read_exchange.png:47 K
I2C_EEPROM_NoAck_duration.png:53 K
I2C_EEPROM_busy_no_ACK.png:37 K

Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX