Например TDA7294

Форум РадиоКот • Просмотр темы - Калибровка встроенного RC-генератора
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 15:48:37

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 141 ]  1, , , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Калибровка встроенного RC-генератора
СообщениеДобавлено: Чт окт 14, 2021 23:59:56 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 1
Здравствуйте!
Понадобилось мне откалибровать встроенный RC-генератор ATtiny13a.
Просмотрев AVR053, и исходники из iNET, пошел своим путем.
Как это работает: запускаем таймер 0 на частоте контроллера без предделителя, и считаем кол-во его отсчетов за определенное кол-во периодов эталонной частоты. Делаем это с разными перебираемыми значениями OSCCAL. Выбираем то значение OSCCAL, при котором разница между этими измеренными и теоретически расчитанным будет минимальной.
По окончании работы алгоритма, лучшее значение OSCCAL записывается в 0 ячейку EEPROM:
eeprom_write_byte((uint8_t*) 0, best_osc);
Далее это значение можно прочитать через
- make readeeprom
или в начало своего кода вставить
uint8_t new_osc = eeprom_read_byte((uint8_t*)0);
if(new_osc <= 0x7F)
OSCCAL = new_osc;
Естественно, FUSE EESAVE должен быть запрограммирован.
Так-же, для контроля, по окончании работы алгоритма, на выходе OCR0A генерируется меандр с частотой F_CPU/2.
За эталонную частоту принял выход 32 кГц китайского модуля DS3231, т.к. он у меня есть, и для его работы достаточно лишь подать питание на этот модуль.
В исходном тексте это выглядит так:
- тактовая частота контроллера, как и тип контроллера, определены в makefile
MCU = attiny13a
F_CPU = 9600000
- эталонная частота
#define CCLOCK 32768
- куда подавать эталонную частоту
#define FREQ_DDR DDRB
#define FREQ_PORT PORTB
#define FREQ_PIN PINB
#define FREQ_BIT 2
- кол-во периодов эталонной частоты для подсчета
#define CCYCLES 40
- теоретически расчитанное кол-во тиков (оно не должно превышать 65535, т.к. используетя 2 байта)
#define CTARGET ((F_CPU*CCYCLES+CCLOCK/2)/CCLOCK)
- искать OSCCAL будем в окрестностях его значений 1%(~15 сек):
#define CDEVIATION ((CTARGET + 50) / 100) // 1%
- если в 1% нигде не попали, тогда программа уйдет в бесконечный цикл
while(new_osc > MAX_OSCCAL); // error
- тогда можно увеличить погрешность поиска
- при удачном исходе, на пин OCR0A выдается меандр F_CPU/2 для контроля.
Функция int16_t Deviation(uint8_t osccal) возвращает разницу между измеренным и теор значениями отсчетов. После записи каждого нового значения OSCCAL делается пауза 100 мсек для устаканивания генератора.
Функция uint8_t BestDevNearest(uint8_t nearosc) выбирает наилучшее значение из ближайших -+7 значений OSCCAL.

Не знаю, кому это может понадобиться.
Собирается через make в avr-gcc.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 08:19:10 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
Karbofos, всё хорошо, только в каком диапазоне температур будет работать тинька? Если в достаточно широком, то частота уйдёт. Может прицепить на тиньку терморезистор, мерять температуру и корректировать OSCCAL? Ну, если уж надо вогнать в 1%. Кода добавится хрен да ни хрена.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 09:56:34 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
При комнатной температуре далеко не убежит.
Зато, встроенный генератор можно перенастроить на какую-то другую частоту, отличной от предлагаемых по-умолчанию.
Например, F_CPU = 12000000
В т.ч. с использованием встроенных делителей на 2 и на 8.
Хотелось как-то автоматизировать этот процесссс.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 11:21:21 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18093
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Карбофос, ты посмотри графики в даташите от температуры.
при тактовой 9,6 МГц 20 градусов дают изменение примерно 0,125 МГц.
это примерно 0,0625 МГЦ на 1 градус. что составит примерно 0,65% на 1 градус.
а температура в комнате может изменятся гораздо больше (лето/зима), чем на 1 градус.
так что, тебе калибровку придется делать чуть ли не ежедневно перед каждым использованием твоего устройства.

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


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 11:37:16 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
Погрел феном на 50гр.С тиньку, контрольная частота убежала с 4.8 до 4.88..4.89 МГц.
Ну и ладно.
Все равно, это лучше, чем с заводской предустановкой, вместо 9.6 получалось 9.0..9.1 МГц тактовой.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 12:25:53 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Дыкс....
тинька 13я по умолчанию имеет два режима работы RC генератора - 9,6 и 4,8 МГц
Для обеих режимов имеется заводская калибровочная константа.
Разница только в том, что для 9,6 загрузка автоматическая, а для 4,8 надо ручками ее вытряхнуть из ПЗУ и вставить в OSCCAL...
Чего еще добавлять - то для "бытовых приложений"?
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 12:27:56 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
НА 50С - это до 70С?
Ну, если устраивает - ура :)

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 12:43:04 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18093
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
это что, с автоматической загрузкой константы для 9,6 реально получалось 9,0-9,1?
странно и непонятно ...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 12:48:25 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
Да, это так.
Таймер отсчитывал вместо 15 минут ровно 16 минут.
Сейчас он-же отсчитывает 15 минут 2 секунды.
Ради этого все и затевалось. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 13:10:34 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
так тинька с алишечки. У меня тиньки тикают на RC как швейцарские часы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 14:10:07 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
...
Таймер отсчитывал вместо 15 минут ровно 16 минут.
Сейчас он-же отсчитывает 15 минут 2 секунды.
Ради этого все и затевалось. :))

