Перейти к содержанию
    

Измерение рабочей частоты микроконтроллера

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как мне увидеть осциллографом или измерить тактовую частоту микроконтроллера?

Посмотреть период или длительность импульса программно-реализованного генератора импульсов. Т.е. включить бит в portx, выключить его, перейти. Итого период шесть циклов (sbi, cbi, rjmp).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как мне увидеть осциллографом или измерить тактовую частоту микроконтроллера?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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кГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это при cksel=10? Т.е. на внутреннем генераторе?

НЕ ВЕРЮ! Да и где Вы нашли у этого кристала XTAL1 XTAL2 ?

Здается мне, это дезинформация!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос решен, все чудесно работает. Естественно XTAL отсутствует, а измерят частоту надо все же через ШИМ и вести подсчет определенного числа импульсов в T0. Всем спасибо, тема закрыта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос решен, все чудесно работает. Естественно XTAL отсутствует, а измерят частоту надо все же через ШИМ и вести подсчет определенного числа импульсов в T0. Всем спасибо, тема закрыта

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

rx3apf дело говорит!

Нужно еще не забывать об таком регистре, как OSCCAL!

Он тоже влияет на частоту, но не в такой, естественно степени, как CKDIV8 или CKSEL1..0!

Мне лично проще написать цыкл -

 

включить бит порта

пауза

выключить бит порта

пауза

перейти на начало

 

И если это на С, то дебажу в аврстудии. Ставлю брейкпоинт на (например) включить бит порта, зарускаю программу. По остановке на брейкпоинте обнуляю счетчик циклов и опять зарускаю программу.

На следующей остановке на том же брейкпоинте, смотрю счетчик цыклов. (Даже подсчитывать, что там наоптимизировал компилятор в асм-листинге не нужно)

Ту же программу шью в кристал. Смотрю осциллографом период сигнала.

Делаю вывод об частоте тактирования. Если нужна точность, корректирую OSCCAL и по-новой, до достижения нужного результата.

Теперь, зная нужный OSCCAL, вставляю его в рабочую программу. Теперь уверен в том, что именно этот кристалл тактируется нужной мне частотой.

Немножко геморно, зато надежно.

Кстати, не знаю, как со стабильностью у Т13, но эксперименты с Т15 меня сильно огорчили. (видимо слишком старый кристалл) Очень сильная зависимость частоты от напряжения питания!

Т45 показала себя гораздо большей стабильностью!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Неужели это так сложно для понимания?

 

Естественно, если эта программа без ветвлений, зависящих от внешних воздействий или прерываний...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делал 100Гц ШИМ на Тини15 синхронизированый с сетью 50Гц . Долго игрался с OSCCAL. Дело в том, что

значение OSCCAL не дает однозначного результата тактовой частоты от образца к образцу.

Когда надоело подбирать вручную- написал кусочек программы- методом последовательного

приближения меняя OSCCAL сравнивал ШИМ со 100Гц сети.

А частоту проц. можно определить и косвенно , сформировав сигнал на OC0A, к примеру, померив период (частоту) ШИМ и зная все коэф. деления найти частоту процессора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Например:

На корпусе кварца написано 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...