Как определить частоту микроконтроллера?

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

Как определить частоту, на которую настроен микроконтроллер atmega328?

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

...или микроконтроллер Atmega168, используемые как ардуино про мини.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

nkk пишет:

Как определить частоту, на которую настроен микроконтроллер atmega328?

считать фьюзы

axill
Offline
Зарегистрирован: 05.09.2011

запустить скетч blink и замерить время горения, потом пересчитать в частоту

прикинуть плюс минус можно и с секундомером, а если есть логический анализатор, то измерить можно весьма точно

но кроме того если все детали исправные достаточно выяснить от чего тактируется МК, посмотреть фьюзы и будет и так понятно какая у него частота

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

Клапауций 232, А можно ссылку на поподробнее, как читать/писать фьюзы? Есть 2 ардуины и usb2ttl.

 

VID: 1A86
PID: 7523

 

это оно?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

nkk пишет:

Клапауций 232, А можно ссылку на поподробнее, как читать/писать фьюзы? Есть 2 ардуины и usb2ttl.

avrdude -p atmega328p -c arduino -P COM1 -b 115200 -U lfuse:r:lfuse.txt:h -U hfuse:r:hfuse.txt:h

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Фьюзы помогут узнать частоту лишь в широких пределах - у AVRок там разброс типа low-speed (до 4 МГц),medium-speed (4-8МГц) , high-speed (от 8 МГц).

 

axill
Offline
Зарегистрирован: 05.09.2011

Yarik.Yar пишет:

Фьюзы помогут узнать частоту лишь в широких пределах - у AVRок там разброс типа low-speed (до 4 МГц),medium-speed (4-8МГц) , high-speed (от 8 МГц).

 

При тактировании от кварца смотрим на кварц и все ясно. При тактировании от RC фьюзы показывают частоту явно

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

Та я хочу наглядно посмотреть, как работает с кварцом 16 МГц, затем заменить его на 20 - и наглядно посмотреть на прирост.

То есть, помигать светодиодом - тоже подойдёт, но нужно так мигать, чтобы были заметны различия при видеосъемке в 30 фпс.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

1. Моргаешь диодом, подбираешь частоту так, чтобы моргания видно не было. (примерно 1 раз в 33 мс)

2. меняешь кварц. Миллисекунда стала короче, "новых" мс между морганиями уложится больше.

3. подбираешь частоту снова (примерно 41 мс);

4. печатаешь на сериал разницу;

5. профит.

----

ЗЫ: я слышал про отдельные котлы в аду, для оверклокеров! Там кошмар! Волосы дыбом, ты не поверишь! Одно утешает - зависают часто...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

nkk, Учтите, что бутлоадер не будет работать на другой частоте.

Можно написать программу. В меге есть одно устройство, которое тактируется индивидуально от своего RC-генератора это вотчдог.  Можно запрограммировать вотчдог на прерывание раз в секунду, а один из таймеров запрограммировать что б например делил тактовую частоту на 1000, и инкременировал соответсвенно некую переменную 16000 раз в секунду( при кварце 16МГц) . В прерывании вотчдога измерять до скольки натикала переменная, это число *1000  и будет частотой кварца.  

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Дима! Меня заинтересовал вопрос - по какой причине бутлоадер не станет работать? Ему вроде не откуда узнать, что частота поменялась, если просто кварц перепаян? Бутлоадер принимает код от USB-UART конвертора, который тоже ничем не тактирован?

Если Вы что-то знаете на эту тему - расскажите, я вроде что-то не понимаю.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

wdrakula, не копал даташит, вроде-бы там рассчитываются какие-то константы для настройки UART из системной частоты. Я когда разгонял дуню -компилил свой бут для каждой новой частоты.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

я понял, о чем Вы. Думаю, что разница 16 и 20 не столь велика, чтобы УАРТ сбился. Хотя все может быть.

axill
Offline
Зарегистрирован: 05.09.2011

