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

 
 
 
Reply to this topicStart new topic
> UART Baud Generator. Регистр UxMCTL
shasik
сообщение Jan 31 2008, 10:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Как правильно рассчитать значение регистра UxMCTL?

Pls, объясните почему нижеперечисленные источники дают разные результаты:
1. slau056g MSP430x4xx family User Guide (или slau049e)
2. slaa024 MSP430 Family Mixed-Signal Microcontroller Application Reports
3. Программа MSP430-UART v2005.02.06 by Alexander Konuzin
4. Своя программа, считающая как описано в slau056g (выдает такой же результат для рассмотренного в User Guide примера - 32768/2400) и минимизирующая максимальную ошибку каждого бита.
5. Несколько чужих example'ов, использующих для одинаковых "байтов" разные UxMCTL

Какая идея положена в основу, что оптимизируется?
Если предположить, что п.1-3 используют одинаковый алгоритм, тогда чем отличаются начальные условия для каждого случая?

ЗЫ. Раньше просто слепо верил источнику #3. А тут нарисовалось немного свободного времени, решил разобраться и накропать свою более функциональную утилитку. И наступил на грабли %(
Go to the top of the page
 
+Quote Post
diper
сообщение Jan 31 2008, 11:30
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750



Цитата(shasik @ Jan 31 2008, 13:47) *
ЗЫ. Раньше просто слепо верил источнику #3. А тут нарисовалось немного свободного времени, решил разобраться и накропать свою более функциональную утилитку. И наступил на грабли %(
Александр сказал по этому поводу следующее: "пока программой пользуются не задумываясь - она всех устраивает, как только начинают думать - находят какието ошибки". Если есть дельные замечания можете пообщаться с ним по указанному в программе емайлу.
Go to the top of the page
 
+Quote Post
anv0lk
сообщение Jan 31 2008, 11:51
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 6-07-05
Пользователь №: 6 565



думаю здесь главное чтобы отклонение длительности еденичного периода клока UART от точного значения попадало в указанные в даташите рамки. кто-то ищет самое оптимальное решение, а кто-то принимает первое попавшее в диапазон допустимых значений. сам писал в экселе программку нахождения самого лучшего значения регистра. если найду этот эксельник - выложу вечером.
Go to the top of the page
 
+Quote Post
diper
сообщение Jan 31 2008, 12:11
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750



http://www.daycounter.com/Calculators/MSP4...alculator.phtml
http://mspgcc.sourceforge.net/baudrate.html
Go to the top of the page
 
+Quote Post
shasik
сообщение Jan 31 2008, 13:23
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(diper @ Jan 31 2008, 13:30) *
Александр сказал по этому поводу следующее: "пока программой пользуются не задумываясь - она всех устраивает, как только начинают думать - находят какието ошибки". Если есть дельные замечания можете пообщаться с ним по указанному в программе емайлу.

Ошибок я не нашел. Я нашел несоответствие.
А теперь я просто хочу выяснить когда чем пользоваться. Т.е. выяснить условия, при которых верен тот или иной результат.


Цитата(anv0lk @ Jan 31 2008, 13:51) *
сам писал в экселе программку нахождения самого лучшего значения регистра. если найду этот эксельник - выложу вечером.

Прикольно будет, если Ваш xls выдаст что-то свое, что-то новенькое. Тогда добавлю его шестым пунктом и пойду спокойно пить пиво, махнув на все рукой. Ведь работало же все и без этого "ковыряния в мозгах"


Цитата(diper @ Jan 31 2008, 14:11) *

Проверил по памяти одно значение - с моей программой сходится, а с user guide'нет. Остальных значений под рукой сейчас нет (чужой компьютер). Проверю позже.
Go to the top of the page
 
+Quote Post
shasik
сообщение Jan 31 2008, 14:25
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(diper @ Jan 31 2008, 14:11) *


Проверил 4 значения для 32768 Гц - 50% совпадения с расчетами по формулам. Разобрался: по ссылке учитывают только ошибки при передаче. Я же считал максимальную ошибку приема и передачи.

Нашел еще одну консольную программу bitshift - там считается суммарная ошибка при передаче байта. Результаты естественно отличаются
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 31 2008, 18:42
Сообщение #7


Гуру
******

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



Значение модулятора можно подбирать по разным критериям.
1. минимальное отклонение битовой частоты приема
2. минимальное отклонение битовой частоты передачи
3. минимальная ошибка за время приема одного символа
4. минимальная ошибка за время передачи одного символа
В зависимости от выбранного критерия (для п.3 и 4 еще и от формата/длины символа) получаются различающиеся значения для модулятора.
Go to the top of the page
 
+Quote Post
anv0lk
сообщение Jan 31 2008, 18:57
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 6-07-05
Пользователь №: 6 565



моя реализация нахождения значения регистра.
Оптимизируется по минимуму максимумов отклонений в группах из интересуемого количества бит(максимум 13 бит)

Сообщение отредактировал anv0lk - Jan 31 2008, 19:05
Прикрепленные файлы
Прикрепленный файл  UxMCTL.rar ( 8.72 килобайт ) Кол-во скачиваний: 77
 
Go to the top of the page
 
+Quote Post
shasik
сообщение Feb 1 2008, 06:25
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(rezident @ Jan 31 2008, 20:42) *
Значение модулятора можно подбирать по разным критериям.
1. минимальное отклонение битовой частоты приема
2. минимальное отклонение битовой частоты передачи
3. минимальная ошибка за время приема одного символа
4. минимальная ошибка за время передачи одного символа
В зависимости от выбранного критерия (для п.3 и 4 еще и от формата/длины символа) получаются различающиеся значения для модулятора.

Так вот в этом то и вопрос. Какой критерий в User Guide, какой в п.2 , а какой в п.3?
Go to the top of the page
 
+Quote Post
shasik
сообщение Feb 1 2008, 08:36
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(anv0lk @ Jan 31 2008, 20:57) *
моя реализация нахождения значения регистра.
Оптимизируется по минимуму максимумов отклонений в группах из интересуемого количества бит(максимум 13 бит)

Посмотрел, сравнил со своими результатами. Результаты совпадают для оптимизации передачи. Если необходимо оптимизировать прием, то не катит. Например, для 32768/1200, 11 бит значение UxMCTL=0xA4 (0x94) не самое лучшее.

Вопросы:
1. Имеет ли смысл использовать два значения UxMCTL - одно для передачи, одно для приема или лучше выбрать одно значение оптимальное для приема/передачи?
2. Вообще игра стоит свеч? Попробывал с разными UxMCTL для передачи 100000 байт разница для 32768/1200 с точки зрения вероятности ошибки приема/передачи (в моем случае) незначительная.
Go to the top of the page
 
+Quote Post
anv0lk
сообщение Feb 1 2008, 11:58
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 6-07-05
Пользователь №: 6 565



прикрутил оптимизацию по ПРИЁМУ, ПЕРЕДАЧЕ, ПРИЕМУ+ПЕРЕДАЧЕ
Прикрепленные файлы
Прикрепленный файл  UxMCTL.rar ( 10.15 килобайт ) Кол-во скачиваний: 99
 
Go to the top of the page
 
+Quote Post

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

 


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


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