UART без кварца

Mar 21, 2005 Last reply: 21 years ago 42 Replies

Hi,ALL!!! Вот читаю про внутренний генератор PIC16F688.



При 25С и V=5V стабильность +- 1%. При 0С - 85С и V=2.5V - 5V +- 2%. При -20С +- 5%.



Прочитав,думаю,может не ставить кварц лишь ради того,чтобы связаться на 9600 с мобилой.Ну у меня -20С.Зато 5В.Ну будет +-3%.Вроде максимально допустимая погрешность для UART 5%.В крайнем случае можно начать программно подстраивать частоту внутреннего генератора до получения отклика телефона (у 16F688 есть регистр OSCTUNE при помощи которого можно регулировать частоту внутреннего генератора 8 мГц в пределах +-12% от заводской регулировки). А потом думаю,да нафига мне это надо.Поставлю кварц и концы в воду. Морочу себе голову уже 3 день.Весь извелся.Как красиво то без кварца. А что по этому поводу думает многоуважаемый ALL?



---------------- С уважением.Ю.



Пpивет, yura!

*** 21 Mar 05 14:31, yura v podgornov wrote to All:

yp> пределах +-12% от заводской регулировки). А потом думаю,да нафига мне yp> это надо.Поставлю кварц и концы в воду. Морочу себе голову уже 3 yp> день.Весь извелся.Как красиво то без кварца. А что по этому поводу yp> думает многоуважаемый ALL?

Хочешь стабильности в широком температурном диапазоне - ставь кварц.

с уважением Владислав

Mon Mar 21 2005 14:31, yura.v.podgornov wrote to All:

yvp> (у 16F688 есть регистр OSCTUNE при помощи которого можно регулировать yvp> частоту внутреннего генератора 8 мГц в пределах +-12% от заводской yvp> регулировки). yvp> А потом думаю,да нафига мне это надо.Поставлю кварц и концы в воду. yvp> Морочу себе голову уже 3 день.Весь извелся.Как красиво то без кварца. yvp> А что по этому поводу думает многоуважаемый ALL?

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

wbr, Andy

Hello, Andy Mozzhevilov !

Hе надо ничего крутить, в том температурном диапазоне, в котором работает мобила, стабильности и точности встроенного r-c вполне достаточно.

С уважением, Дима Орлов.

Hello, yura.v.podgornov !

Конечно не надо.

С уважением, Дима Орлов.

Hello yura.v.podgornov.

21 Mar 05 14:31, yura.v.podgornov wrote to all:

yvp> регулировать частоту внутреннего генератора 8 мГц в пределах +-12% от yvp> заводской регулировки). А потом думаю,да нафига мне это надо.Поставлю yvp> кварц и концы в воду. Морочу себе голову уже 3 день.Весь извелся.Как yvp> красиво то без кварца. А что по этому поводу думает многоуважаемый ALL?

Вполне нормальное желание обойтись без кварца.

Если твой девайс ждет данных (SLAVE), то измерив длительность старт-бита можно подстроить частоту генератора.

Alexey

yura.v.podgornov, ты ещё здесь сидишь?

Понедельник Март 21 2005 14:31, yura.v.podgornov wrote to All:

