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

 
 
> Автоопределение частоты работы УСАРТа, Пните куда надо
SpiritDance
сообщение Apr 17 2006, 18:25
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Понадобилось, значит, мне сваять автодетект частоты передатчика при преме. Прием по УСАРТу. Передача либо от компа либо не от компа, протокола вобщем еще нет. Вопрос, как сделать, от чего оттолкнутся, как вообще это делают? Хелп. unsure.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DS
сообщение Apr 17 2006, 18:31
Сообщение #2


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(SpiritDance @ Apr 17 2006, 22:25) *
Понадобилось, значит, мне сваять автодетект частоты передатчика при преме. Прием по УСАРТу. Передача либо от компа либо не от компа, протокола вобщем еще нет. Вопрос, как сделать, от чего оттолкнутся, как вообще это делают? Хелп. unsure.gif


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


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Apr 18 2006, 04:44
Сообщение #3


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(DS_ @ Apr 17 2006, 22:31) *
По измерению длины битового импульса. В модемах пользют для этого момент прихода символов AT, с которых любая команда начинается. Если пытаться определить по произвольным символам, можно с первой попытки не угадать

Например для арма в бутлоадере используют символ синхронизации (какой?) в начале передачи данных.Собственно подобное и нужно сделать для АВР.
Вопрос так как вычислять значение заносимое в UBR, при том что скорости нестандартные?Я так понимаю что надо знать всю таблицу возможных скоростей и собственно по ней определять какая же сейчас, так?
Алгоритм вполне понятен, если надо определить длину импульса, а вот как это сделать по принимаемому байту. Выбрать байт синхронизации например 0xF0? Или 0xAA и величины измеренных импульсов усреднить?
Я так понимаю что при этом надо еще точно знать частоту кварца. Как поступить в том случае если частота кварца в принципе разная. Интересно как можно извернутся, ведь например в тех же армах бутлоадер заранее "не знает" о частоте кварца?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 18 2006, 11:12
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(SpiritDance @ Apr 18 2006, 07:44) *
Например для арма в бутлоадере используют символ синхронизации (какой?) в начале передачи данных.Собственно подобное и нужно сделать для АВР.

В LPC используется символ '?'.

Цитата
Вопрос так как вычислять значение заносимое в UBR, при том что скорости нестандартные?Я так понимаю что надо знать всю таблицу возможных скоростей и собственно по ней определять какая же сейчас, так?

Таблицу знать не обязательно, вычислить значение UBR можно по формуле:
UBR = 1 + 1/16 * Fosc /(Скорость уарта)

А вот определить скорость уарта, необходимо с помощью таймера, на основе определения длительности одного импульса.
Вначале нужно использовать пины уарта как GPIO и анализировать поступающую информацию (выделить символ синхронизации, и определить длительность одного бита), на ее основе определить скорость, подставить в формулу, и только после этого инициализировать УАРТ.

Цитата
Интересно как можно извернутся, ведь например в тех же армах бутлоадер заранее "не знает" о частоте кварца?

и вам тоже нужно знать частоту кварца, иначе в формуле уравнения будет две неизвестных, и решить его не удастся.

Цитата
Для детекта скорости обычно используют символ 0xFF.

Далеко не лучший выбор. Т.к. такой символ есть ни что иное как всего лишь однин импульс (стартбит). Большая вероятность того, что любая помеха будет воспринята как такой (0xFF) символ.
Go to the top of the page
 
+Quote Post



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

 


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


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