Обсуждаем контроллеры компании Atmel.
Ответить

Re: Калибровка встроенного RC-генератора

Пт окт 15, 2021 19:45:33

Собственно говоря - а зачем понижать частоту генератора в таймер-приложении?
Ставим на 9,6 и далее простыми средствами доводим до требуемого значения.
Ёжли уж очень хочется - ставим кварц...
:dont_know:

Re: Калибровка встроенного RC-генератора

Пт окт 15, 2021 19:52:27

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

Re: Калибровка встроенного RC-генератора

Пт окт 15, 2021 23:40:32

Так озвучьте собственно "задуманную" задачу для той тиньки - что имеем на входе, что должно быть на выходе.
Не по исходнику ж разбираться с замыслами.
Чудес то не бывает.
В принципе можно и перепроверить тогда будет.
8)

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 00:01:50

Не по исходнику ж разбираться с замыслами.

Спасибо.
По вашему высказыванию
Для обеих режимов имеется заводская калибровочная константа.
Разница только в том, что для 9,6 загрузка автоматическая, а для 4,8 надо ручками ее вытряхнуть из ПЗУ и вставить в OSCCAL...

сразу видно, что человек "не в теме".

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 06:55:55

Карбофос писал(а):
Для обеих режимов имеется заводская калибровочная константа.
Разница только в том, что для 9,6 загрузка автоматическая, а для 4,8 надо ручками ее вытряхнуть из ПЗУ и вставить в OSCCAL...

сразу видно, что человек "не в теме".

BOB51 правильно заметил.
There is a separate calibration byte for the internal oscillator in 4.8 MHz mode of operation but
this data is not loaded automatically. The hardware always loads the 9.6 MHz calibration data
during reset. To use separate calibration data for the oscillator in 4.8 MHz mode the OSCCAL
register must be updated by firmware. The calibration data for 4.8 MHz operation is located in
the high byte at address 0x01 of the signature area.

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 17:30:16

А даташит не пробовали читать?

6.2.2 Calibrated Internal 4.8/9.6 MHz Oscillator
During reset, hardware loads the calibration data into the OSCCAL register and thereby automatically calibrates the oscillator. There are separate calibration bytes for 4.8 and 9.6 MHz operation but only one is automatically loaded during reset (see section “Calibration Bytes” on page 105). This is because the only difference between 4.8 MHz and 9.6 MHz mode is an internal clock divider.

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 18:11:20

Так там так и говорится "только один из них загружается автоматически".
Далее смотрим страницу 105 (куда ссылается Ваша цитата)
"17.3 Calibration Bytes
The signature area of the ATtiny13A contains two bytes of calibration data for the internal oscil-
lator. The calibration data in the high byte of address 0x00 is for use with the oscillator set to 9.6
MHz operation. During reset, this byte is automatically written into the OSCCAL register to
ensure correct frequency of the oscillator.
There is a separate calibration byte for the internal oscillator in 4.8 MHz mode of operation but
this data is not loaded automatically. The hardware always loads the 9.6 MHz calibration data
during reset. To use separate calibration data for the oscillator in 4.8 MHz mode the OSCCAL
register must be updated by firmware. The calibration data for 4.8 MHz operation is located in
the high byte at address 0x01 of the signature area.
..."
(взято из 8126F–AVR–05/12 для аттини13а но судя по нумерации страниц аналогично имеющемуся у Вас документу и более раннему 8126Е-AVR-07/10)

А уже из той частоты можно и пониже сделать используя CLKPR (по умолчанию он настроен на деление частоты генератора на 8 ).
8)

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 19:01:18

А даташит не пробовали читать?
Возвращаю.

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 20:14:34

По результатам натурных экспериментов признаю, что в разных режимах 9.6/4.8 должны использоваться разные калибровочные константы.
Что интересно, в моем экземпляре ATtiny13a в режиме 4.8 МГц, при загрузке в OSCCAL заводской калибровки для этого режима, тактовая частота (~4.28 МГц) выходит за границу допуска в 10% для нее. Но, это к делу уже не относится.

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 20:34:22

Так вопрос - то открытым остался.
8)
Я предлагал выложить схему устройства на тиньке с обвязкой и описанием "хотелок".
Далее проводим варианты проектов, решающих данные задачи каждый на своей базе (кто под Си, кто под ассемблером, кто в рамках ардуинки), которые подтверждаем проверкой на действующем макете согласно единой ранее оговоренной схеме и описания выполняемых устройством задач.
Ну и сравниваем результаты - чего у кого получилось, выкладывая открытые исходники проектов.
8)

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 20:57:40

Проблема была в недостаточно точно откалиброванном встроенном RC-генераторе.
Стандартное решение этой проблемы требует наличие программаторов типа AVRISP mkII, JTAGICE mkII, JTAGICE3, or Atmel-ICE programming tools, ни одного из которых у меня нет, и в моих планах их приобретение отсутствует.
Для решения этой проблемы, в меру своей лени, знаний и испорченности, я предложил небольшой алгоритм (в 1-м посте), который по эталонной частоте 32 кГц, подаваемой с модуля DS3231, расчитает оптимальное значение для регистра OSCCAL микроконтроллера.
С тем, что-бы любой желающий мог им воспользоваться.
Т.е. я не просил помощи в решении какой-либо проблемы.
Спасибо.

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 21:18:27

