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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Вопрос по UART по стабильности от внутреннего генера
xemul
сообщение Jun 4 2009, 15:42
Сообщение #16



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(@Ark @ Jun 4 2009, 19:37) *
Ничего не мешает, можно и так.
Есть только одна "засада" - для некоторых экземпляров МК может не хватить диапазона подстройки.
Не выбраковывать же их из-за этого... Программная калибровка предпочтительнее по этой причине.

Может не хватить дискретности перестройки генератора для относительно высоких скоростей обмена. Диапазона перестройки хватает с избытком.
Касательно скорости - сомневаюсь, что софтовый УАРТ позволит достичь в одинаковых условиях тех же скоростей, что и хардовый.
Цитата
И еще по тому, что "попутно", как-бы само-собой, реализуется автоопределение скорости обмена.
IHMO, весьма полезно иметь некоторый выбор скоростей, а не одну. wink.gif

И здесь Вас опередили smile.gif - в LIN'е оно тоже предусмотрено.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jun 4 2009, 16:27
Сообщение #17





Guests






<<... Диапазона перестройки хватает с избытком>>
В большинстве случаев - да. В начале тоже занимался подстройкой генераторов, пока не стали изредка попадаться не настраиваемые экземпляры. Мне их жалко выкидывать. smile.gif

<< сомневаюсь, что софтовый УАРТ позволит достичь в одинаковых условиях тех же скоростей, что и хардовый>>
Практически не уступает. По крайней мере - для скоростей до 115200.

<<...в LIN'е оно тоже предусмотрено>>
Ну и что? Почему обязательно LIN? По моему, протокол выбирается по задаче.
Go to the top of the page
 
+Quote Post
xemul
сообщение Jun 4 2009, 17:37
Сообщение #18



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(@Ark @ Jun 4 2009, 20:27) *
<< сомневаюсь, что софтовый УАРТ позволит достичь в одинаковых условиях тех же скоростей, что и хардовый>>
Практически не уступает. По крайней мере - для скоростей до 115200.

Т.е., н-р, АВР@8 МГц INTRC сможет софтово уартить на 115200 и делать еще что-нибудь общественно-полезное? Снимаю шляпу.
Цитата
<<...в LIN'е оно тоже предусмотрено>>
Ну и что? Почему обязательно LIN? По моему, протокол выбирается по задаче.

Безусловно. Но LIN - это простейшая надстройка над УАРТом, решающая обсуждаемые задачи стандартным образом.
(по секрету - он мне не нравится своей избыточной недостаточностью. но стандартен, зараза)
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jun 4 2009, 18:17
Сообщение #19





Guests






<<Т.е., н-р, АВР@8 МГц INTRC сможет софтово уартить на 115200 и делать еще что-нибудь общественно-полезное? Снимаю шляпу.>>
Оденьте шляпу. smile.gif Это на 9600 можно параллельно общественно-полезной деятельностью заниматься. На 115200 - с этим уже туго. Только последовательно...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 4 2009, 18:55
Сообщение #20


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
На 115200 - с этим уже туго. Только последовательно...


Да ладно, если пару регистров занять, то вполне можно на 115200 с загрузкой процессора порядка 25 процентов радоваться софтовому UART'у, т.е. 3/4 времени заниматься общественнополезными делами. Но делать такое имеет смысл только в том случае, если уж очень надо.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jun 4 2009, 19:54
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Rst7 @ Jun 4 2009, 22:55) *
Да ладно, если пару регистров занять, то вполне можно на 115200 с загрузкой процессора порядка 25 процентов радоваться софтовому UART'у, т.е. 3/4 времени заниматься общественнополезными делами. Но делать такое имеет смысл только в том случае, если уж очень надо.

А если в софтовом UART-е задействовать таймеры с входами захвата, то загрузка процессора уменьшится ещё как минимум в 2 раза. И прерывания можно будет запрещать на дольшее время. И вообще, приём можно будет сделать не по прерыванию.
Только нужно ли это? Чем LIN то плох?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jun 4 2009, 21:06
Сообщение #22





Guests






Ну причем тут LIN?!
В этой теме речь о том, как обеспечить надежную работу UART в указанных условиях.
А какую шину использовать для передачи и какой протокол выбрать - это уже совсем другая задача.
Связывать эти две проблемы в одну - совершенно не обязательно. На мой взгляд - лучше, как раз, НЕ связывать, и иметь определенную свободу дальнейшего выбора и протокола, и физической шины.
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 5 2009, 02:19
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



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


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jun 5 2009, 05:00
Сообщение #24





Guests






