Страница 1 из 2

UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 11:26:37
Upgrader
Реально ли в обычных условиях, при комнатной температуре, без калибровок и подстроек использовать встроенный UART без кварцевого резонатора в МК AVR Tiny...?

По началу и не думал об этом, а потом как глянул форумы: частенько пишут - низяяя!!! :shock: Хотелось бы узнать ваше мнение и опыт.

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 12:30:03
abc
Точность заводской калибровки встроенных RC-генераторов у большинства современных МК составляет 1% и меньше.
Поэтому если правильно подобрать НЕдробный коэффициент под какую-то конкретную скорость обмена - да, можно.
На практике же и при ошибке в 2-3% в скорости UARTа обмен данными происходит без ошибок.
Напр, PIC16F688 с тактовой 8MHz абсолютно нормально "летает" на 115200.

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 15:22:32
SergeBS
abc писал(а):Точность заводской калибровки встроенных RC-генераторов у большинства современных МК составляет 1% и меньше.

Пример в студию! Типа ссылку на datasheet!
А производитель обещает +-10% для ATtiny13. И +- 2% при User Calibration. Т.е. при посылке одиночных байтов еще как-то поработает, а иначе облом. Уж не говоря о целесообразности подкручивания к 8-лапой мелюзге UART. Проще на FT232 bitbanging юзать.

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 16:13:00
oleg110592
Проще на FT232 bitbanging юзать

сейчас проще и дешевле решение есть: http://tqfp.org/stm32/novoe-semeystvo-s ... varca.html

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 17:39:04
Pink-Pank
Для той же Tiny13
Изображение
Как можно видеть, частота зависит не только от температуры, но еще и от напряжения питания. Но. +/- 5% от температуры 25 град - это реальный разброс. Так человек сказал, что температура комнатная - и меняться не будет. Т.е. можно считать, что частота стабильна.

А +/- 10%, которые прозвучали - так это точность заводской калибровки. Если есть осцилл - можно откалибровать кристалл самому - на то есть специальные ячейки. А чтобы исключить накопление ошибки в следствие неточности выставления частоты - то можно (и желательно) вводить небольшую программную задержку после передачи определенного количества байт (например, отправлять пакетами не более 8 байт).

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 17:51:33
nirq
У дискуссии есть цель?

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 19:43:43
YS
Реально ли в обычных условиях, при комнатной температуре, без калибровок и подстроек использовать встроенный UART без кварцевого резонатора в МК AVR Tiny...?


Да. На tiny13 успешно использовал самописный софтовый UART; в серии ATmega у меня тоже никогда проблем с UART'ом (тут уже с аппаратным) без кварца не было. Тем не менее, в устройства с UART'ом, предназначенные для продажи, я от греха подальше ставлю кварцы.

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 20:02:58
Engineer_Keen
Лично у меня при комнатной температуре проблем не было, работал с тини2313, тини24 (программно-аппаратный через USI), мега8535, мега48, в основном 9600 или 38400 бит/с, но знаю пару человек, у которых возникала проблема с приемом-передачей у конкретного экземпляра (2313), лечилось минимальным подкручиванием OSCCAL. Для самоделок, работающих в комнатных условиях ИМХО можно не заморачиваться. Правда как минимум у одного из устройств всегда был кварц (или это был комп), для случая, когда с обоих сторон интерфейса кварца нет, у меня статистика отсутствует, теоретически ситуация может быть хуже...

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 20:11:25
Kavka
abc писал(а):...нормально "летает" на 115200.
Как говорят на забугорном - it depends...
Зависит он приёмника на другой стороне, например.
По своему опыту могу сказать, что с мегой16 от кварца на 16МГц в паре с FT232R на 115200 было что сбоило, ошибка по спецификации -3.5%. Пришлось двойную скорость включать в меге, тогда ошибка +2.1% - в моём случае помогло. Если оно при таких ошибках работает, то если подобрать скорость (делитель) с ошибкой не более 0.5%. Изменение частоты встроенного генератора в пределах 20 градусов даст около 2% разброса (картинку тут уже привели), т.е., грубо, всего около 2.5%.
Если обратить внимание на то, что на малых скоростях ошибка, как правило достаточно мала, то можно подобрать делитель с малой ошибкой. Тогда при условии вышеизложенного, даже при нестабильном тактировании можно использовать UART на малых скоростях. Когда ошибка делителя UART и ошибка генератора суммарно не превысят 2-3%. Более 5%, если память не изменяет, нельзя. IMHO, как то так.

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 21:06:39
YS
По своему опыту могу сказать, что с мегой16 от кварца на 16МГц в паре с FT232R на 115200 было что сбоило, ошибка по спецификации -3.5%.


Да, значения бодрейта желательно выбирать так, чтобы теоретическая ошибка (та, что в таблице в даташите) не превышала 0.5 - 1%.

У меня есть проект, в котором через UART загружается содержимое внешней флешки на 10 МБайт (реально было от трех до семи мегабайт). Поскольку процедура выполняется в процессе производства одноразово, кварц я для удешевления не ставил. Там стоит ATmega48, работающая от внутреннего генератора на 8 МГц. Данные загружаются на скорости 250 кБод. При этом ни на одном из произведенных устройств ошибок из-за рассинхронизации я не отмечал (загрузчик их контролирует и сообщает в случае обнаружения). Ошибки, кстати, были, когда я в процессе передачи данных паяльник из розетки вынимал. :)

Правда как минимум у одного из устройств всегда был кварц (или это был комп)


Ценное замечание. У меня, кстати, аналогично.

Re: UART без кварцевого резонатора