Ясненько...
:beer:
Хотя... для реальной калибровки нужны эталонные приборы (К примеру ВЧ генератор, эталонный источник интервалов с блоком управляемых ключей и счетчик разницы или чего понавороченнее...) - посему заметно чаще используются или готовые константы изготовителя или кварцевые резонаторы.
Для прикладных задач обычно вполне достаточно. Просто за все время я столь сильного отклонения в режиме таймеров в своих поделках не встречал - реально заметное (секундное) отклонение разве что через несколько часов начинает появляться, а в пределах 1-2 часов обычно при сравнении с комповыми тикалками / механическими секундомерами практически незаметно...
8)

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 21:25:40

Может и флуд, канешна... Но не могу взять в толк, зачем все эти потуги? Если речь о времязадающем генераторе МК, то что мешает повесить копеечный кварц? Какой смысл вытягивать бортовой RC в область стабильности часов реального времени? Жалко 10 рублей на кварц? Или есть непреодолимое желание использовать 8 пиновый МК?

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 21:38:36

Здесь только внешний генератор для этого лепить, и пожертвовать светодиодиком тик-так.
А смысл? Все работает, пинов хватает, памяти еще и осталось свободной, занято 842 байт из 1к.
Эта тинька с историей.
Когда-то давно она стояла в ИК-приемнике с питанием от сети через конденсатор и стабилитрон, и с пульта через реле включала-отключала LED драйвер для светодиодной ленты.
В какой-то момент все пошло не так, дорожки силовые испарились, но сама тинька выжила.
:))
Последний раз редактировалось Карбофос Сб окт 16, 2021 21:45:11, всего редактировалось 1 раз.

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 21:43:12

ааа, то есть семейная реликвия.... тадыой.
И у многих такой реликтовый интерес?

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 21:44:17

А чё она валяется просто-так? :))

Re: Калибровка встроенного RC-генератора

Сб окт 16, 2021 21:45:26

Ну понятно... )))

Re: Калибровка встроенного RC-генератора

Вс окт 17, 2021 00:02:54

BOB51 писал(а):реально заметное (секундное) отклонение разве что через несколько часов начинает появляться, а в пределах 1-2 часов обычно при сравнении с комповыми тикалками / механическими секундомерами практически незаметно...
заметно, да еще как ...
любопытства ради я сегодня проверил одну АТмега8 (встроенный RC-генератор на 1 МГц) на частотомере - получил отклонение в минус 1,2%. а это примерно 43 секунды за 1 час.
так что, не надо ля-ля про 1 секунду за несколько часов.
и ранее для своего таймера я подстраивал встроенный RC-генератор на 1 МГц - тоже примерно такая же была ошибка.

Re: Калибровка встроенного RC-генератора

Вс окт 17, 2021 02:53:12

КРАМ писал(а):Если речь о времязадающем генераторе МК, то что мешает повесить копеечный кварц?

attiny13 это целый so8 :) а скажем attiny10 это sot23-6 и кварцевый генератор или кварц с генератором увеличит футпринт раза в 4 (а может и в 10 если захочется дешевый кварц hs49s). + отожрет 1 из 4 gpio ног. 25% ног, Карл!)
так что возня с RC и его калибровками - невсегда блажь ;)

Re: Калибровка встроенного RC-генератора

Вс окт 17, 2021 06:31:00

так что возня с RC и его калибровками - невсегда блажь ;)

Всегда. Вы невнимательно прочли то, что я написал.
Если техническое решение требует ЧАСОВОЙ ТОЧНОСТИ, то экономия ДВУХ НОГ - всегда блажь и издевательство над здравым смыслом. Нет никакого смысла в решении требующем пожертвовать кварцем или внешним кварцевым генератором при реализации часов реального времени или временных интервалов сопоставимой точности. Возня с калибровкой RC генератора МК ПРИ ТАКИХ ТРЕБОВАНИЯХ - пустая трата времени.
Поэтому не стоит мне рассказывать про обстоятельства, при которых ног в выбранном МК может не хватить. Я это и без вас знаю. Просто не нужно выбирать такой МК для данной задачи.
Про футпринт повеселили. Кому нужна компактность, всегда найдут лишние 20 рублей на 16 МГц кварц размером меньше, чем футпринт sot23-6, выберут корпус МК (VQFN) размером 3*3 мм с требуемым числом ног (в данном случае 20) и возьмут конденсаторы к кварцу типоразмера 0102, обеспечив двухсторонний монтаж.
Последний раз редактировалось КРАМ Вс окт 17, 2021 09:20:44, всего редактировалось 1 раз.
Ответить