Страница 1 из 1
калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 08:37:35
1dimon1
Прошу объяснить на пальцах, а то что то никак не пойму. как откалибровать внутренний генератор? вводная, процессор atmega8535, выбран внутренний генератор 8Мгц, но он не много не дотягивает до этих 8 МГц, примерно 500.кгц, это по расчетам по полученным измерениям программки генератора при работе с кварцем (все отлично) и внутренним генератором (частота на выходе занижена).
сколько ни читал, никак не могу понять, загружал значения в osccal (могу сейчас ошибаться в написании) чуть ли не первой командой после определения стека, а ее я пишу первой (или надо раньше?). если есть возможность распишите по пунктам что нужно сделать! очень прошу. мне нужно подогнать частоту хотябы в диапазон от 7,9 до 8,1. кварц использовать нерентабельно и смысла нет.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 08:52:34
ARV
вы должны считать содержимое OSCCAL и затем понемножку увеличивать (и записывать обратно, естественно) его до тех пор, пока не получите нужную частоту. в последующем можно будет сразу записывать туда нужное значение.
только есть 2 проблемки:
1. 500 кГц - отклонение больше, чем как бы гарантирует производитель. что-то тут не так
2. все эти калибровки будут иметь смысл для неизменной температуры и питающего напряжения. поменяется что-либо - хана вашим калибровкам, уплывет частота
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 09:46:53
Z_h_e
ARV писал(а):1. 500 кГц - отклонение больше, чем как бы гарантирует производитель. что-то тут не так
Отклонение всего 6%. Ничего удивительного, если ТС не загружает OSCCAL нужным значением, т.к. МК при старте загружает калибровочное значение для генератора 1МГц.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 09:58:07
1dimon1
нет, специально ничего не загружал, то есть по даташиту я понял, что он в любом случае грузит калибровку для 1 МГц, но как загрузить для 8 - не понял. вот это и хочу узнать, где что брать и как грузить (куда я понял).
Добавлено after 2 minutes 15 seconds:
По поводу температуры я знаю, но если брать графики по даташиту, то изменений частоты мне хватает во всем диапазоне температур для нужной мне на выходе точности, если бы сама центральная частота не ухала куда ни будь изначально...
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 10:00:59
Z_h_e
Считываете программатором Calibration. Запоминаете значение для 8МГц.
В программе, в цикле изменяете OSCCAL до нужного значения, прибавляя(вычитая) по единице.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 10:34:34
ARV
Z_h_e писал(а):Отклонение всего 6%
я наизусть даташит не помню, но вроде как гарантируется
лучше 5%? не?
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 11:20:47
Z_h_e
Возможно даже 1%, но для этого должен быть загружен OSCCAL значением для соответствующего генератора, чего МК делает сам только для 1МГц.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 11:37:18
1dimon1
спасибо, попробую.
итак последовательность такая, сначала для конкретного мк считывается калибровочная константа, далее она записывается в самом начале программы в регистр OSCCAL и проверяется результат по выходной частоте генерируемой мк. Для подгона частоты принудительно меняем значение относительно калибровочной в ту или другую сторону (в какую нужно) контролируем результат. если удовлетворяет - полученное значение сохраняем в программе и при старте загружаем его в OSCCAL
Я правильно понял?
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 12:10:34
ARV
Z_h_e писал(а):МК делает сам только для 1МГц
не могли бы вы ткнуть носом в то место даташита, где это написано?
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 12:25:07
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 нужно загрузить число калибровки. Можно записать сразу нужное значение, скорее всего ничего страшного не произойдет, т.к. значения калибровок для каждого генератора похожи. Где-то была инфа в ДШ, что изменение регистра сразу намного может привести к сбою генератора.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 12:34:57
1dimon1
спасибо, ну я расписал подряд два независимых действа. 1 определение значения и второе обычный режим работы.
А так спасибо, будем пробовать.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 10, 2016 13:14:25
ARV
Z_h_e писал(а):Из описания регистра OSCCAL
благодарю
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 17, 2016 17:18:52
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.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 17, 2016 17:46:52
Z_h_e
Нет доступа из программы нИ ко фьюзам, нИ к калибровкам.
Несколько раз делал кой-чего с УАРТом, частота 8МГц отв внутр. RC, а значение калибровки не менял. И ничего, нормуль.
Re: калибровка внутреннего RC генератора.
Добавлено: Чт ноя 17, 2016 19:04:19
Starichok51
а жаль...