Добавлено: Ср июл 23, 2014 22:28:41
abc
SergeBS писал(а):
abc писал(а):Точность заводской калибровки встроенных RC-генераторов у большинства современных МК составляет 1% и меньше.

Пример в студию! Типа ссылку на datasheet!

а, сорри, я ж не думал, что у атмела так все запущено )
Я пользую PIC-и, там все чОтко :
Clipboard02.png
(58.52 КБ) 834 скачивания

Re: UART без кварцевого резонатора

Добавлено: Чт июл 24, 2014 04:18:18
SergeBS
abc писал(а):Я пользую PIC-и, там все чОтко :

Ну просто Microchip раздвигает пальцы, что на заводе калибрует с точностью 1% (T=25 С, Vdd=3.5 V) а реально - примерно как у Atmel. Маркетинг.
PIC_F.png
(91.37 КБ) 793 скачивания

Re: UART без кварцевого резонатора

Добавлено: Чт июл 24, 2014 09:57:09
abc
эм, ну хорошо, 2%
во всем диапазоне питающих напряжений и при температуре от 0 до 85
но не 5 и не вышеозвученные 10

Re: UART без кварцевого резонатора

Добавлено: Пт июл 25, 2014 09:36:34
SergeBS
abc писал(а):эм, ну хорошо, 2%
во всем диапазоне питающих напряжений и при температуре от 0 до 85
но не 5 и не вышеозвученные 10

Ну все-таки не во всем диапазоне. Во всем будет 5% (2 V). Реально одни (Microchip) пишут: "поимеете 1%!", при этом скромно умалчивая, что в тепличных условиях. Другие (Atmel) пишут: "поимеете не хуже 10%", не важно при каких условиях. По факту - так одинаково получается, если графики и цифирки сравнить. Маркетинг разный, а технология одна.
А по сути уже озвучено - на низких скоростях и в хороших условиях без кварца на МК потянет. Другой вопрос, что у меня дома, например, кондея нет. Ну и днем +30 легко. А во всяких Крымах и т.п. - до +40 легко долетит. С соответствующим обломом...

Re: UART без кварцевого резонатора

Добавлено: Пт июл 25, 2014 11:11:07
oleg110592
Посвежее тини микроконтроллеры Атмел содержат внутри температурный сенсор и также можно измерить напряжение питания без внешних схем, поэтому можно легко ввести корректировку частоты внутреннего генератора.

Re: UART без кварцевого резонатора

Добавлено: Пт июл 25, 2014 11:41:32
HHIMERA
SergeBS писал(а):Ну просто Microchip раздвигает пальцы, что на заводе калибрует с точностью 1% (T=25 С, Vdd=3.5 V) а реально - примерно как у Atmel.

Та не надо ля-ля... Есть разные применения... с разными температурными диапазонами...

Re: UART без кварцевого резонатора

Добавлено: Ср дек 16, 2020 07:00:54
SlovachevskyDV
А у меня проблема возникла.
Девайс на меге8
Скорость мизерная: 2400
Сбои заметил когда похолодало. Причем принимает данные четко. А отправляет бред. Если температура воздуха падает ниже 20. Ткнешь паяльником в проц, работает какое-то время нормально. Через 15-20 мин опять сыплет мусор.

Re: UART без кварцевого резонатора

Добавлено: Ср дек 16, 2020 07:58:01
Самсусамыч
[uquote="Upgrader",url="/forum/viewtopic.php?p=2079938#p2079938"]без калибровок и подстроек использовать встроенный UART без кварцевого резонатора в МК AVR Tiny...?[/uquote]
Про все tiny не скажу, а вот с ATtiny2313 были засады с аппаратным UART… одни без кварца по UART работали без сбоя, другие не хотели ни в какую нормально работать пока не поставишь кварц. С ATtmega8, ATtmega48, ATtmega88, ATtmega168, ATtmega328, ATtmega8535, ATtmega32, такого не наблюдалось.

Re: UART без кварцевого резонатора

Добавлено: Ср дек 16, 2020 08:38:50
OKF
Оскалом нужно играться. Потому как одни (m8, m32, m8515) калибруются при 5, а другие (t2313, mХ8) при 3 вольтах, не знали?

Re: UART без кварцевого резонатора

Добавлено: Ср дек 16, 2020 12:41:13
GoldenAndy
У меня была мега8, которая при 5 вольтах, комнатной температуре работала на частоте 8.55 МГц (проверил, запустив таймер и посмотрев, чего на выходе таймера).

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

Тут несколько вариантов:

1. Циклическая посылка заранее известного приемнику синхробайта. Приемник крутит делитель УАРТа, пока не пошлучит устойчивое чтение синхробайта, после чего отвечает мастеру - что ок, настроился.

2. отслеживать перепад на приемном пине, далее тупым подсчетом определять длительность сигнала, после чего вычислять делитель для уарт, включать уарт и сообщать, что готовы принимать данные. Требует отдельного синхробайта перед данными.

3. Софтовый уарт с автосинхронизацией. Либо по первому синхробайту, либо сильно думать алгоритм и сразу ловить данные (но это тяжелее).

ПС. Почитайте тему https://radiokot.ru/forum/viewtopic.php?f=57&t=160816 - там у человека была проблема подружить мелкую тиню и большой МК.
Я в голове человеку придумал алгоритм софтового уарта с синхронизацией по первому байту 0х55 - на страничке 6.
Dimon456 на восьмой страничке по алгоритму накидал код, тестировал - +/-1 МГц получился разброс. На 10 странице - то, что у Dimon456 после всех оптимизаций получилось в результате.