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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> MSP430F449 UART работает только на 19200
ArtemTom
сообщение Jun 22 2010, 06:07
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 22-06-09
Пользователь №: 50 523



Спасибо за файл, встречал его уже в темах.
Я разобрался с UBR10 и UBR01, а вот с модуляцией не очень.
Для 7995392Mhz получаем при 19200:
UBR00 & UBR10: 416
Т.е. 0хA0 и 0х01 можно записать в UBR00 & UBR10
Для модулятора получаем: 1326
А что записать в UMCTL0? 0x2E?
Ещё в файле подразделяется на Transmitter Hardware Corrections (Time to end of each bit) и Receiver Software Corrections (Start bit is time to half way, successive bits also to half way), отличаются как я вижу только значениями модуляции?
А какая между ними разница? У меня же и на прием и на передачу работают? Что куда писать?

Цитата
Если очень нужно, то давайте вместе разберемся.
Я делал так что: 128*32768*2=8388608MHz;
А SCFI0 = FN_2 - это диапазон от 1.4 до 12MHz.
Хотя может и путаю что-то.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 23 2010, 01:05
Сообщение #17


Гуру
******

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



Цитата(ArtemTom @ Jun 22 2010, 12:07) *
А какая между ними разница? У меня же и на прием и на передачу работают? Что куда писать?
Выбирайте число для модулятора UART в зависимости от того, какие пакеты у вас длиннее: на приеме или на передаче. Если не знаете, то выбирайте любое из получившихся.
Цитата(ArtemTom @ Jun 22 2010, 12:07) *
Я делал так что: 128*32768*2=8388608MHz;
А SCFI0 = FN_2 - это диапазон от 1.4 до 12MHz.
В зависимости от делителей (N и D=FLLD_x>>6) выходная частота fDCO может быть выше опорной в кратное число раз. Нужно стремиться чтобы эта частота (fDCO) попадала примерно в середину выбранного с помощью бит FN_x диапазона DCO и в то же время не превышала максимально допустимую. У вас в программе N=127 и D=2. Следовательно fDCO получается около 2*128*32768=8388608Гц и значит диапазон выбран не совсем верно. Нужно устанавливать FN_3 - 2 to 17.9MHz. Cледует заметить, что частота 8388608MHz для ядра (MCLK) выше, чем максимальная рекомендованная в datasheet (8MHz@3.6V).
Кроме всего вышеперечисленного, после сброса или подачи питания нужно выждать, чтобы установилась амплитуда колебаний часового генератора LFXT1. Т.к. он "раскочегаривается" довольно медленно - сотни мс.Для этого после подачи питания следует подождать сброса флага LFOF в регистре FLL_CTL0. А если используете прерывание Oscillator fault interrupt, то перед разрешением этого прерывания еще и флага OFIFG, сбрасывая его программно в цикле опроса
О работе модуля FLL+ можно почитать на русском в Компеловской книжке Семейство микроконтроллеров MSP430x4xx: руководство пользователя, которая является переводом одной из первых ревизий MSP430x4xx Family User's Guide - slau056d. Раньше она была доступна для скачивания в библиотеке Компела у них на сайте. Но сейчас видимо этот раздел прикрыли или перелопатили сайт так, что я ее не нашел. Могу выложить книгу для вас на какой-нибудь обменник. Или смотрите черновики перевода на сайте gaw.ru.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
ArtemTom
сообщение Jun 24 2010, 04:28
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 22-06-09
Пользователь №: 50 523



rezident, большое спасибо, буду разбираться. Книга у меня есть.
Go to the top of the page
 
+Quote Post
ArtemTom
сообщение Jul 8 2010, 12:25
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 22-06-09
Пользователь №: 50 523



Интересно а можно ли как-то в процессе программы изменить настройки этих параметров скорости, если что-то не так?
Код
UBR10 = 0x01
UBR00 = 0xA0
UMCTL0 = 0xBB

Как-то определить, что пришло не то что надо и поменять значения в этих регистрах? Ошибки же UART'a никакой не происходит если параметры не угадал, и флаг не выставляется или происходит что-то?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jul 8 2010, 16:34
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(ArtemTom @ Jul 8 2010, 15:25) *
Как-то определить, что пришло не то что надо и поменять значения в этих регистрах? Ошибки же UART'a никакой не происходит если параметры не угадал, и флаг не выставляется или происходит что-то?

Вы все-таки решили учиться по советам на форуме вместо чтения документации? wink.gif
При несовпадении частоты обычно происходит ошибка фрейма.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


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


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