реклама на сайте
подробности

 
 
> Проблема с UART, выводит несуразицу
Zelepuk
сообщение Jul 13 2011, 05:34
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 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 принимает его и кидает в компорт компьютера), то он работает со сбоями (сначала всё хорошо, потом символы не передаются, потом передаётся чепуха...)

Нужна помощь, всю голову сломал((
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zelepuk
сообщение Jul 21 2011, 14:25
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Пока осциллографа под рукой нет (завтра планирую получить).
Но на выводы, на которые выводятся сигналы частоты подключены светодиоды, а они не горят. Светодиод, который сигнализирует о передаче данных - горит.
Порт молчит.

И ещё. Может дело и правда в железе? У меня физический уровень реализован на двух оптронах и используется сигнал DTR (около 10В). Когда порт открыт на DTR +10В. (см. фото схемы).

ещё: вы используете XT2 в качестве источника тактирования USCI (последний вариант кода). Но регистры UCA1BR1, UCA1BR0 остаются неизменными (как и при тактировании от DCO) - как я понял скорость везде должна составить 9600. Это правильно?

Сообщение отредактировал Zelepuk - Jul 21 2011, 15:10
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 21 2011, 15:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Zelepuk @ Jul 21 2011, 19:25) *
И ещё. Может дело и правда в железе? У меня физический уровень реализован на двух оптронах и используется сигнал DTR (около 10В). Когда порт открыт на DTR +10В. (см. фото схемы).
Я правильно разглядел, что R47 у вас 220кОм? wacko.gif А V+ это питание MSP430 около 3В? Нда уж. cranky.gif В таком случае понятно почему нет передачи. Номинал резистора нужно уменьшить примерно в 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), задав им предварительно требуемые значения.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Jul 23 2011, 15:20
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(rezident @ Jul 21 2011, 19:20) *
А лучше вообще изменить схемотехнику этого преобразователя уровней.


как бы вы посоветовали это сделать?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01431 секунд с 7
ELECTRONIX ©2004-2016