yp> Вот читаю про внутренний генератор PIC16F688. yp> При 25С и V=5V стабильность +- 1%. yp> При 0С - 85С и V=2.5V - 5V +- 2%. yp> При -20С +- 5%. yp> Прочитав,думаю,может не ставить кварц лишь ради того,чтобы связаться yp> на 9600 с мобилой.Hу у меня -20С.Зато 5В.Hу будет +-3%.Вроде yp> максимально допустимая погрешность для UART 5%.В крайнем случае можно yp> начать программно подстраивать частоту внутреннего генератора до yp> получения отклика телефона (у 16F688 есть регистр OSCTUNE при помощи

Извраты. Hеужели _настолько_ важна экономия на спичках? Она стоит головняка с написанием кода коррекции частоты? Если речь идёт о единичном изделии, тоъ _точно_ не стоит. Если о массовом - зачем создавать проблему, которая может существенно усложнить сопровождение продукта?..

Георгий

Привет!

Tue Mar 22 2005 13:48, George Shepelev wrote to yura.v.podgornov:

...

yp>> Вот читаю про внутренний генератор PIC16F688. yp>> При 25С и V=5V стабильность +- 1%. yp>> При 0С - 85С и V=2.5V - 5V +- 2%. yp>> При -20С +- 5%. yp>> Прочитав,думаю,может не ставить кварц лишь ради того,чтобы связаться yp>> на 9600 с мобилой.Hу у меня -20С.Зато 5В.Hу будет +-3%.Вроде yp>> максимально допустимая погрешность для UART 5%.В крайнем случае можно yp>> начать программно подстраивать частоту внутреннего генератора до yp>> получения отклика телефона (у 16F688 есть регистр OSCTUNE при помощи

GS> Извраты. Hеужели _настолько_ важна экономия на спичках? Она стоит GS> головняка GS> с написанием кода коррекции частоты? Если речь идёт о единичном изделии, GS> тоъ _точно_ не стоит. Если о массовом - зачем создавать проблему, которая GS> может существенно усложнить сопровождение продукта?..

Мне тоже нужно будет сделать изделие как раз на этом же МК (из-за корпуса TSSOP-14 и UART'а), причём единичиное и работающее от минус 20 С до +60 C. Ставить кварц не хочется, он практически удвоит площадь занимаемую узлом, да и режим работы тяжёлый по вибрациям (узел закреплён консольно на штанге в воздушном потоке), так что чем меньше кварцев тем лучше.

В общем действительно интересно, как там у него со стабильностью (в принципе готов отобрать из нескольких экземпляров). Подстраивать OSCTUNE не могу: зацепиться не за что (связь однонаправленная), разве что применить какое-то автоопределение скорости на приёмном конце (dsPIC30F4011), правда там МК очень сильно нагружен.

Александр Голов, Москва, snipped-for-privacy@mail.ru

Alexey, ты ещё здесь сидишь?

Вторник Март 22 2005 10:26, Alexey Gushin wrote to yura.v.podgornov:

yvp>> регулировать частоту внутреннего генератора 8 мГц в пределах yvp>> +-12% от заводской регулировки). А потом думаю,да нафига мне это yvp>> надо.Поставлю кварц и концы в воду. Морочу себе голову уже 3 yvp>> день.Весь извелся.Как красиво то без кварца. А что по этому yvp>> поводу думает многоуважаемый ALL? AG> Вполне нормальное желание обойтись без кварца. AG> Если твой девайс ждет данных (SLAVE), то измерив длительность AG> старт-бита можно подстроить частоту генератора.

Даже если первые пришедшие информационные биты имеют тот-же логический уровень, что и старт-бит? ;-)

Георгий

23-Mar-05 23:42 Alexander Golov wrote to George Shepelev:

AG> В общем действительно интересно, как там у него со стабильностью (в AG> принципе AG> готов отобрать из нескольких экземпляров). Подстраивать OSCTUNE не могу: AG> зацепиться не за что (связь однонаправленная), разве что применить AG> какое-то AG> автоопределение скорости на приёмном конце (dsPIC30F4011), правда там МК AG> очень сильно нагружен.

А подать сигнал не только на RxD, но и ещё на какой-нибудь capture и сгородить что-то LIN-подобное? В таком случае настройка на скорость не должна занимать много ресурсов.

Какая скорость передачи, какой поток данных? Можно перейти на 5-битовую посылку в UART, это немного расширит диапазон частот, в которых ещё будет нормально приниматься - допустимое отклонение будет в 1.4 раза больше.

5-ый бит в послыке использовать для индикации - это старший ниббл или младший, на самом нижнем уровне делать разборку/сборку байтов, верхние уровни протокола ничего и не заметят.

wbr,

Alexander, ты ещё здесь сидишь?

Четверг Март 24 2005 02:42, Alexander Golov wrote to George Shepelev:

AG> Мне тоже нужно будет сделать изделие как раз на этом же МК (из-за AG> корпуса TSSOP-14 и UART'а), причём единичиное и работающее от минус 20 AG> С до +60 C. Ставить кварц не хочется, он практически удвоит площадь AG> занимаемую узлом, да и режим работы тяжёлый по вибрациям (узел AG> закреплён консольно на штанге в воздушном потоке), так что чем меньше AG> кварцев тем лучше. AG> В общем действительно интересно, как там у него со стабильностью (в AG> принципе готов отобрать из нескольких экземпляров).

Отбирать экземпляры - на редкость тоскливое "удовольствие", с учётом, что отбирать придётся с проверкой работы _в диапазоне температур_. Работать, скорее всего, будет. В виде макета и опытного экземпляра. Hо делать так массовую продукцию всё-таки стрёмно (к примеру трудно угадать, что у RC-генератора будет с временнОй стабильностью).

AG> Подстраивать OSCTUNE не могу: зацепиться не за что (связь AG> однонаправленная), разве что применить какое-то автоопределение AG> скорости на приёмном конце (dsPIC30F4011), правда там МК очень сильно AG> нагружен.

Я бы всё-таки поставил кварц - куча головняка исчезнет _принципиально_. Идея работы без кварца хороша _в комнатных_ условиях (или когда небольшое отклонение частоты не слишком важно).

Георгий

Oleksandr, ты ещё здесь сидишь?

Четверг Март 24 2005 23:24, Oleksandr Redchuk wrote to "Alexander Golov":

OR> А подать сигнал не только на RxD, но и ещё на какой-нибудь capture OR> и сгородить что-то LIN-подобное? OR> В таком случае настройка на скорость не должна занимать много OR> ресурсов. OR> Какая скорость передачи, какой поток данных? OR> Можно перейти на 5-битовую посылку в UART, это немного OR> расширит диапазон частот, в которых ещё будет нормально OR> приниматься - допустимое отклонение будет в 1.4 раза больше.

Зачем заниматься шаманством, когда все эти проблемы снимаются установкой обыкновенного кварца? Hет, я понимаю, лет пятнадцать назад это был "дифсит", так ведь уже кончились давно те времена...

Георгий

Привет!

Thu Mar 24 2005 23:24, Oleksandr Redchuk wrote to "Alexander Golov":

...

AG>> В общем действительно интересно, как там у него со стабильностью (в AG>> принципе AG>> готов отобрать из нескольких экземпляров). Подстраивать OSCTUNE не могу: AG>> зацепиться не за что (связь однонаправленная), разве что применить AG>> какое-то AG>> автоопределение скорости на приёмном конце (dsPIC30F4011), правда там МК AG>> очень сильно нагружен.

OR> А подать сигнал не только на RxD, но и ещё на какой-нибудь capture OR> и сгородить что-то LIN-подобное?

В общем да, просто не очень хотелось напрягаться на такую автоматику ради единичного изделия.

Интересно, что в описании семейства dsPIC указывается на фичу внутрикристального присоединения RX к одному из каналов Capture, но потом в даташитах об этом уже говорится вроде как о внешнем соединении.

OR> В таком случае настройка на скорость не должна занимать много ресурсов.

Пожалуй, просто по основной работе ожидается порядка 1 МГц прерываний при 20 MIPS тактовой, но вроде на наивысшем приоритете ничто этому обработчику помешать не должно.

OR> Какая скорость передачи, какой поток данных?

Да никакой. МК всунут с одной единственной целью -- передать по одной имеющейся свободной паре рабочую температуру (типа: уже горим, или ещё можно жить) в двух точках изделия.

OR> Можно перейти на 5-битовую посылку в UART, это немного OR> расширит диапазон частот, в которых ещё будет нормально OR> приниматься - допустимое отклонение будет в 1.4 раза больше. OR> 5-ый бит в послыке использовать для индикации - это старший ниббл OR> или младший, на самом нижнем уровне делать разборку/сборку байтов, OR> верхние уровни протокола ничего и не заметят.

Вот! Это действительно интересный вариант.

Александр Голов, Москва, snipped-for-privacy@mail.ru

Пpивет, Alexander!

*** 26 Mar 05 01:19, Alexander Golov wrote to Oleksandr Redchuk:

OR>> приниматься - допустимое отклонение будет в 1.4 раза больше. OR>> 5-ый бит в послыке использовать для индикации - это старший ниббл OR>> или младший, на самом нижнем уровне делать разборку/сборку OR>> байтов, верхние уровни протокола ничего и не заметят.

AG> Вот! Это действительно интересный вариант.

А если ты не ограничен именно UARTом, то можно использовать и синхронную передачу, манчестерское или бифазное кодирование. Там допуски еще больше...

с уважением Владислав

Alexander, ты ещё здесь сидишь?

Суббота Март 26 2005 01:19, Alexander Golov wrote to Oleksandr Redchuk:

OR>> Можно перейти на 5-битовую посылку в UART, это немного OR>> расширит диапазон частот, в которых ещё будет нормально OR>> приниматься - допустимое отклонение будет в 1.4 раза больше. OR>> 5-ый бит в послыке использовать для индикации - это старший ниббл OR>> или младший, на самом нижнем уровне делать разборку/сборку OR>> байтов, верхние уровни протокола ничего и не заметят. AG> Вот! Это действительно интересный вариант.

А девайс "с другой стороны" на такой режим получится настроить? Кстати, видимо придётся использовать два стоп-бита...

Георгий

Привет!

Fri Mar 25 2005 21:57, George Shepelev wrote to Alexander Golov:

...

AG>> Мне тоже нужно будет сделать изделие как раз на этом же МК (из-за AG>> корпуса TSSOP-14 и UART'а), причём единичиное и работающее от минус 20 AG>> С до +60 C. Ставить кварц не хочется, он практически удвоит площадь AG>> занимаемую узлом, да и режим работы тяжёлый по вибрациям (узел AG>> закреплён консольно на штанге в воздушном потоке), так что чем меньше AG>> кварцев тем лучше. AG>> В общем действительно интересно, как там у него со стабильностью (в AG>> принципе готов отобрать из нескольких экземпляров).

GS> Отбирать экземпляры - на редкость тоскливое "удовольствие", с учётом, GS> что отбирать придётся с проверкой работы _в диапазоне температур_. GS> Работать, скорее всего, будет. В виде макета и опытного экземпляра. GS> Hо делать так массовую продукцию всё-таки стрёмно (к примеру трудно GS> угадать, что у RC-генератора будет с временнОй стабильностью).

Ну какая ещё массовая продукция? Я ведь прямо сказал: мне нужен _ОДИН_ экземпляр изделия, ну может на всякий случай сделаю второй. Даже если пойдёт серия, то это всё равно будут единицы приборов в год.

AG>> Подстраивать OSCTUNE не могу: зацепиться не за что (связь AG>> однонаправленная), разве что применить какое-то автоопределение AG>> скорости на приёмном конце (dsPIC30F4011), правда там МК очень сильно AG>> нагружен.

GS> Я бы всё-таки поставил кварц - куча головняка исчезнет _принципиально_. GS> Идея работы без кварца хороша _в комнатных_ условиях (или когда небольшое GS> отклонение частоты не слишком важно).

Ну уж такая куча исчезнет! А то, что вибронагрузка на узел торчащий в сверхзвуковом потоке будет просто труднопредсказуемой и мне совсем не светит производить эксперименты (такие простые и дешёвые, надо заметить, не то, что тяжкие прогоны в термокамере) по выживанию конкретных кварцев в новых условиях (это уже не тщательно сбалансированный массивный ротор, тут всё радикально хуже).

Александр Голов, Москва, snipped-for-privacy@mail.ru

Привет!

Sat Mar 26 2005 17:34, Vladislav Baliasov wrote to Alexander Golov:

...

OR>>> приниматься - допустимое отклонение будет в 1.4 раза больше. OR>>> 5-ый бит в послыке использовать для индикации - это старший ниббл OR>>> или младший, на самом нижнем уровне делать разборку/сборку OR>>> байтов, верхние уровни протокола ничего и не заметят.

AG>> Вот! Это действительно интересный вариант.

VB> А если ты не ограничен именно UARTом, то можно использовать и синхронную VB> передачу, манчестерское или бифазное кодирование. Там допуски еще VB> больше...

Насчёт синхронного вряд ли -- у меня только одна пара. Остальное попробовать можно, правда это уже совсем другой уровень нагрузки на приёмную сторону (хотя бы чисто алгоритмически).

Александр Голов, Москва, snipped-for-privacy@mail.ru

Привет!

Sun Mar 27 2005 00:41, George Shepelev wrote to Alexander Golov:

...

OR>>> Можно перейти на 5-битовую посылку в UART, это немного OR>>> расширит диапазон частот, в которых ещё будет нормально OR>>> приниматься - допустимое отклонение будет в 1.4 раза больше. OR>>> 5-ый бит в послыке использовать для индикации - это старший ниббл OR>>> или младший, на самом нижнем уровне делать разборку/сборку OR>>> байтов, верхние уровни протокола ничего и не заметят. AG>> Вот! Это действительно интересный вариант.

GS> А девайс "с другой стороны" на такой режим получится настроить? Кстати, GS> видимо придётся использовать два стоп-бита...

А что там настраивать? Меняется только содержимое байта (только 5 значащих разряжов, остальные -- возбуждение линии) и никакие доп. стоп-биты конечно не требуются.

Александр Голов, Москва, snipped-for-privacy@mail.ru

Hello, Alexander! You wrote to Vladislav Baliasov on Sun, 27 Mar 2005 21:37:50 +0000 (UTC):

OR>>>> приниматься - допустимое отклонение будет в 1.4 раза больше. OR>>>> 5-ый бит в послыке использовать для индикации - это старший ниббл OR>>>> или младший, на самом нижнем уровне делать разборку/сборку OR>>>> байтов, верхние уровни протокола ничего и не заметят.

AG>>> Вот! Это действительно интересный вариант.

VB>> А если ты не ограничен именно UARTом, то можно использовать и VB>> синхронную передачу, манчестерское или бифазное кодирование. Там VB>> допуски еще больше...

AG> Насчёт синхронного вряд ли -- у меня только одна пара. Остальное AG> попробовать можно, правда это уже совсем другой уровень нагрузки на AG> приёмную сторону (хотя бы чисто алгоритмически).

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

With best regards, Alexander Derazhne

Пpивет, Alexander!

*** 28 Mar 05 00:37, Alexander Golov wrote to Vladislav Baliasov:

OR>>>> заметят.

AG>>> Вот! Это действительно интересный вариант.

VB>> А если ты не ограничен именно UARTом, то можно использовать и VB>> синхронную передачу, манчестерское или бифазное кодирование. Там VB>> допуски еще больше...

AG> Hасчёт синхронного вряд ли -- у меня только одна пара.

Я имею в виду самосинхронизирующиеся протоколы (бифазное и манчестерское кодирование обладает такой возможностью), а вовсе не выделение отдельной линии для передачи синхронизации

AG> Остальное попробовать можно, правда это уже совсем другой уровень AG> нагрузки на приёмную сторону (хотя бы чисто алгоритмически).

Если есть аппаратный USART - то практически нисколько (но нужно обеспечить поиск синхропреамбулы и, при необходимости восстанавливать синхронизацию - но при зашумленном канале и асинхронный протокол тоже может сбиться). Если приемник программный - да и в этом случае большого различия от UART нет.

с уважением Владислав

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required