|
Проблема с UART, выводит несуразицу |
|
|
|
Jul 13 2011, 05:34
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Вот код CODE #include "msp430x471x7.h"
void main(void) { volatile unsigned int i; P5DIR |= BIT7; WDTCTL = WDTPW+WDTHOLD; // Stop WDT FLL_CTL0 |= XCAP14PF; // Configure load caps
do { IFG1 &= ~OFIFG; // Clear OSCFault flag for (i = 0x47FF; i > 0; i--); // Time for flag to set } while ((IFG1 & OFIFG)); // OSCFault flag still set?
P1SEL |= BIT6+BIT7; // P2.4,5 = USCI_A0 RXD/TXD UCA1CTL1 |= UCSSEL_1; // CLK = ACLK UCA1BR0 = 0x03; // 32k/9600 - 3.41 UCA1BR1 = 0x00; // UCA1MCTL = 0x06; // Modulation UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine** // IE2 |= UCA1RXIE; // Enable USCI_A0 RX interrupt char c = 'A'; // _BIS_SR(LPM3_bits + GIE); // Enter LPM3, interrupts enabled while(1) { while(!(IFG2&UCA1TXIFG)); UCA1TXBUF = c; P5OUT ^= BIT7; for(i=2500;i>0;i--); } }
Пытаюсь просто выводить в терминал символ 'A' и зажигать светодиод. Светодиод горит, на терминал выводится сами видите что (см. приложенное фото). В чём может быть дело? Ещё когда пробую проект "эхо"(посылаем символ с клавиатуры компьютера - MSP430 принимает его и кидает в компорт компьютера), то он работает со сбоями (сначала всё хорошо, потом символы не передаются, потом передаётся чепуха...) Нужна помощь, всю голову сломал((
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Jul 16 2011, 13:36
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Теперь пробую инициализировать явно все регистры модуля тактирования и модуля USCI. CODE #include "msp430x471x7.h"
void main(void) { volatile unsigned int i;
WDTCTL = WDTPW+WDTHOLD; // Stop WDT P5DIR |= BIT7; //----------------------------------------------------------------------------- // Инициализация модуля тактирования (SMCLK = Fdcoclk = 1048576) //----------------------------------------------------------------------------- SCFQCTL = 52; // модуляции нет, множитель DCO = 52 SCFI0 = 0; // диапахон DCO 0.65 to 6.1 MHz // SCFI1 нет трогаю FLL_CTL0 = 0; FLL_CTL0 |= (DCOPLUS)|(1<<5)|(1<<4); // не используем предделитель кварц на XT1 на 10пФ FLL_CTL1 = 0; FLL_CTL1 |= SELM1; //SMCLK от DCO, MCLK от 16Mhz кварца FLL_CTL2 |= (XT2S1)|(XT2S0); //диапазон частоты XT2 от 0.4 до 16 Mhz do { IFG1 &= ~OFIFG; // Clear OSCFault flag for (i = 0x47FF; i > 0; i--); // Time for flag to set } while ((IFG1 & OFIFG)); // OSCFault flag still set?
//----------------------------------------------------------------------------- // Инициализация USCI модуля в режиме UART //----------------------------------------------------------------------------- P1SEL |= BIT6+BIT7; // P1.6,7 = USCI_A1 RXD/TXD UCA1CTL0 = 1; //нет контроля чётности, 8N1 LSB first, Synchronous Mode UCA1CTL1 = 0; UCA1CTL1 |= (1<<7); // CLK = SMCLK UCA1BR0 = 0x6D; // 1146880/9600 = 119.46 UCA1BR1 = 0x00; // UCA1MCTL = 0x03; // Modulation UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine** UC1IE |= UCA1RXIE; // Enable USCI_A1 RX interrupt
while(1) // main loop { while(!(IFG2&UCA1TXIFG)); UCA1TXBUF = 'A'; P5OUT ^= BIT7; for(i=2500;i>0;i--); } } Значение Fdcoclk = 1048576 а так же UCA1BR0 = 0x6D; // 1146880/9600 = 119.46 UCA1BR1 = 0x00; // UCA1MCTL = 0x03; // Modulation взяты из даташита (страница 17-16). Теперь даже не мигает светодиод.... накосячил опять где-то наверное(((  единственное что могло прийти в голову - номиналами конденсаторов программно поиграться - непомогло... (а это может влиять вплоть до неработоспособности?)
Сообщение отредактировал Zelepuk - Jul 16 2011, 13:47
|
|
|
|
Сообщений в этой теме
Zelepuk Проблема с UART Jul 13 2011, 05:34 rezident Модуль тактирования проинициализируйте полностью... Jul 13 2011, 12:23 Zelepuk Цитата(rezident @ Jul 13 2011, 16:23) Мод... Jul 14 2011, 05:40  MrYuran Цитата(Zelepuk @ Jul 14 2011, 09:40) Кто ... Jul 14 2011, 07:40  rezident Цитата(Zelepuk @ Jul 14 2011, 10:40) Кто ... Jul 14 2011, 15:51   Zelepuk Цитата(rezident @ Jul 14 2011, 19:51) Я ж... Jul 14 2011, 17:12    rezident Цитата(Zelepuk @ Jul 14 2011, 22:12) нуже... Jul 14 2011, 18:50   Zelepuk Цитата(rezident @ Jul 14 2011, 19:51) Еще... Jul 15 2011, 14:17    rezident Цитата(Zelepuk @ Jul 15 2011, 19:10) Я по... Jul 15 2011, 14:20    zltigo QUOTE (Zelepuk @ Jul 15 2011, 16:17) полу... Jul 15 2011, 17:34 Zelepuk Цитата(rezident @ Jul 14 2011, 19:51) Я ж... Jul 16 2011, 12:22 rezident Есть несколько вариантов организации тактирования ... Jul 17 2011, 00:26 Zelepuk Цитата(rezident @ Jul 17 2011, 04:26) Ест... Jul 17 2011, 19:00  rezident Цитата(Zelepuk @ Jul 18 2011, 00:00) А мо... Jul 17 2011, 21:16 Zelepuk Цитата(rezident @ Jul 18 2011, 01:16) А к... Jul 18 2011, 07:27 rezident Блин! В этой строке ошибка. Я забыл проинверти... Jul 18 2011, 10:05 Zelepuk Да, теперь светодиод мигает с нужным интервалом...... Jul 18 2011, 14:47 rezident Цитата(Zelepuk @ Jul 18 2011, 19:47) проб... Jul 18 2011, 19:09 Zelepuk Да, простите, в основном цикле вообще не трогаю та... Jul 18 2011, 19:56 rezident Ну вот, так сразу видно где у вас ошибки. Готовнос... Jul 18 2011, 20:03 Zelepuk Вот. исправил код. Светодиод горит всё время. В по... Jul 19 2011, 06:25 rezident Как вы определяете, что ничего не выводится? Осцил... Jul 19 2011, 22:54 Zelepuk rezident
Попробовал последний вариант вашего кода ... Jul 20 2011, 11:07 rezident Я так и не понял, осциллограф у вас есть? Если ест... Jul 20 2011, 20:14 Zelepuk Пока осциллографа под рукой нет (завтра планирую п... Jul 21 2011, 14:25 rezident Цитата(Zelepuk @ Jul 21 2011, 19:25) И ещ... Jul 21 2011, 15:20  Zelepuk Цитата(rezident @ Jul 21 2011, 19:20) Я п... Jul 21 2011, 16:54  Zelepuk Цитата(rezident @ Jul 21 2011, 19:20) А л... Jul 23 2011, 15:20 Zelepuk Вот что получаю в окне терминала (см. фото). В тер... Jul 24 2011, 06:56 Zelepuk Что примечательно, заменив преобразователь уровней... Jul 25 2011, 08:49 rezident Эх-ма. Основная проблема большинства начинающих в... Jul 25 2011, 18:54 Zelepuk Схемотехника используется из slaa409 (апликейшн сч... Jul 25 2011, 19:08 Dog Pawlowa Цитата(Zelepuk @ Jul 25 2011, 22:08) Код,... Jul 26 2011, 02:33  Zelepuk Цитата(Dog Pawlowa @ Jul 26 2011, 06:33) ... Jul 26 2011, 08:25   Dog Pawlowa Цитата(Zelepuk @ Jul 26 2011, 11:25) Да, ... Jul 26 2011, 09:28  rezident Цитата(Dog Pawlowa @ Jul 26 2011, 07:33) ... Jul 26 2011, 10:15 rezident "Дьявол кроется в мелочах". Не ссылайт... Jul 25 2011, 20:42 Zelepuk Цитата(Dog Pawlowa @ Jul 26 2011, 13:28) ... Jul 26 2011, 12:52 Dog Pawlowa Цитата(Zelepuk @ Jul 26 2011, 15:52) Цель... Jul 26 2011, 20:31 Zelepuk Теперь можно и putchar писать, теперь видно что св... Jul 27 2011, 11:32 Zelepuk Всем спасибо! Тема закрыта! Jul 28 2011, 13:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|