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

 
 
 
Reply to this topicStart new topic
> Как определить значение UxMCTL модуля USART?
vesago
сообщение May 11 2005, 06:08
Сообщение #1


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Я могу, конечно, воспользоваться программкой или экселевскими файлами для расчета значения модулятора, но хочется понять сам принцип. Когда ставится единичка, а когда нолик?
Go to the top of the page
 
+Quote Post
rezident
сообщение May 11 2005, 12:07
Сообщение #2


Гуру
******

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



Цитата(vesago @ May 11 2005, 12:08)
хочется понять сам принцип. Когда ставится единичка, а когда нолик?
*

Единичка в регистре модулятора ставится когда хочется "растянуть" сигнал тактирования выходного сдвигового регистра UART (BITCLK) на величину длительности одного такта BRCLK, а "нолик" когда этого делать не нужно. Если делитель UxBR получается нецелочисленный, то его обычно округляют в меньшую сторону, а потом "удлиняют" такты BITCLK добавлением тактов BRCLK с помощью битов регистра модулятора.
Go to the top of the page
 
+Quote Post
vesago
сообщение May 12 2005, 06:50
Сообщение #3


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Ясно. Спасибо. Правильно ли я понимаю, что расчитывается ошибка для каждого бита в случае с m = 0 и m = 1, а затем формируется значение регистра модуляции исходя из наименьшей ошибки для данного бита?
Go to the top of the page
 
+Quote Post
rezident
сообщение May 12 2005, 11:35
Сообщение #4


Гуру
******

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



Цитата(vesago @ May 12 2005, 12:50)
расчитывается ошибка для каждого бита в случае с m = 0 и m = 1, а затем формируется значение регистра модуляции исходя из наименьшей ошибки для данного бита?
*

В общем-то да, но учтите что регистр модуляции 8-ми разрядный, а длительность символа от 9 до 12 бит может быть (START-bit + 7/8 бит данных + [PARITY] + 1/2 STOP-bit). Так что последовательность в регистре модуляции повторяется на следующие биты после 8 бита. Поэтому рекомендуется считать не только ошибку каждого бита, но и суммарную ошибку длительности одного символа. Ошибки приема UART формируются как от неверного приема символа (четность, флаг PE), так и от неверного приема отдельных бит (ошибка фрейма при неверном стоп-бите, флаг FE). Так что ИМХО следует учитывать оба параметра, чтобы выбрать оптимальное значение UxMCTL.
Go to the top of the page
 
+Quote Post
vesago
сообщение May 13 2005, 06:18
Сообщение #5


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



А существует какая либо особая формула для расчета суммарной ошибки? Если так прикинуть, если просто складывать, то наверное пара-тройка битов после 8 подправленных не существенно скажется на общей картине. И еще вопрос - что такое ошибка разрыва? Это величина идентичная времени ожидания (простоя) в режиме со свободной линией?
Go to the top of the page
 
+Quote Post
belial
сообщение Jun 7 2006, 09:46
Сообщение #6





Группа: Участник
Сообщений: 8
Регистрация: 10-01-05
Из: Odessa near Black Black Sea
Пользователь №: 1 871



santa2.gif написал программу (с исходниками) для расчета лучшего значения UxMCTL прилагается, копирайт мне в статус.(звучит как ругательство wink.gif )
Прикрепленные файлы
Прикрепленный файл  bitshift_calc.rar ( 58.86 килобайт ) Кол-во скачиваний: 73
 
Go to the top of the page
 
+Quote Post

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

 


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


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