SPI Модуль в режиме Frame Master. Решение проблемы. ECAN Модуль. SPI Модуль. Модуль UART, страница 2

Решение проблемы

Загрузите регистр 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, даже когда происходит переполнение приёмника.

Нет решение проблемы