Решение проблемы
Загрузите регистр Baud Rate, UxBRG четным значением, или отключить опцию чётности, загружая либо 0b00 либо 0b11 в биты чётности или выборки данных, PDSEL <1:0> (UxMODE <2:1>).
19. Модуль UART
Бит ошибки переполнения буфера приёмникаOERR (UxSTA <1>), может установиться до переполнения буфера FIFO. После того, как получен четвертый байт UARTом, FIFO считается полным. Бит OERR должен установиться после того, как был получен пятый байт в сдвиговый регистр UARTе. Вместо этого, бит OERR может установиться после четвертого полученного байта с пустым сдвиговым регистром UART.
Решение проблемы
После того, как четыре байта были получены UARTом, бит флага прерывания приёмника UARTа U1RXIF (IFS0 <11>) или U2RXIF (IFS1 <14>), будет установлен, показывая что буфер FIFO UARTа - полон. Бит OERR может также быть установлен. После чтения приёмного буфера UARTа, UxRXREG, четыре раза, чтобы очистить буфер FIFO, нужно в программе очистить биты OERR и UxRXIF.
20. Модуль UART
Приём UARTа может быть разрушен если генератор Baud Rate установлен для режима 4x (BRGH = 1).
Решение проблемы
Используйте опцию 16x baud rate (BRGH = 0) и соответственно корректируйте baud rate соответственно.
21. Модуль UART
Бит UTXISEL0 (UxSTA <13>) всегда читается как нуль независимо от значения, записанного в него. В бит можно записать или ‘0’ или ‘1’, но будет всегда читаться как нуль. Это коснётся операции " чтение, изменение, запись", такие как поразрядные операции или операции изменения. Использование команды " чтение-изменение-запись" на регистре UxSTA (например, BSET, BLCR) будет всегда записывать бит UTXISEL0, чтобы обнулить.
Решение проблемы
Если необходимо чтобы значение бита UTXISEL0 было ‘1’ то нельзя использовать команду "чтение-изменение-запись" регистра UxSTA. Необходимо скопировать содержимое регистра UxSTA во временный регистр и установить в нём бит UxSTA <13> до выполнения операции " чтение-изменение-запись" с этим временным регистром. Скопируйте новое значение назад в регистр UxSTA.
22. Модуль UART
Режим auto-baud не может правильно вычислить baud rate, когда установлен бит BRGH (бит высокой скорости). С установленным битом BRGH, используется вычисление baud rate также как BRG = 0.
Решение проблемы
Если необходима возможность auto baud, то нужно использовать режим низкой baud rate, т.е. сбросить бит BRGH.
23. Модуль UART
С выбранной опцией auto-baud, символ синхронизации прерывания (0x55) может быть загружен в FIFO как данные.
Решение проблемы
Предотвращать загрузку в FIFO символов синхронизации прерывания, загрузите в регистр UxBRG либо 0x0000 либо 0xFFFF до разрешения возможности auto-baud (ABAUD = 1).
24. Модуль ECAN
При использовании модуля ECAN с DMA, буфер передатчика 6 и 7 могут передать неправильный тип сообщения. Например, буфер может быть конфигурирован как Standard Frame (стандартные фреймы), но могла бы периодически передавать Extended Frames (расширенные фреймы).
Решение проблемы
Не используёте буферы 6 или 7 для передачи. Вместо этого, используйте передающие буфера 0, 1, 2, 3, 4 или 5.
29. MCLR Пробуждение из спящего режима
Если MCLR сбрасывающий импульс, заставляет устройство пробуждаться от режима Sleep, устройство пробуждается без ожидание установлении на микроконтроллере нормального напряжения. Это впоследствии приведет к кратковременному сбросу Brown-Out Reset.
Решение проблемы нет
30. ECAN Модуль
Регистры C1RXOVF2 и C2RXOVF2 не функционируют. Они всегда читаются как 0x0000, даже когда происходит переполнение приёмника.
Нет решение проблемы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.