Есть большая вероятность некорректности составления алгоритма программы.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 14:23:40 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
Вряд-ли.
Я так не думаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 15:01:27 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А что это за мелкосхема "SMA7029"???
Явно ж не аттини13а...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 15:36:50 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
Драйвер шагового двигателя. От лазерного принтера платка с драйвером и сам шаговик остались.
Для регенерирования ионообменной смолы от водного фильтра мешалку придумал.
На 3-х литровой банке на крышке моторчик, 15 сек перемешивает, 15 мин отдыхает!
И даже кнопочку специальную придумал, которая запускает процесс для визуального созерцания!
И светодиодик мигает, типа все ок.
:)) :)) :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 16:29:48 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
Может не трогать OSCCAL. Типа
-программа выдачи на OC0A F_CPU/2 и её измерение внешним измерителем
-забить полученную частоту в основную программу отсчета интервалов.


Последний раз редактировалось akl Сб окт 16, 2021 07:01:58, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 16:35:12 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18093
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Карбофос, после окончания цикла
while(--pulses);
ты лишний раз увеличиваешь счетчик переполнений:
++ovf_count;
из-за этого у тебя и получается частота ниже, чем она и есть.
откуда и получилось, что с автоматической загрузкой константы для 9,6 реально получалось 9,0-9,1

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 16:40:46 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
Нет, только по условию:
Код:
  // Check for overflow
  if(bit_is_set(TIFR0, _BV(TOV0))) {
    TIFR0 |= _BV(TOV0);
    ++ovf_count;
  }


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 16:47:02 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18093
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
да на хрен это твое условие нужно. оно только тебе вред приносит.
именно из-за этого условия ты насчитываешь лишнее число импульсов - еще лишних 256 импульсов прибавляешь в таймер0.
неужели ты думаешь константа для 9,6 МГц неправильно записана в МК? сильно ошибаешься ...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 16:50:13 
Опытный кот
Аватар пользователя

Карма: -2
Рейтинг сообщений: -23
Зарегистрирован: Сб окт 22, 2016 17:33:32
Сообщений: 760
Откуда: кг
Рейтинг сообщения: 0
Этот алгоритм взят из AVR053, страница 10.
Контроль настроенного осциллятора через OCR0A F_CPU/2 - там ровно 4.8 МГц после настройки.
Как, и 4.5 МГц с заводской настройкой.

И, в даташите ATtiny13a Factory Calibration имеет допуск +-10%, так-что заводская предустановка в него укладывается.
К тому-же, она при напряжении 3 вольта.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Калибровка встроенного RC-генератора
СообщениеДобавлено: Пт окт 15, 2021 18:04:16 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18093
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
да, я был не прав.
в самом деле, если при остановке таймера0 он достиг переполнения, то нужно увеличить счетчик.

Добавлено after 14 minutes 41 second:
если для ATtiny13A это +/-10%, то твои 9,0-9,1 вполне попадают в этот диапазон.
так что зря на тебя наезжали, что большая ошибка к номиналу.

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 141 ]  1, , , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y