Ошибка последовательного кадрирования PIC18f45k22 с тактовой частотой 64 МГц - PullRequest
0 голосов
/ 22 февраля 2011

Я пытаюсь передать серийный номер через периферийное устройство pic18f45k22 eusart. Сообщения отправляются точно так, как и ожидалось, когда часы работают на 16 МГц, но если я включаю PLL (чтобы генератор работал на 64 МГц), я получаю ошибку кадрирования.

Я изменил регистры SPBRG, чтобы учесть новую тактовую частоту, и попытался изменить генератор скорости передачи данных на 16 и 8-битный режимы, но без радости.

Текущий код:

OSCCONbits.IRCF = 0b111; //change Fosc to 16Mhz
OSCTUNEbits.PLLEN = 1; //enable PLL to multiply Fosc by 4


/*Set baud rates and related registers*/
/*For BRG16 = 1 and BRGH = 1, Baud rate = Fosc/(4([SPBRG:SPBRGH]+1)) */
SPBRGH1 = 0; //Set Baud rate control regs to 34 to give baudrate of 115.2k
SPBRG1 = 138;
BAUDCON1bits.BRG16 = 1; //16 bit mode (baudrate generator)
TXSTAbits.BRGH = 1; //Set high speed baud rate 

Спасибо заранее, Huggzorx

1 Ответ

4 голосов
/ 22 февраля 2011

Я не знаком с этим конкретным чипом, но в целом это то, на что я обращаю внимание, когда мой UART не работает.

1) Можно ли разделить ваши часы на скорость передачи данных с небольшимдостаточно ошибки.Предполагая, что ваша формула скорости передачи в комментариях верна, я думаю, что у вас все в порядке:

Baud rate = 16 MHz / (4*(34 + 1)) = 114286  (0.8% error)
Baud rate = 64 MHz / (4*(138 + 1)) = 115107 (0.08% error)

2) Убедитесь, что ваша микросхема выдает скорость передачи, которую вы считаете нужной.Некоторые PLL действительно требовательны к тому, как вы их включаете.Также легко неверно настроить периферийное устройство.Я считаю, что осциллограф - ваш лучший выбор для диагностики проблем такого типа.Если у вас есть доступ к одному из них, поместите передающий вывод PIC и убедитесь, что ваша битовая ширина составляет 8,68 мкс (1/115200).

Если это в 4 раза больше этого размера (34,72 мкс), то ваш PLL незамок.Если это немного не так, то формула может быть неправильной.

Это не так много, но, надеюсь, заставит вас двигаться в правильном направлении.

...