-
- По моему скромному разумению, внутренний RC осциллятор в принципе
не предназначен для постоянной работы и тактирования интерфесов, в
частности UART и CAN. Не надо его использовать для этого и
экономить на спичках. На мой взгляд внутренний rc-генератор только
для сна, стартапа и аварийной работы. Прав ли я? - RxTx(12.09.2023 21:44)
- тысячи приборов работают уже лет 20 от внутреннего РС осциллятора
на мегах8 без всяких проблем - 0men(12.09.2023 21:51)
- Гуд. снимаю шляпу. А что делают? - RxTx(12.09.2023 22:02)
- тысячи приборов работают уже лет 20 от внутреннего РС осциллятора
на мегах8 без всяких проблем - 0men(12.09.2023 21:51)
- Идеи простые, не изобретать велосипед. Ищем только по сайту, скажем site:microchip.com (или site:st.com ) и пишем Application Note rc oscillator - в ответ выпадут аппноты по калибровке. У ST рядом с аппнотой лежит библиотека для калибровки. Я неспроста задал вопрос - все аппноты что мне выпадали по калибровке. Без прелюдий зачем internal oscillator'ы и их всяческие особенности. Мне-то понятно что много зачем, начиная от того чтобы сэкономить по деньгам на кварце или RxTx(190 знак., 12.09.2023 21:41)
- Ответ: Для "макета на столе" - делал калибровку RC-генератора
ATtiny44 по app. note AVR053 через STK500. Чётко работало на 38400.
AVR054 с калибровкой имеенно по UART - можно невозбранно
использовать для калибровок "на ходу". Для "серийного" прибора на
ATtiny15 (выпущено около 500 штук) - делал подстройку таймера по
преамбуле от ПК (в основе - код ATmega128 по ссылке). Софт на ПК
начинал со скорости 38400 и снижал её до получения приемлемого
разбега частот, отдаваемого tiny15 Toчкa oпopы(308 знак., 12.09.2023 12:30, ссылка)
- не, ну там самосинхронизируюшиеся протоколы ещё с РК86 помним :))
когда есть возможность подстроиться по пилот-сигналам, и софтово
накрутить процедуру приёма под нужную скорость, - эт одно, а когда
надо состыковать две разные железки, одна из которых (не твоя)
крайне требовательна к стабильности баудрейта, - другое. Adept(533 знак., 12.09.2023 12:44)
- Значит я как-то не донёс свои предположения. Калибровкой генератора
подстраивать, она - плавнее BR'а. Кратковременная стабильность
нуждается в подтверждении, но я предполагаю, что она достаточно
хороша. Упомянутый V-USB в помощь. - Toчкa oпopы(12.09.2023 12:59)
- Да, для малых скоростей, наверное так и надо (BR тоже можно
накручивать, если OSCCAL не хватает), но это всё на низких
скоростях (до 115200) хорошо, на экстремально высоких, вероятно -
только внешний генератор (в последних АВР выкорчевали кварцевый
генератор, оставив только РЦ и для часового кварца). Спасибо,
кстати, за вашу ссылку, интересно почитать. - Adept(12.09.2023 13:08)
- Какая разница, какая скорость, если подстройка скорости генератора идёт в долях процента? Разница в количестве точек выборки на низких (три) и высоких (одна) скоростях есть лишь для шумного сигнала. А к отклонению частоты генератора, у низких и высоких скоростей - чувствительность одинакова. Насколько я видел, пределы подстройки OSCCAL, полностью перекрывают возможные отклонения. На "экстримально высоких" скоростях, если есть такое значение делителя для номинальной частоты Nikolay_Po(323 знак., 12.09.2023 18:12)
- Да, для малых скоростей, наверное так и надо (BR тоже можно
накручивать, если OSCCAL не хватает), но это всё на низких
скоростях (до 115200) хорошо, на экстремально высоких, вероятно -
только внешний генератор (в последних АВР выкорчевали кварцевый
генератор, оставив только РЦ и для часового кварца). Спасибо,
кстати, за вашу ссылку, интересно почитать. - Adept(12.09.2023 13:08)
- Значит я как-то не донёс свои предположения. Калибровкой генератора
подстраивать, она - плавнее BR'а. Кратковременная стабильность
нуждается в подтверждении, но я предполагаю, что она достаточно
хороша. Упомянутый V-USB в помощь. - Toчкa oпopы(12.09.2023 12:59)
- не, ну там самосинхронизируюшиеся протоколы ещё с РК86 помним :))
когда есть возможность подстроиться по пилот-сигналам, и софтово
накрутить процедуру приёма под нужную скорость, - эт одно, а когда
надо состыковать две разные железки, одна из которых (не твоя)
крайне требовательна к стабильности баудрейта, - другое. Adept(533 знак., 12.09.2023 12:44)
- Вот рабочий код калибровки RC генератора меги, который использую в
одной из железок, имеющей только часовой кварц. На скорости uart
38400 проблем не встречал. Гyдвин(5127 знак., 12.09.2023 11:36)
- спасибо, глянул бегло, - крутим OSCCAL по результатам сравнения с асинхронным таймером. Интересно, насколько можно вытянуть температурные дрейфы и статистический разброс?? у RC "конские" уходы... И как на минимум 115200 будет? более 1-2% дрейф baudrate недопустим. Можно ещё BRCONST корректировать, но там чуть сложнее будет попадать в нужную точку характеристики, возможно. - Adept(12.09.2023 11:47)
- 1.5 Мбит устраивает? Да еще и ногодрыгом ;) Можно глянуть исходники
-> Гyдвин(1 знак., 12.09.2023 11:14 - 11:16, ссылка)
- Есть у меня реальный девайс на atmega328, предназначенный для перепрошивки беспроводных датчиков в полевых условиях, в котором использовал библиотеку V-Usb. Простой, как гвоздь - usb разъем, LDO 3.3B, "голая" мега328+радиомодуль. Без кварца. Частота RC генератора меги калибруется по сигналу SOF USB. Прекрасно работает. Единственное - не все экземпляры atmega328 при напряжении питания 3.3В могут выставить 12 МГц RC генератора (от штатных 8 МГц). В моем случае пара штук из Гyдвин(20 знак., 12.09.2023 11:14)
- Обычно, у встроенных RC есть подстройка, шагами порядка 0.1 .. 0.25%. Которую можно "крутить" во время работы без побочных эффектов. Я даже пробовал делать ЧМ при помощи RC в PIC24F микрочипа. - Nikolay_Po(12.09.2023 09:35)
- По моему скромному разумению, внутренний RC осциллятор в принципе
не предназначен для постоянной работы и тактирования интерфесов, в
частности UART и CAN. Не надо его использовать для этого и
экономить на спичках. На мой взгляд внутренний rc-генератор только
для сна, стартапа и аварийной работы. Прав ли я? - RxTx(12.09.2023 21:44)