to attab: Вы, видимо, не совсем поняли, что предлагается. Калибруется программная процедура - по приему известных значений байт. Поэтому, ни термометр, ни калибровочные значения для генератора - не требуются.
Диапазон такой "подстройки" по частоте составляет "разы" от предполагаемого номинального значения, как
вверх, так и вниз. По сему, такая калибровка - заодно выполняет функцию автоопределения скорости обмена.
На практике все это давно и многократно проверено...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 5 2009, 05:15
Сообщение #25


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(rx3apf @ Jun 4 2009, 17:44) *
Ну уж 8-16 MHz вряд ли можно отнести к высокочастотным. И уж такой ширпотреб проблем обычно не вызывает, хоть какие ставь.

Это так кажется, пока не столкнёшься.
Пусть даже один из сотни попадётся, всё равно очень неприятно. Пользователя ведь не волнует, что ему вот с кварцем не повезло.
Причём проблемы могут возникнуть через полгода-год успешной эксплуатации.
А некоторые семейства атмелов (например, 8253) имеют особую предрасположенность к таким дефектам.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 5 2009, 05:39
Сообщение #26


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(MrYuran @ Jun 5 2009, 09:15) *
Это так кажется, пока не столкнёшься.

Надо ли это понимать так, что дефектных часовых кварцев в природе не бывает ?


Цитата(galjoen @ Jun 4 2009, 23:54) *
Чем LIN то плох?

А что в нем хорошего ? На малые расстояния, с малой скоростью - ну, может быть и ничего. А если большая емкость, переключение линии несимметричное и время перехода 1->0 и 0->1 существенно различаются ? И аппаратный UART задействовать тоже не особо просто, даже если опорный генератор процессора допускает "электронную" подстройку. А если не допускает, то типично дискретность перестройки через опорный делитель слишком грубая. А синхронные протоколы - просто и надежно.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jun 5 2009, 09:06
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(rx3apf @ Jun 5 2009, 09:39) *
А что в нем хорошего ? На малые расстояния, с малой скоростью - ну, может быть и ничего. А если большая емкость, переключение линии несимметричное и время перехода 1->0 и 0->1 существенно различаются ? И аппаратный UART задействовать тоже не особо просто, даже если опорный генератор процессора допускает "электронную" подстройку. А если не допускает, то типично дискретность перестройки через опорный делитель слишком грубая. А синхронные протоколы - просто и надежно.

Я имел ввиду использование автоподстройки частоты как в протоколе LIN в комплекте с СОФТОВЫМ UART. В таком случае разница переднего и заднего фронтов и соотв-но время перехода 1->0 и 0->1 запросто компенсируются програмными настройками по результатам приёма известного байта. А ещё лучше сделать софтовый CAN. Для скорости 5000 бод это вполне реально. В таком случае можно использовать драйвера линии LIN. Т.е. 3-х жильный провод - земля, линия связи и питание 12 вольт. А синхронные протоколы потребуют и проводов и драйверов линии поболее. А цена драйвера линии (хоть RS485, хоть CAN, хоть LIN) на уровне младших AVR (ATmega48 например).
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jun 5 2009, 09:58
Сообщение #28





Guests






Цитата(galjoen): "... синхронные протоколы потребуют и проводов и драйверов линии поболее..."

Это не так. Самосинхронизирующиеся способы кодирования - специальных драйверов и дополнительных проводов не требуют... Ув. rx3apf, на самом деле, прав. Применительно к условиям задачи, заданной в этой теме, то же "манчестер" был бы на много предпочтительнее. Но вопрос был поставлен об использовании и обеспечении стабильности UART...
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jun 5 2009, 10:26
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(@Ark @ Jun 5 2009, 13:58) *
Цитата(galjoen): "... синхронные протоколы потребуют и проводов и драйверов линии поболее..."

Это не так. Самосинхронизирующиеся способы кодирования - специальных драйверов и дополнительных проводов не требуют... Ув. rx3apf, на самом деле, прав. Применительно к условиям задачи, заданной в этой теме, то же "манчестер" был бы на много предпочтительнее. Но вопрос был поставлен об использовании и обеспечении стабильности UART...

Синхронные, это которые с внешней синхронизацией. А самосинхронхронизирующиеся - это другое. Все современные протоколы самосинхронизирующиеся. Поэтому у них и имеется битстаффинг - для синхронизации. USB, CAN и т.д. Да и LIN тоже, с некоторой натяжкой, можно отнести к самосинхронизирующимся. Он на базе UART. Поэтому его и рекомендуют.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jun 5 2009, 15:31
Сообщение #30





Guests






<<Все современные протоколы самосинхронизирующиеся. Поэтому у них и имеется битстаффинг - для синхронизации. USB, CAN и т.д. Да и LIN тоже>>

И снова не верно. НЕ все.

И стандарный UART - НЕ самосинхронизирующийся! Не зная опорной частоты невозможно достоверно принять информацию. А для самосинхронизирующегося "манчестера" - можно!

Извините, ув. galjoen , но Вы хотя бы уясните для себя разницу между физическим уровнем и протоколом...
Go to the top of the page
 
+Quote Post

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

 


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


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