|
Проблема с 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 21 2011, 14:25
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Пока осциллографа под рукой нет (завтра планирую получить). Но на выводы, на которые выводятся сигналы частоты подключены светодиоды, а они не горят. Светодиод, который сигнализирует о передаче данных - горит. Порт молчит. И ещё. Может дело и правда в железе? У меня физический уровень реализован на двух оптронах и используется сигнал DTR (около 10В). Когда порт открыт на DTR +10В. (см. фото схемы). ещё: вы используете XT2 в качестве источника тактирования USCI (последний вариант кода). Но регистры UCA1BR1, UCA1BR0 остаются неизменными (как и при тактировании от DCO) - как я понял скорость везде должна составить 9600. Это правильно?
Сообщение отредактировал Zelepuk - Jul 21 2011, 15:10
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 21 2011, 15:20
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Zelepuk @ Jul 21 2011, 19:25)  И ещё. Может дело и правда в железе? У меня физический уровень реализован на двух оптронах и используется сигнал DTR (около 10В). Когда порт открыт на DTR +10В. (см. фото схемы). Я правильно разглядел, что R47 у вас 220 кОм?  А V+ это питание MSP430 около 3В? Нда уж.  В таком случае понятно почему нет передачи. Номинал резистора нужно уменьшить примерно в 2000 раз. До 100Ом. А лучше вообще изменить схемотехнику этого преобразователя уровней. Цитата(Zelepuk @ Jul 21 2011, 19:25)  ещё: вы используете XT2 в качестве источника тактирования USCI (последний вариант кода). Да, используется частота от XT2=16МГц. Цитата(Zelepuk @ Jul 21 2011, 19:25)  Но регистры UCA1BR1, UCA1BR0 остаются неизменными (как и при тактировании от DCO) - как я понял скорость везде должна составить 9600. Это правильно? Почему неизменными? Там происходит подстановка величин и расчет в препроцессоре при компиляции . Если вам нужно изменять baudrate в программе, то замените в формуле расчета символьные константы переменными типа uint32_t (unsigned long), задав им предварительно требуемые значения.
|
|
|
|
Сообщений в этой теме
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 Zelepuk Теперь пробую инициализировать явно все регистры м... Jul 16 2011, 13:36 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 Цитата(rezident @ Jul 21 2011, 19:20) Я п... Jul 21 2011, 16:54 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
|
|
|