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

 
 
> UART MSP430, baudrate > 115200
mcheb
сообщение Jun 30 2015, 02:21
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Есть процессор MSP430F6723. UART на скоростях до 115200 работает нормально, на 230400 мусор выдаёт. Кто работал с такими скоростями, посоветуйте как?
Может где-то модуляцию включить? Хотя на 115200 и на 4МГц системной частоты всё ОК.
#define FREQXT1 32768
#define BAUD 115200*1
#define FSYS 115200*32*2
#define NUM_USCTL2 (FLLD_0 + (FSYS/FREQXT1) - 1)
#define NUM_DCO DCORSEL_4

UCA0CTL1 = UCSWRST; // **Put state machine in reset**
UCA0CTL0 = 0; // UART 8bit
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BRW = FSYS/BAUD; // 1.00MHz 38400 (see User's Guide)
// UCA0BR1 = 0; // 1.00MHz 38400
// UCA0MCTLW_ |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0

Сообщение отредактировал mcheb - Jun 30 2015, 02:25
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 20)
Genadi Zawidowsk...
сообщение Jun 9 2016, 16:23
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
Запускаю программу, которая считывает информацию с com порта (программа работает 100% правильно), она в тестовый файл записывает значение 200(правильное значение). В следующий раз, после перезапуска программы, в текстовый файл она записывает величину 14. Потом снова 200.


Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет.
Go to the top of the page
 
+Quote Post
Isaev_ivan
сообщение Jun 9 2016, 18:33
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 21-07-15
Пользователь №: 87 652



Genadi Zawidowski, спасибо, будем пробовать!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 9 2016, 21:34
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Genadi Zawidowski @ Jun 9 2016, 22:23) *
Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет.

Не обязательно. Можно наоборот - больше 0-ей посылать. Приёмник будет периодически вылетать во frame-error, пока не найдёт правильный старт. Плохо если идёт поток чего-то повторяющегося, типа: 0xF7,0xF7,0xF7,0xF7,... - в этом случае никогда не вылетит. Можно не только паузы делать, можно использовать BREAK для установки правильной битовой синхронизации.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 9 2016, 21:52
Сообщение #19


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



ПОток нулей не годится. Так как ноль он стартовый бит.
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 10 2016, 13:54
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(Genadi Zawidowski @ Jun 10 2016, 00:52) *
ПОток нулей не годится. Так как ноль он стартовый бит.

Тема избитая и изъеженная. Бит - байт стаффинг, ЦеЭрЦе и тд. Тайм-аут
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 10 2016, 16:27
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Genadi Zawidowski @ Jun 10 2016, 03:52) *
ПОток нулей не годится. Так как ноль он стартовый бит.

Стартовый бит это не 0.
Это переход 1->0 с последующим сэмплированием линии на наличие нуля в одном или нескольких пробах на частоте оверсемплинга x16. Вот если все эти условия выполняются, тогда и принимается решение что имеется старт-бит.
А просто сплошной 0 - это сигнал BREAK.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:39
Рейтинг@Mail.ru


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