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

 
 
 
Reply to this topicStart new topic
> Измерение рабочей частоты микроконтроллера, Как увидеть осциллографом или измерить тактовую частоту микроконтрол
Diaskop
сообщение Feb 25 2008, 14:59
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 15-11-07
Из: Винница, Украина
Пользователь №: 32 361



ATtiny13 при программировании установлены "Divide clock by 8", "Clock option CKSEL=10, SUT=10", и CLKPS0=1,CLKPS2=1. Т.е. частота 9,6 мГц : на 8 =1,2мГц и 1,2мГц : на 36=37,5 кГц. Как мне увидеть осциллографом или измерить тактовую частоту микроконтроллера? При программировании в режиме ШИМ (PWM - CTC) и установке OCR0A=0x0, т.е. срабатывание без задержки, выходная частота =~7 кГц.
Спасибо

Сообщение отредактировал Diaskop - Feb 25 2008, 15:02
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 25 2008, 16:15
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Diaskop @ Feb 25 2008, 17:59) *
Как мне увидеть осциллографом или измерить тактовую частоту микроконтроллера?

Посмотреть период или длительность импульса программно-реализованного генератора импульсов. Т.е. включить бит в portx, выключить его, перейти. Итого период шесть циклов (sbi, cbi, rjmp).
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Feb 25 2008, 17:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Diaskop @ Feb 25 2008, 18:59) *
Как мне увидеть осциллографом или измерить тактовую частоту микроконтроллера?

На выводах XTAL1 XTAL2 осциллографом с делителем или через емкость 10-20 пФ


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 25 2008, 17:17
Сообщение #4


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Diaskop @ Feb 25 2008, 14:59) *
ATtiny13 при программировании установлены "Divide clock by 8", "Clock option CKSEL=10, SUT=10", и CLKPS0=1,CLKPS2=1. Т.е. частота 9,6 мГц : на 8 =1,2мГц и 1,2мГц : на 36=37,5 кГц. Как мне увидеть осциллографом или измерить тактовую частоту микроконтроллера? При программировании в режиме ШИМ (PWM - CTC) и установке OCR0A=0x0, т.е. срабатывание без задержки, выходная частота =~7 кГц

Немного не так, вернее, совсем не так. Запись CLKPS0=1,CLKPS2=1 в регистр CLKPR обеспечивает деление тактовой частоты на 32, следовательно, Fclk=9600/32=300 кГц. В СТС режиме без прескалера выходная частота должна быть равна 300/2/2=75кГц.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
aleksey_g
сообщение Feb 26 2008, 09:26
Сообщение #5


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

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Цитата(Dog Pawlowa @ Feb 25 2008, 19:09) *
На выводах XTAL1 XTAL2 осциллографом с делителем или через емкость 10-20 пФ

Это при cksel=10? Т.е. на внутреннем генераторе?
НЕ ВЕРЮ! Да и где Вы нашли у этого кристала XTAL1 XTAL2 ?
Здается мне, это дезинформация!
Go to the top of the page
 
+Quote Post
Diaskop
сообщение Feb 26 2008, 15:00
Сообщение #6





Группа: Новичок
Сообщений: 3
Регистрация: 15-11-07
Из: Винница, Украина
Пользователь №: 32 361



Вопрос решен, все чудесно работает. Естественно XTAL отсутствует, а измерят частоту надо все же через ШИМ и вести подсчет определенного числа импульсов в T0. Всем спасибо, тема закрыта.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 26 2008, 15:09
Сообщение #7


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Diaskop @ Feb 26 2008, 15:00) *
Вопрос решен, все чудесно работает. Естественно XTAL отсутствует, а измерят частоту надо все же через ШИМ и вести подсчет определенного числа импульсов в T0. Всем спасибо, тема закрыта

Надо бы объяснить общественности, где ошибка, чтобы будущие читатели могли понять, где была собака зарыта, в смысле, где была ошибка, а уж потом закрывать тему. Кстати, какой подсчёт импульсов в T0, о чём вы говорите?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
aleksey_g
сообщение Feb 26 2008, 16:09
Сообщение #8


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

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Цитата(=GM= @ Feb 26 2008, 17:09) *
Надо бы объяснить общественности, где ошибка, чтобы будущие читатели могли понять, где была собака зарыта, в смысле, где была ошибка, а уж потом закрывать тему. Кстати, какой подсчёт импульсов в T0, о чём вы говорите?


rx3apf дело говорит!
Нужно еще не забывать об таком регистре, как OSCCAL!
Он тоже влияет на частоту, но не в такой, естественно степени, как CKDIV8 или CKSEL1..0!
Мне лично проще написать цыкл -

включить бит порта
пауза
выключить бит порта
пауза
перейти на начало

