Столкнулся с тем, что с часовым кварцем неточно работает UART. Процессор MSP430F2232.
UART работает на скорости 115200, но довольно много мусора.
На других скоростях мусора еще больше.
Пробовал DCO настраивать на 1 МГц и на 8 МГц, одна и та же картина.
Код
WDTCTL = WDTPW + WDTHOLD;
BCSCTL3 |=XCAP_2;
BCSCTL1= CALBC1_8MHZ; // =0x88; // Set DCO
DCOCTL = CALDCO_8MHZ;
//-----------------UART init --------------------
UCA0CTL0 |= UCPEN;
UCA0CTL0 |= UCPAR;
UCA0CTL0 |= UCMODE_3;
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 4; // 8MHz 115200
UCA0MCTL = 59; // 8MHz 115200
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
IE2 |= UCA0TXIE;
//-------------------------------------------------------------------------
BCSCTL3 |=XCAP_2;
BCSCTL1= CALBC1_8MHZ; // =0x88; // Set DCO
DCOCTL = CALDCO_8MHZ;
//-----------------UART init --------------------
UCA0CTL0 |= UCPEN;
UCA0CTL0 |= UCPAR;
UCA0CTL0 |= UCMODE_3;
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 4; // 8MHz 115200
UCA0MCTL = 59; // 8MHz 115200
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
IE2 |= UCA0TXIE;
//-------------------------------------------------------------------------
Посему вопрос нужно ли все-таки впаивать вместо часового кварц на 8 Мгц для того,
чтобы UART работал на всех скоростях ?
Кто-нибудь использовал это в серийных изделиях ?
Есть ли подводные камни ?
Я в одной плате впаял кварц на 8 МГц, так она прошиваться перестала.
Прошиваю MSP-FET430UIF