-
- Спасибо Fulcrum Point. Коллеги, покидайте статей которые вас
поразили по внутренним генераторам микроконтроллеров. - RxTx(11.09.2023 20:33)
- мне вот реально интересно как оптимальным способом сделать "онлайн"
подстройку скорости UART, по часовому кварцу, если МК на внутреннем
RC Adept(640 знак., 12.09.2023 04:27)
- По моему скромному разумению, внутренний 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)
- мне вот реально интересно как оптимальным способом сделать "онлайн"
подстройку скорости UART, по часовому кварцу, если МК на внутреннем
RC Adept(640 знак., 12.09.2023 04:27)
- Хренасе, пост 13-летней давности всплыл и подхватился :) - Гyдвин(11.09.2023 19:32)
- а вот не надо в темном лесу ворошить палкой то.... что не надо
ворошить)) - Alex68(11.09.2023 20:55)
- "древнее зло проснулось" :)) - Adept(12.09.2023 04:16)
- а вот не надо в темном лесу ворошить палкой то.... что не надо
ворошить)) - Alex68(11.09.2023 20:55)
- а зачем, если "The main clock source is selectable from software and can be safely changed during normal operation"? Ставите часовой кварц для точных таймингов и правильного Idle-редима (жалко аппаратного ФАПЧа по нему нет :( а для остального нутряной RC. Прескалером можно загонять в любые рамки энергосбережения и производительности. - Adept(11.09.2023 13:55)
- Может вы "не тем путем идете, товагищи"? ;) Для чего кварц нужен в девайсе? - Гудвин(01.09.2010 17:19)
- Не всегда удаётся склонить покупателя к тому решению, которое мне представляется правильным. Топик-пост - это один из аргументов и одно из решений. - Точка опоры(01.09.2010 17:46 - 18:05)
- Ну например чтобы пробуждать девайс в определенное время суток/через определенные промежутки времени - LightElf(01.09.2010 17:23)
- ИМХО самая слабость в AVR - отсутствие PLL/FLL. Мегагерцовый кварц один фиг будет кушать, а часовой без умножения - слишком медленно. - LightElf(01.09.2010 17:13)
- Прерывания по часовому. А работать по нутряному РЦ и в глубокий повердовн, по завершению. Будет топовая экономичность и максимальное быстродействие. - mse(01.09.2010 17:22)
- Ну это там, где асинхронный таймер есть (то есть некоторые меги). Тиньки отпадают. - LightElf(01.09.2010 17:24)
- ХЗ, как щас, но М48, в своё время, стоила столько, что смысла в тиньках не было вообще. Ну, разве что, самых дохлых, типа 11. - mse(02.09.2010 11:26)
- Сейчас не так красиво с ценами. И все равно - у MSP430 и MCS08 как-то кошернее придумано. - LightElf(03.09.2010 12:42)
- У Хмеги понравилось. Но это не бакс цены, конечно. - mse(03.09.2010 13:26)
- xmeg-и некрочип намерен выкинуть с рынка, по моему, чтоб они не
составляли внутреннюю конкуренцию (там функционал запредельно
сложный для простого МК, и недостаточно быстрое ядро и мало памяти
для более серьёзных, чем у обычных МЕГ применений. ДС-пики по-моему
функционально покрывают почти все ниши иксмеги. Касательно же
систем тактированния, Adept(1250 знак., 11.09.2023 13:23 - 14:12)
- Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf RxTx(14 знак., 11.09.2023 19:52, картинка)
- Дык, всплыло с 2010 года. С другой стороны, нахер щас загоняться с
АВР, вообще, если есть те-жэ CH32V00*/20*? Тут АВР сосут и по цэне,
и по производительности, и по ресурсам. - mse homjak(11.09.2023 13:27)
- Вы запамятовали, что у коллеги весь софт на авроасме. Миллионы
человекочасов инвестированы. Этот чемодан выбросить никак нельзя! - SciFi(11.09.2023 13:31)
- Дык, "
оказанная услуганаписанный софт ничего не стоит". У меня тожэ куча всякого на авроасме, но сделал усилие, вырос над собой и появился софт на авроЦ, а теперь, появляецца на РИСК-5-Ц. - mse homjak(11.09.2023 14:30)- пока, по моим задачам я на
своём велосипедесвоих разработках, быстрее и качественнее еду, чем с костылями на Сях (пробовал, интереса для, озадачить знакомого инженегра, проработать один проектик, после недели мучений, и кучи вопросов типа "здесь так не получится, давай сделаем по-другому", а "по другому" сразу влекло за собой ещё кучку проблем, плюнул и бросил эту затею :)) Вот как мои наработки станут тормозящими "костылями", - тогда и буду смотреть на Adept(199 знак., 11.09.2023 16:13)- Ну, собсно, "мучения и вопросы" к йэзыгу никакого отношэния не
имеют. Меня в Ц, как ни странно, больше всего бесит имана
математика. Ну, типа, long*long=long...С%уяли, спрашываецо? - mse homjak(11.09.2023 17:07)
- И где в стандарте сказано что long * long = long а не long long? - RxTx(11.09.2023 19:54)
- Usual arithmetic conversions SciFi(1 знак., 11.09.2023 19:59, ссылка)
- Да это чето не то. Я к тому что никакой mandatory нет. Юзайте что
хотите на здоровье. - RxTx(11.09.2023 20:31)
- Приводится к наибольшему типу из двух операндов, и результат будет
иметь тот же тип. Поэтому нужно приводить хотя бы один из операндов
к (long long). - SciFi(11.09.2023 20:37)
- Ну. Получить long long не проблема. - RxTx(11.09.2023 20:53)
- Брр, из этого выходит, что int32+uint32 приведется к unt32, а я
полагал, что к int32. А если отрицательное знаковое? - Andreas(11.09.2023 20:42)
- Вот такая фигня, да. Но правило простое, нужно всего лишь
запомнить. - SciFi(11.09.2023 21:08)
- лучше всего явно приводить типы ) - 0men(11.09.2023 21:28)
- У дочки на первой неделе первого года обучения задачка по C# Andreas(124 знак., 11.09.2023 21:26)
- Вот такая фигня, да. Но правило простое, нужно всего лишь
запомнить. - SciFi(11.09.2023 21:08)
- Приводится к наибольшему типу из двух операндов, и результат будет
иметь тот же тип. Поэтому нужно приводить хотя бы один из операндов
к (long long). - SciFi(11.09.2023 20:37)
- Да это чето не то. Я к тому что никакой mandatory нет. Юзайте что
хотите на здоровье. - RxTx(11.09.2023 20:31)
- Usual arithmetic conversions SciFi(1 знак., 11.09.2023 19:59, ссылка)
- а есть альтернатива? - POV(11.09.2023 17:09)
- А патамушта учебник не читаете. Так вам и надо, троешники :-) - SciFi(11.09.2023 17:09)
- long, это просто потому, что long long было лень писать. И ваще, вы
своим менторством добьётесь того, что я перелезу на С++ и тогда вы
все тут от такими слезами наплачетесь. - mse homjak(11.09.2023 18:47)
- это уже будет "назло маме уши отморожу" :-) - SciFi(11.09.2023 18:48)
- У меня есть
заложникиС++, щас я будуубивать их по одномувыкладывать куски своих программ и спрашивать, чо они не работают. - mse homjak(11.09.2023 18:52)- Битва, скоро грянет битва! :) - Cкpипaч(11.09.2023 18:53)
- У меня есть
- это уже будет "назло маме уши отморожу" :-) - SciFi(11.09.2023 18:48)
- long, это просто потому, что long long было лень писать. И ваще, вы
своим менторством добьётесь того, что я перелезу на С++ и тогда вы
все тут от такими слезами наплачетесь. - mse homjak(11.09.2023 18:47)
- И где в стандарте сказано что long * long = long а не long long? - RxTx(11.09.2023 19:54)
- Ну, собсно, "мучения и вопросы" к йэзыгу никакого отношэния не
имеют. Меня в Ц, как ни странно, больше всего бесит имана
математика. Ну, типа, long*long=long...С%уяли, спрашываецо? - mse homjak(11.09.2023 17:07)
- пока, по моим задачам я на
- у меня ещё "чемодан" контроллеров закуплен, годика на 3-4 вперёд
:)) - Adept(11.09.2023 13:49)
- у меня вот тоже в закромах много не только АВР, но и моторол, зайлогов и кипарисов, и ко всему есть отладчики. на мою жизнь - хватит. - Alex68(11.09.2023 21:00)
- К тому времени можно будет сделать эмулятор авра на современном
32-разрядном проце, прорвёмся :-) - SciFi(11.09.2023 13:51)
- ...а на 128-ми разрядном сразу восьми! :) - Cкpипaч(11.09.2023 14:05)
- Дык, "
- Вы запамятовали, что у коллеги весь софт на авроасме. Миллионы
человекочасов инвестированы. Этот чемодан выбросить никак нельзя! - SciFi(11.09.2023 13:31)
- xmeg-и некрочип намерен выкинуть с рынка, по моему, чтоб они не
составляли внутреннюю конкуренцию (там функционал запредельно
сложный для простого МК, и недостаточно быстрое ядро и мало памяти
для более серьёзных, чем у обычных МЕГ применений. ДС-пики по-моему
функционально покрывают почти все ниши иксмеги. Касательно же
систем тактированния, Adept(1250 знак., 11.09.2023 13:23 - 14:12)
- У Хмеги понравилось. Но это не бакс цены, конечно. - mse(03.09.2010 13:26)
- Сейчас не так красиво с ценами. И все равно - у MSP430 и MCS08 как-то кошернее придумано. - LightElf(03.09.2010 12:42)
- Дла такого финта и WDT может сгодится, если пол-лаптя прокатит. - Точка опоры(01.09.2010 17:43)
- ХЗ, как щас, но М48, в своё время, стоила столько, что смысла в тиньках не было вообще. Ну, разве что, самых дохлых, типа 11. - mse(02.09.2010 11:26)
- Ну это там, где асинхронный таймер есть (то есть некоторые меги). Тиньки отпадают. - LightElf(01.09.2010 17:24)
- Прерывания по часовому. А работать по нутряному РЦ и в глубокий повердовн, по завершению. Будет топовая экономичность и максимальное быстродействие. - mse(01.09.2010 17:22)
- Спасибо Fulcrum Point. Коллеги, покидайте статей которые вас
поразили по внутренним генераторам микроконтроллеров. - RxTx(11.09.2023 20:33)