реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Калибровка RC генератора AVR
skyv
сообщение May 20 2011, 15:40
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Есть вопрос по калибровке встроенного генератора RC
контроллера Atmel.
В исходных данных загружаемого *.hex файла я задаю:
- тип контроллера (ATtiny13);
- желаемую частоту RC генератора(9600000 Hz);
- точность калибровки (10 - это значит 1%);
- интерфейс программирования (ISP);
- калиброванную частоту (точно не помню что-то около 32кГц);
Калибровку делаю на STK500.
В *.bat файле должен задать:
- тип контроллера (ATtiny13);
- два байта для Fuse bit;
- имя *.hex файла программы калибровки.
Запускаю *.bat и получаю естественно брак калибровки.
Так вот вопрос, а как STK500 понимает, что ей надо на выводе MOSI
моего контроллера сформировать требуемую калиброванную частоту,
которую я задал в *.hex файле?
Спасибо.


Go to the top of the page
 
+Quote Post
Палыч
сообщение May 20 2011, 16:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(skyv @ May 20 2011, 19:40) *
Так вот вопрос, а как STK500 понимает, что ей надо на выводе MOSI моего контроллера сформировать требуемую калиброванную частоту, которую я задал в *.hex файле?
Частота на MOSI генирится одна и та же. Пересчет под требуемую частоту производится в загруженном файле. Если интересно - см. файл main.asm в папке Common скачанного Вами архива.
Go to the top of the page
 
+Quote Post
skyv
сообщение May 20 2011, 17:34
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Цитата(Палыч @ May 20 2011, 20:39) *
Частота на MOSI генирится одна и та же. Пересчет под требуемую частоту производится в загруженном файле. Если интересно - см. файл main.asm в папке Common скачанного Вами архива.


Извиняюсь, но ничего не понял из сказанного. Повторюсь еще раз своим вопросом.
В файле: code\Interface specific\isp_AVRISP_interface.inc имеем:

......
;*****************************************************************
;* Specify Calibration clock frequency
;*****************************************************************
.EQU CALIB_CLOCK_FREQ = 32914 ;Calibration Clock frequency in Hz
.....

Этим определением мы сообщаем программе контроллера, что во время
проведения калибровки на входе MOSI будет именно такая частота.
Используя это значение программа выполнит свой алгоритм.
Это понятно, а кто сделает именно эту частоту на входе MOSI.
На основании чего STK500 формирует именно такую калибр. частоту.
Например я изменил CALIB_CLOCK_FREQ = 35000.
Программа это легко поймет и сконфигурируется под другое значение,
но ведь для проведения калибровки надо еще и частоту на входе MOSI поменять.
Эта частота внешняя и ее значение надо как-то задавать внешнему устройству - STK500.
Где и как это задается? Спасибо.






Go to the top of the page
 
+Quote Post
Палыч
сообщение May 21 2011, 05:16
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(skyv @ May 20 2011, 21:34) *
кто сделает именно эту частоту на входе MOSI.
То устройство, с помощью которого производится калибровка

Цитата(skyv @ May 20 2011, 21:34) *
На основании чего STK500 формирует именно такую калибр. частоту.
У каждого устройства (JTAG, AVRISP, STK500...) - своя частота. Приведенный Вами файл к STK500 отношение не имеет (см. isp_STK500_interface.inc )

Цитата(skyv @ May 20 2011, 21:34) *
Например я изменил CALIB_CLOCK_FREQ = 35000.
Изменить, конечно, можно... Вы, наверное, не обратили внимание что коментарий к CALIB_CLOCK_FREQ занимает две строки
Go to the top of the page
 
+Quote Post
skyv
сообщение May 21 2011, 11:10
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Цитата(Палыч @ May 21 2011, 09:16) *
То устройство, с помощью которого производится калибровка

У каждого устройства (JTAG, AVRISP, STK500...) - своя частота. Приведенный Вами файл к STK500 отношение не имеет (см. isp_STK500_interface.inc )

Изменить, конечно, можно...


Вот так всегда на самом интересном месте.
Go to the top of the page
 
+Quote Post
Палыч
сообщение May 21 2011, 12:47
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Что? Всё равно не понятно? Пробую обьяснить ещё раз...

В AVR можно изменять частоту внутреннего RC-генератора путем помещения в специальный регистр некоего значения. Специалисты Atmel разработали программу для определения этого значения (программу калибровки). Для работы этой программы и подстройки внутреннего генератора требуется подача "образцовой" частоты на определенную ногу МК.
Atmel в свои устройства для программирования/отладки AVR встроила поддержку калибровки, в том числе и подачу "образцовой" частоты. Так STK500 генерит эту частоту при запуске программы stk500.exe с ключиком "-Y". Так уж получилось, что "образцовая" частота для разных устройств несколько отличается. Номинальное значение "образцовой" частоты записаны в соответствующих inc-файлах; для каждого устройства - свой файл. Это значение и есть CALIB_CLOCK_FREQ (для STK500 равно 32623).
Однако, генератор, использующий кварц, на котором написано, например, 7.3728MHz не генерит эту частоту с точностью до 1Гц. Зависит частота от точности изготовления кварца, температуры, напряжения питания и др. Ваш конкретный экземпляр STK500 в конкретных условиях (температуры, напряжения,...) может генерить "образцовую" частоту не 32623Гц (получается делением тех самых 7.3728МГц), а, например, 32630Гц. Если Вы считаете, что отклонение "образцовой" частоты от номинала слишком большое, что Ваш МК будет в дальнейшем работать в таких же условиях, что ..., что... (условия придумайте сами), то Вы можете приличным прибором замерить фактическое значение "образцовой" частоты и изменить значение CALIB_CLOCK_FREQ. Вот стоить ли это делать - большой вопрос, поскольку стабильность внутреннего RC-генератора оставляет желать лучшего, а там где стабильность важна применяют подстройку RC-генератора "на ходу" (run time), либо не используют внутренний генератор, а применяют кварц, внешний генератор...
Go to the top of the page
 
+Quote Post
skyv
сообщение May 21 2011, 13:10
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Цитата(Палыч @ May 21 2011, 16:47) *
... STK500 генерит эту частоту при запуске программы stk500.exe с ключиком "-Y". ...


Спасибо за подробный ответ и за Ваше терпение.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016