Настройка uart при 16мгц и 20мгц сильно отличается

точнее uart не будет работать на той же частоте, будет работать только его скорость вырастет на 25%

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

Итак, взял Ардуино "Atmega328 5V/16MHz", прошил в неё скетч "ArduinoISP",

затем взял Ардуино "Atmega168 5V/16MHz", у которой был перепаяи кварц с 18 на 20 МГц и подключил к ней так:

Atmega328   Atmega168:
       13 - 13
       12 - 12
       11 - 11
       10 - RST
      VCC - VCC
      GND - GND

Скачал новую версию avrdude, запустил

avrdude -p atmega168 -c arduino -P COM5 -b 115200 -U lfuse:r:lfuse.txt:h -U hfuse:r:hfuse.txt:h

получил

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x71
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0

avrdude done.  Thank you.

Что я сделал не так? Может, кварц надо было потом перепаивать?

Вернул, как было - получаю т же самое: programmer is not responding

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

Оказывается, в примере из моей среды ардуино был другой баудрейт, после изменения и перепрошивки выдало:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9406 (probably m168)
avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file "lfuse.txt"
avrdude: reading hfuse memory:

Reading | ################################################## | 100% 0.01s

avrdude: writing output file "hfuse.txt"

avrdude: safemode: Fuses OK (E:F8, H:DD, L:FF)

avrdude done.  Thank you.

содержимое hfuse.txt: 0xdd

содержимое lfuse.txt: 0xff

 

slider
Offline
Зарегистрирован: 17.06.2014

nkk пишет:

Та я хочу наглядно посмотреть, как работает с кварцом 16 МГц, затем заменить его на 20 - и наглядно посмотреть на прирост. ...

Если вы хотите вызуально увидеть что от кварца на выше частоту, стал стандартный блинк быстрее мигать, то вам нельзя ничего менять в файлах и настройках. Просто  поставьте разъемчик для кварца и подтыкайте не родной кварц после заливки скетча, а перед новой заливкой скетча возвращать родной.  и не понадобиться ничего менять в файлах и настройках. Это то что вы хотели , это сгодиться для разумного разгона.  Для мигания блинком и работы периферией, за исключеныем работы через UART(монитор порта,..) и SPI .

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

 

nkk
nkk аватар
Offline
Зарегистрирован: 18.03.2016

С GUI разобрался, нашел такое - http://payalo.at.ua/c_fuse/calc.html?part=ATmega168.

Теперь бы понять, нужно ли на кварц 20 МГц настраивать фьюзы? Судя по сообщению от slider выше, не нужно )

Беда в чем: был такой модуль: залил скетч "Blink" - замигало, заменил стоящий там кварц на HC-49S - не мигает.

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Доброе время. Прочитал тему, но не осилил. У меня про мини. Знаю, они разные бывают, кварца с надписью нет. Как можно узнать его реальную частоту?

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Хотя вроде по описанию 5В мини 8Мгц не бывает. Поверим на слово, что там 16? Как-то так?

SLKH
Offline
Зарегистрирован: 17.08.2015

morfius пишет:

Доброе время. Прочитал тему, но не осилил. У меня про мини. Знаю, они разные бывают, кварца с надписью нет. Как можно узнать его реальную частоту?

например, посмотреть осциллографом. 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Выбери в меню Arduino IDE стандартную плату Pro Mini (на 16МГц) и загрузи блинк на 1 секунду. Если будет мигать с частотой 1 раз в сек - то 16МГц, если 1 раз в 2 секунды - значит 8 МГц.

arduinec
Offline
Зарегистрирован: 01.09.2015

morfius пишет:

У меня про мини. Знаю, они разные бывают, кварца с надписью нет. Как можно узнать его реальную частоту?

http://arduino.ru/forum/programmirovanie/sysinfo-arduino
 

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Всем спасибо. Sysinfo штука понравилась. Как и ожидалось 5в плата на 16 МГц.