Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как определить значение UxMCTL модуля USART?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
vesago
Я могу, конечно, воспользоваться программкой или экселевскими файлами для расчета значения модулятора, но хочется понять сам принцип. Когда ставится единичка, а когда нолик?
rezident
Цитата(vesago @ May 11 2005, 12:08)
хочется понять сам принцип. Когда ставится единичка, а когда нолик?
*

Единичка в регистре модулятора ставится когда хочется "растянуть" сигнал тактирования выходного сдвигового регистра UART (BITCLK) на величину длительности одного такта BRCLK, а "нолик" когда этого делать не нужно. Если делитель UxBR получается нецелочисленный, то его обычно округляют в меньшую сторону, а потом "удлиняют" такты BITCLK добавлением тактов BRCLK с помощью битов регистра модулятора.
vesago
Ясно. Спасибо. Правильно ли я понимаю, что расчитывается ошибка для каждого бита в случае с m = 0 и m = 1, а затем формируется значение регистра модуляции исходя из наименьшей ошибки для данного бита?
rezident
Цитата(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.
vesago
А существует какая либо особая формула для расчета суммарной ошибки? Если так прикинуть, если просто складывать, то наверное пара-тройка битов после 8 подправленных не существенно скажется на общей картине. И еще вопрос - что такое ошибка разрыва? Это величина идентичная времени ожидания (простоя) в режиме со свободной линией?
belial
santa2.gif написал программу (с исходниками) для расчета лучшего значения UxMCTL прилагается, копирайт мне в статус.(звучит как ругательство wink.gif )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.