|
Так все таки нужен ВЧ кварц для правильной работы UART ? |
|
|
|
Oct 27 2009, 07:11
|
Группа: Участник
Сообщений: 3
Регистрация: 7-10-08
Пользователь №: 40 742

|
Уважаемый All, Столкнулся с тем, что с часовым кварцем неточно работает 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;
//------------------------------------------------------------------------- Посему вопрос нужно ли все-таки впаивать вместо часового кварц на 8 Мгц для того, чтобы UART работал на всех скоростях ? Кто-нибудь использовал это в серийных изделиях ? Есть ли подводные камни ? Я в одной плате впаял кварц на 8 МГц, так она прошиваться перестала. Прошиваю MSP-FET430UIF
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Oct 27 2009, 08:06
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Можно и с часовым, но тактировать UART нужно от DCO, предварительно откалибровав его по часовому кварцу. У TI аппликуха есть на этот счёт. (на счёт калибровки DCO) Либо - термостабилизировать DCO (с внешним термостабильным резистором уход частоты порядка 1%, что допустимо для UART-а), тогда можно обойтись без кварца вообще. Первый способ я лично испытал - работает. Второй - не пробовал, но есть вероятность. Кварцы день ото дня всё новые фокусы выдают  Всё вышенаписанное справедливо для серии 1xx, для второй - возможно, есть навороты. Например: Цитата Basic Clock Module Configurations:
* Internal Frequencies up to 16 MHz With Four Calibrated Frequencies to ±1% * Internal Very-Low-Power Low-Frequency Oscillator * 32-kHz Crystal * High-Frequency Crystal up to 16 MHz * Resonator * External Digital Clock Source * External Resistor К сожалению, тесно со второй серией не работал
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 27 2009, 08:33
|
Местный
  
Группа: Участник
Сообщений: 202
Регистрация: 10-04-05
Из: Санкт-Петербург
Пользователь №: 4 011

|
Судя по таблице 15-4 на странице 15-22 документа msp430x2xx Family User Guide, на частоте 8МГц и скорости 115200, ошибка приема\передачи будет не больше 2%. Должно работать. Попробуйте поставить значения Baud Rate Control Register, как я оставил ниже. Цитата(muller11 @ Oct 27 2009, 11:11)  Код BCSCTL1= CALBC1_8MHZ; // =0x88; // Set DCO DCOCTL = CALDCO_8MHZ;
//-----------------UART init --------------------
UCA0BR0 = 0x45; // 8MHz 115200 UCA0BR1 = 0x00; UCA0MCTL = 0x00; // 8MHz 115200 //------------------------------------------------------------------------- ЗЫ Мало работал со второй серией, уарт настроил по аналогии с первой.
|
|
|
|
|
Oct 28 2009, 14:27
|
Группа: Участник
Сообщений: 3
Регистрация: 7-10-08
Пользователь №: 40 742

|
Всем спасибо за участие ! Разобрался сам. Впаял кварц 8 МГц, нормально работает на MSP430F4250 и MSP430F2232. UART работает четко на всех скоростях, мусора нет совсем. Вывод такой: если собираетесь использовать UART лучше ставить кварц на 1-16 МГц вместо 32768. Всем удачи
|
|
|
|
|
Oct 30 2009, 13:30
|
Частый гость
 
Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371

|
Цитата(muller11 @ Oct 28 2009, 18:27)  Вывод такой: если собираетесь использовать UART лучше ставить кварц на 1-16 МГц вместо 32768. Я в девайсе на msp430f247 тактировал UART от DCO, а частоту DCO периодически калибровал по часовому кварцу, никаких проблем со связью не было. Но если у вас нет жестких требований по потреблению, точности измерения длительных временных интервалов и стоимости вашего изделия, то возможно вы правы.
|
|
|
|
|
Nov 9 2009, 07:34
|
иногда заглядывающий
   
Группа: Свой
Сообщений: 900
Регистрация: 18-05-05
Из: Зеленоград
Пользователь №: 5 170

|
Цитата(muller11 @ Oct 28 2009, 17:27)  Вывод такой: если собираетесь использовать UART лучше ставить кварц на 1-16 МГц вместо 32768. Чет вы явно не так делаете. В нескольких изделиях использую калиброваный по часовому кварцу DCO, номиналом 15667200Hz, обеспечивает ОТЛИЧНУЮ работу UART на скорости 921600бод, на процессоре MSP430F2370.
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
Nov 9 2009, 10:17
|
Частый гость
 
Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371

|
Цитата(Shread @ Nov 9 2009, 10:34)  Чет вы явно не так делаете. В нескольких изделиях использую калиброваный по часовому кварцу DCO, номиналом 15667200Hz, обеспечивает ОТЛИЧНУЮ работу UART на скорости 921600бод, на процессоре MSP430F2370. Никто и не сомневается, что UART можно тактировать от периодически калибруемого DCO, и все будет отлично работать. Вопрос в другом - если есть возможность поставить ВЧ-кварц вместо 32768, то почему бы не поставить?
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|