Перейти к содержанию
    

UART без кварцевой стабилизации

Гарантированный за время одного символа только ОДИН переход.
Как это ОДИН? :blink: Где и в какую сторону?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:blink: Гарантированный за время одного символа только ОДИН переход. Расстояния между символами - не гарантированы...

 

Как раз время то между старт/споп и есть искомая (измеряемая) величина. А наличие самих переходов гарантировано.

 

В некоторых PICах есть AUTO BAUD RATE DETECT. Передатчик отправляет байт 0x55, а приемник автоматом вычисляет baud rate регистр. Здесь почти то же самое, за исключением, что baud rate регистр это константа, а подбираем значение регистра калибровки int RC.

Изменено пользователем µµC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гарантированный за время одного символа только ОДИН переход.
Как это ОДИН? :blink: Где и в какую сторону?

Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами...
Интересная трактовка.

Если стартовый переход 1->0 гарантирован, то и переход 0->1 в течение одного символа, по-моему, также гарантирован. Иначе никак... :)

Эти два события и можно использовать в качестве опорных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами...
Интересная трактовка.

Если стартовый переход 1->0 гарантирован, то и переход 0->1 в течение одного символа, по-моему, также гарантирован. Иначе никак... :)

Эти два события и можно использовать в качестве опорных.

Не зная в какой момент должно прити второе? :blink: Еще раз - речь не о LIN и ей подобных проторолов в которых есть символы синхронизации...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стартовый в начале старт-бита. Переход 1->0. Стоповый бит - это только минимальное гарантированное расстояние между двумя соседними байтами...
Интересная трактовка.

Если стартовый переход 1->0 гарантирован, то и переход 0->1 в течение одного символа, по-моему, также гарантирован. Иначе никак... :)

Эти два события и можно использовать в качестве опорных.

Стоповый переход конечно гарантирован, но не гарантировано, что внутри интервала старт-стоп будет именно 9 битовых периодов. Потому что может еще и бит четности передаваться или вообще 5-6-7 битовая посылка. Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.

 

Проще калибровать по 0x00. В 9 раз точнее, при прочих равных условиях. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоповый переход конечно гарантирован, но не гарантировано, что внутри интервала старт-стоп будет именно 9 битовых периодов. Потому что может еще и бит четности передаваться или вообще 5-6-7 битовая посылка. Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.
Стоп-стоп.

В теме не ставится задача AutoBaud Detection, хотя, если её делать, нужно поступать именно таким образом, как я и предложил (другой способ придумать трудно :) ).

Здесь же речь идёт о подстройке RC-генератора для обеспечения наилучших временнЫх характеристик работы УАРТа при известных параметрах канала связи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.

 

Проще калибровать по 0x00. В 9 раз точнее, при прочих равных условиях. :)

Нет, не проще. Опять же не гарантируется наличие/отсутствие/вид бита четности. Всегда лучше по стартовому биту калибровать. Соответственно калибровочный символ с лог. 1 должен начинаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не зная в какой момент должно прити второе? :blink: Еще раз - речь не о LIN и ей подобных проторолов в которых есть символы синхронизации...
Я отвечал на Ваш пост #30.

И почему это не зная? Параметры канала связи известны, и я знаю, в каком интервале времени мне нужно ожидать переход. Частоту генератора можно уточнять, набрав необходимую статистику, даже на "коротких" переходах , какие бывают при передаче символов вроде 0x55.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для Auto baud detect часто используют 0xFF. Это гарантированный битовый интервал при передаче старт-бита.

 

Проще калибровать по 0x00. В 9 раз точнее, при прочих равных условиях. :)

Нет, не проще. Опять же не гарантируется наличие/отсутствие/вид бита четности. Всегда лучше по стартовому биту калибровать. Соответственно калибровочный символ с лог. 1 должен начинаться.

 

Какой такой бит четности, откуда ему взяться если передатчик его не отсылает? Напомню основное условие автокалибровки - передатчик отсылает заранее определенный символ в заранее определенном формате, приемник вычисляет интервал бита исходя из этого.

Поэтому тезис, что при посылке 0x00 интервал будет проще и точнее измерен, чем при посылке 0xFF, имеет под собой все основания. Тут, если честно, и спорить то не о чем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не зная в какой момент должно прити второе? :blink: Еще раз - речь не о LIN и ей подобных проторолов в которых есть символы синхронизации...
Я отвечал на Ваш пост #30.
;) Там было на что отвечать? Может на #23?
И почему это не зная? Параметры канала связи известны, и я знаю, в каком интервале времени мне нужно ожидать переход.
Параметры известны, не известен приходящий символ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там было на что отвечать? Может на #23?
Ну да, и на него тоже.

И почему это не зная? Параметры канала связи известны, и я знаю, в каком интервале времени мне нужно ожидать переход.
Параметры известны, не известен приходящий символ...
А вот и подумайте, как с этим можно бороться. Способ есть, и не один. Если интересно, изложу позже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, как вы думаете почему Philips использует символ '?' (0x21) для вычисления бод-рейта? Ответ прост, достаточно посмотреть на диаграмму сигнала на линии TX для этого символа:

 

 

1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1

 

Последний выделенный бит - стоп-бит. который впринципе не участвует в процедуре определения бод-рейта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, как вы думаете почему Philips использует символ '?' (0x21) для вычисления бод-рейта? Ответ прост, достаточно посмотреть на диаграмму сигнала на линии TX для этого символа:

 

 

1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1

 

Последний выделенный бит - стоп-бит. который впринципе не участвует в процедуре определения бод-рейта.

 

При 0x21 (b'00100001')

на ТХ будет

1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1

выделены старт и стоп

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...