И если это на С, то дебажу в аврстудии. Ставлю брейкпоинт на (например) включить бит порта, зарускаю программу. По остановке на брейкпоинте обнуляю счетчик циклов и опять зарускаю программу.
На следующей остановке на том же брейкпоинте, смотрю счетчик цыклов. (Даже подсчитывать, что там наоптимизировал компилятор в асм-листинге не нужно)
Ту же программу шью в кристал. Смотрю осциллографом период сигнала.
Делаю вывод об частоте тактирования. Если нужна точность, корректирую OSCCAL и по-новой, до достижения нужного результата.
Теперь, зная нужный OSCCAL, вставляю его в рабочую программу. Теперь уверен в том, что именно этот кристалл тактируется нужной мне частотой.
Немножко геморно, зато надежно.
Кстати, не знаю, как со стабильностью у Т13, но эксперименты с Т15 меня сильно огорчили. (видимо слишком старый кристалл) Очень сильная зависимость частоты от напряжения питания!
Т45 показала себя гораздо большей стабильностью!
Go to the top of the page
 
+Quote Post
Diaskop
сообщение Feb 27 2008, 07:46
Сообщение #9





Группа: Новичок
Сообщений: 3
Регистрация: 15-11-07
Из: Винница, Украина
Пользователь №: 32 361



Цитата(=GM= @ Feb 26 2008, 18:09) *
Надо бы объяснить общественности, где ошибка, чтобы будущие читатели могли понять, где была собака зарыта, в смысле, где была ошибка, а уж потом закрывать тему. Кстати, какой подсчёт импульсов в T0, о чём вы говорите?


Таймер T0 обладает тремя режимами ШИМ (Normal, CTC, Fast PWM ). В режиме СТС тактовые импульсы подаются напрямую на таймер и значение регистра таймера непрерывно сравнивается с значением записанным программно в регистр OCR0A. При достижении счетчика таймера значения регистра OCR0A изменяется значение на выходе, таймер сбрасывается и все начинается сначала. Программно надо разрешить выход таймера на PB0 ( OC0A-это и есть прямой выход таймера). Практически получается делитель тактовой частоты на значение записанное в OCR0A.

У меня была проблема в том, что я видел и мог программно менять выходную частоту, но она была очень низкой. ОШИБКА сидела в программаторе. Я использую ELNEC и в рабочих опциях не стояла птица в клеточке "Device configuration (Lock & Fuses)", т.е. контроллер работал на низкой частоте, которая еще и делилась.

Некоторые предлагали простой на первый взгляд вариант: вкл. и выкл. в цикле выход (дергать выход). Напишите эту прогу на С и затем посмотрите её вид в ассемблере, там компилятор встраивает ещё кучу переходов, т.е. частоту не измерить.
Go to the top of the page
 
+Quote Post
aleksey_g
сообщение Feb 27 2008, 08:16
Сообщение #10


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

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Цитата(Diaskop @ Feb 27 2008, 09:46) *
Некоторые предлагали простой на первый взгляд вариант: вкл. и выкл. в цикле выход (дергать выход). Напишите эту прогу на С и затем посмотрите её вид в ассемблере, там компилятор встраивает ещё кучу переходов, т.е. частоту не измерить.


Да пусть он хоть миллион переходов вставляет, аврстудия точно покажет кол-во тактов от любого до любого места в программе, если не хотите сами посчитать по асм-листингу. А зная кол-во тактов и время их выполнения по осциллографу или частотомеру - простой арифметикой узнаете частоту тактирования.
Неужели это так сложно для понимания?

Естественно, если эта программа без ветвлений, зависящих от внешних воздействий или прерываний...
Go to the top of the page
 
+Quote Post
domowoj
сообщение Mar 15 2008, 03:11
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Делал 100Гц ШИМ на Тини15 синхронизированый с сетью 50Гц . Долго игрался с OSCCAL. Дело в том, что
значение OSCCAL не дает однозначного результата тактовой частоты от образца к образцу.
Когда надоело подбирать вручную- написал кусочек программы- методом последовательного
приближения меняя OSCCAL сравнивал ШИМ со 100Гц сети.
А частоту проц. можно определить и косвенно , сформировав сигнал на OC0A, к примеру, померив период (частоту) ШИМ и зная все коэф. деления найти частоту процессора.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
akl
сообщение Mar 15 2008, 07:10
Сообщение #12


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

Группа: Свой
Сообщений: 127
Регистрация: 4-04-07
Из: Ижевск
Пользователь №: 26 773



"Посмотреть период или длительность импульса программно-реализованного генератора импульсов..." можно с помощью прикрепленной программы, позволяющей определять частоту генерации системы - конкретный экземпляр контроллера+конкретный экземпляр кварца.

Например:
На корпусе кварца написано 4608кГц(Fclk).
В программе устанавливаем значение 46'080'000.
1. Проверяем на AVRSTUDIO.
Измеряем период. Показания измерителя периода 9'993'985.8 мксек.
Далее 46'080'000/0.99939858=46'107'730.
Вводим в программу полученное значение и переходим к п.1.
После получения периода 10'000'000.х принимается решение, что найдено значение 10*Fclk.

Приведенный пример содержит реально полученные значения.
Прикрепленный файл  FRC.zip ( 880 байт ) Кол-во скачиваний: 159
Go to the top of the page
 
+Quote Post

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

 


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


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