калибровка внутреннего RC генератора.

Обсуждаем контроллеры компании Atmel.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 182
Зарегистрирован: Чт ноя 06, 2014 15:37:50
Откуда: Кубинка, Московская обл.

Сообщение 1dimon1 »

Прошу объяснить на пальцах, а то что то никак не пойму. как откалибровать внутренний генератор? вводная, процессор atmega8535, выбран внутренний генератор 8Мгц, но он не много не дотягивает до этих 8 МГц, примерно 500.кгц, это по расчетам по полученным измерениям программки генератора при работе с кварцем (все отлично) и внутренним генератором (частота на выходе занижена).
сколько ни читал, никак не могу понять, загружал значения в osccal (могу сейчас ошибаться в написании) чуть ли не первой командой после определения стека, а ее я пишу первой (или надо раньше?). если есть возможность распишите по пунктам что нужно сделать! очень прошу. мне нужно подогнать частоту хотябы в диапазон от 7,9 до 8,1. кварц использовать нерентабельно и смысла нет.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

вы должны считать содержимое OSCCAL и затем понемножку увеличивать (и записывать обратно, естественно) его до тех пор, пока не получите нужную частоту. в последующем можно будет сразу записывать туда нужное значение.

только есть 2 проблемки:
1. 500 кГц - отклонение больше, чем как бы гарантирует производитель. что-то тут не так
2. все эти калибровки будут иметь смысл для неизменной температуры и питающего напряжения. поменяется что-либо - хана вашим калибровкам, уплывет частота
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

ARV писал(а):1. 500 кГц - отклонение больше, чем как бы гарантирует производитель. что-то тут не так
Отклонение всего 6%. Ничего удивительного, если ТС не загружает OSCCAL нужным значением, т.к. МК при старте загружает калибровочное значение для генератора 1МГц.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Нашел транзистор. Понюхал.
Сообщения: 182
Зарегистрирован: Чт ноя 06, 2014 15:37:50
Откуда: Кубинка, Московская обл.

Сообщение 1dimon1 »

нет, специально ничего не загружал, то есть по даташиту я понял, что он в любом случае грузит калибровку для 1 МГц, но как загрузить для 8 - не понял. вот это и хочу узнать, где что брать и как грузить (куда я понял).

Добавлено after 2 minutes 15 seconds:
По поводу температуры я знаю, но если брать графики по даташиту, то изменений частоты мне хватает во всем диапазоне температур для нужной мне на выходе точности, если бы сама центральная частота не ухала куда ни будь изначально...
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Считываете программатором Calibration. Запоминаете значение для 8МГц.
В программе, в цикле изменяете OSCCAL до нужного значения, прибавляя(вычитая) по единице.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):Отклонение всего 6%
я наизусть даташит не помню, но вроде как гарантируется лучше 5%? не?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Возможно даже 1%, но для этого должен быть загружен OSCCAL значением для соответствующего генератора, чего МК делает сам только для 1МГц.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Нашел транзистор. Понюхал.
Сообщения: 182
Зарегистрирован: Чт ноя 06, 2014 15:37:50
Откуда: Кубинка, Московская обл.

Сообщение 1dimon1 »

спасибо, попробую.
итак последовательность такая, сначала для конкретного мк считывается калибровочная константа, далее она записывается в самом начале программы в регистр OSCCAL и проверяется результат по выходной частоте генерируемой мк. Для подгона частоты принудительно меняем значение относительно калибровочной в ту или другую сторону (в какую нужно) контролируем результат. если удовлетворяет - полученное значение сохраняем в программе и при старте загружаем его в OSCCAL
Я правильно понял?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):МК делает сам только для 1МГц
не могли бы вы ткнуть носом в то место даташита, где это написано?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Из описания регистра OSCCAL

Код: Выделить всё

Writing the calibration byte to this address will trim the Internal Oscillator to remove process
variations from the Oscillator frequency. During Reset, the 1 MHz calibration value
which is located in the signature row high byte (address 0x00) is automatically loaded
into the OSCCAL Register. If the internal RC is used at other frequencies, the calibration
values must be loaded manually. This can be done by first reading the signature row by
a programmer, and then store the calibration values in the Flash or EEPROM. Then the
value can be read by software and loaded into the OSCCAL Register. 
Добавлено after 4 minutes 26 seconds:
1dimon1 писал(а):Я правильно понял?
Просто в OSCCAL нужно загрузить число калибровки. Можно записать сразу нужное значение, скорее всего ничего страшного не произойдет, т.к. значения калибровок для каждого генератора похожи. Где-то была инфа в ДШ, что изменение регистра сразу намного может привести к сбою генератора.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Нашел транзистор. Понюхал.
Сообщения: 182
Зарегистрирован: Чт ноя 06, 2014 15:37:50
Откуда: Кубинка, Московская обл.

Сообщение 1dimon1 »

спасибо, ну я расписал подряд два независимых действа. 1 определение значения и второе обычный режим работы.
А так спасибо, будем пробовать.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):Из описания регистра OSCCAL
благодарю
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 19077
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

меня тоже весьма интересует калибровка на частотах выше 1 МГц.
повторю кусочек текста из даташита:
"During Reset, the 1 MHz calibration value which is located in the signature row High byte (address 0x00) is automatically loaded into the OSCCAL Register."
да, программатор считывает и показывает все 4 калибровочных байта.
но хотелось бы "автоматизировать" процесс калибровки.
если программатор умеет читать эти байты, то почему бы нам не прочитать нужный байт самим в своей программе?
вот только не понятно, где находится эта "строка сигнатуры" и как к ней обратиться? ясно, что это не просто адрес 0x00 в адресном пространстве, так как этот адрес принадлежит регистру R0.
если существует возможность самим прочитать калибровочный байт, например, для 8 МГц, то желательно не заниматься подбором его значения, а сразе прочитать записать в регистр OSCCAL.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Нет доступа из программы нИ ко фьюзам, нИ к калибровкам.

Несколько раз делал кой-чего с УАРТом, частота 8МГц отв внутр. RC, а значение калибровки не менял. И ничего, нормуль.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Модератор
Аватара пользователя
Сообщения: 19077
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

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

Вернуться в «AVR»