На Pro Mini не кварцевый резонатор, а трехвыводный низкоточный керамичеcкий ?

КашыLot
Offline
Зарегистрирован: 24.05.2017

На Pro Mini и некоторых других платах ставится не кварцевый резонатор, а дешевый трехвыводный низкоточный керамичеcкий ? 

http://arduino.ru/forum/obshchii/vremya-vypolneniya-otdelnykh-komand-ard...

nkk пишет:
http://microsin.net/programming/avr/beginning-embedded-electronics-part3.html После прочтения этой статьи, я, чё-то, стал думать, сто эта маленьая хренька как раз резонатор, а не кварц.

 

КашыLot
Offline
Зарегистрирован: 24.05.2017

Если фьюзы можно прочитать, то тип резонатора будет видно из них ?

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

Да, на этом фото керамический резонатор.

На одинаковых платах ардуино разные китайские производители могут ставить разные резонаторы - кто кварцевый, а кто керамический. У меня например на Pro Mini (вот такая) стоит кварцевый резонатор.

Нет, по фьюзам тип резонатора не определяется. Микроконтроллер не может знать, какой резонатор к нему подключён.

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

У меня кстати такие Pro Mini и тоже интересно на какой частоте работает такой резонатор, измерить к сожалению нечем, а в IDE шьется как ATmega328 (5V, 16MHz) так и ATmega328 (3.3М, 8MHz) и разницы я не заметил.

Беру их на али https://ru.aliexpress.com/item/5pcs-lot-ATMEGA328P-Pro-Mini-328-Mini-ATMEGA328-5V-16MHz-for-Arduino-5V-16M/32694665681.html чуть больше 8$ за 5 штук.

SQwix
Offline
Зарегистрирован: 12.05.2017

Sanyaba пишет:
У меня кстати такие Pro Mini и тоже интересно на какой частоте работает такой резонатор, измерить к сожалению нечем, а в IDE шьется как ATmega328 (5V, 16MHz) так и ATmega328 (3.3М, 8MHz) и разницы я не заметил.

Для  16 и 8 Мгц  разные фьюзы, но они вроде запишутся в контроллер только при смене загрузчика  http://arduino.ru/forum/apparatnye-voprosy/zamena-kvartsa-na-avr-328#com...

Калькулятор фьюзов здесь http://www.engbedded.com/fusecalc

И если загрузить программу, скомпилированную для ATmega328  8MHz  в ATmega328  16MHz, то операторы delay() будут выполняться по времени примерно в 2 раза быстрее и последовательный начнет работать не передачу  с удвоенной скоростью, те в программе установим скорость 57600, а реальная будет 115200.

Светодиод, рабаотающий с использованием delay(), увеличит частоту мигания вдвое.

Будет ли работать ком-порт на  прием не проверял.

Программа для ATmega328-16Мгц, сконфигурированной в IDE как "ATmega328  8MHz":

 void setup(void)  
 { 
 //Serial.begin(115200); // для платы Atmega328-16МГц, которая в IDE установлена как  "Atmega328-16МГц"
 
 // для платы Atmega328-16МГц, которая в IDE установлена как  "Atmega328-8МГц":
 Serial.begin(57600);   // Написано 57600, но Serial monitor будет работать на скорости 115200 
 pinMode(13,OUTPUT); 
 
 } 
  
 void loop(void)
  { 
  Serial.print("Atmega 16 MHz  \n\r");
  digitalWrite(13, HIGH); 
  delay(10); 
  digitalWrite(13, LOW); 
  delay(1000);
  }

 

 

 

SQwix
Offline
Зарегистрирован: 12.05.2017

Sanyaba пишет:
интересно на какой частоте работает такой резонатор, измерить к сожалению нечем
Если нет осциллографа , то вместо измерения частоты "ногодрыга" (запись 1 и 0 однотактными командами на выходы) можно использовать delay() и секундомер. Загрузите программу (см выше) и считайте количество миганий светодиода за 60 секунд. Если в меню установлено 16 МГц и 60 миганий в секунду ( Serial.print немного искажает время), то так и есть 16 Мгц. Если 120 импульсов, то реальная частота 8 МГц.

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

Спасибо за идею, у меня вышло ~59 миганий при загрузке через IDE с выбором ATmega328 (5V, 16MHz) и ~119 миганий при загрузке как ATmega328 (3.3V, 8MHz).

Palbl4
Offline
Зарегистрирован: 09.03.2019

Спасибо за тему. Столкнулся у себя с такой же проблемой. А именно, первый раз зашил promini правильно на 5 вольтах.Спустя неделю потребовалось подправить код ( отправляю ИК- сигнал) и надо же было прошивать на 3.3 вольтах. Естественно после этого приёмник в мониторе порта на другой ардуинке выдает не то, что надо.

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

Не совсем так. Напряжение всё равно какое 5В или 3.3В, дело в тактовой частоте: 16МГц или 8МГц.

Palbl4
Offline
Зарегистрирован: 09.03.2019

Да вот и не видно какая частота нацарапана на кварце..., Поэтому и путаюсь с выставкой выбора параметров.

b707
Offline
Зарегистрирован: 26.05.2017

Palbl4 пишет:
Да вот и не видно какая частота нацарапана на кварце..., Поэтому и путаюсь с выставкой выбора параметров.

между 8 и 16 МГц различить очень просто - выше дали метод

От того, что вы выбрали неправильные парметры при загрузке скетча - ничего не испортится.

Palbl4
Offline
Зарегистрирован: 09.03.2019

Jeka_M пишет:

Не совсем так. Напряжение всё равно какое 5В или 3.3В, дело в тактовой частоте: 16МГц или 8МГц.

Да,но В IDE нет варианта {5в 8мГц}, поэтому я и говорю о 5в и подразумевается 16мГц. Я говорю о моменте ,когда загружаю скетч. 

А в работе не важно какое напряжение подаю , работает чОтко) при обоих напряжениях.

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

Palbl4 пишет:

Да,но В IDE нет варианта {5в 8мГц}, поэтому я и говорю о 5в и подразумевается 16мГц. Я говорю о моменте ,когда загружаю скетч. 

Лучше делайте наоборот - говорите про тактовую частоту. Потому что именно тактовая частота имеет значение в контексте программирования и прошивки.

Фраза "прошиваю на 3.3В" выглядит глупо, правильно будет "прошиваю на 8МГц".

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

Palbl4 пишет:

А в работе не важно какое напряжение подаю , работает чОтко) при обоих напряжениях.

Опять же, не совсем так. На тактовой 8МГц - да, будет работать на обоих напряжениях (3.3В или 5В). А вот на 16МГц на 3.3В может работать нестабильно. Это уже на границе безопасной рабочей зоны:

Palbl4
Offline
Зарегистрирован: 09.03.2019

Всем спасибо за разъяснения!

lean_74
Offline
Зарегистрирован: 22.12.2015

Palbl4 пишет:

Да,но В IDE нет варианта {5в 8мГц}, 

почему нету? у меня есть и даже совсем без кварца

Добавляешь в boards.txt


a328p_8MHz.name=atmega328p (8 MHz) 
a328p_8MHz.upload.protocol=arduino 
a328p_8MHz.upload.maximum_size=32256 
a328p_8MHz.upload.speed=115200 
a328p_8MHz.bootloader.low_fuses=0xe2 
a328p_8MHz.bootloader.high_fuses=0xde 
a328p_8MHz.bootloader.extended_fuses=0x5 
a328p_8MHz.bootloader.path=optiboot 
a328p_8MHz.bootloader.file=a328p_8MHz_e2_de_5.hex 
a328p_8MHz.build.mcu=atmega328p 
a328p_8MHz.build.f_cpu=8000000L 
a328p_8MHz.build.core=arduino 
a328p_8MHz.build.variant=standard 

вот и сам a328p_8MHz_e2_de_5.hex

:107E0000F894112484B714BE81FFF0D085E08093EC
:107E1000810082E08093C00088E18093C10086E009
:107E20008093C20088E08093C4008EE0C9D0259A78
:107E300086E028E13EEF91E03093850020938400B6
:107E400096BBB09BFECF1D9AA8958150A9F7CC2474
:107E5000DD2488248394B5E0AB2EA1E19A2EF3E0D3
:107E6000BF2EA2D0813461F49FD0082FAFD002384A
:107E700011F0013811F484E001C083E08DD089C095
:107E8000823411F484E103C0853419F485E0A6D06E
:107E900080C0853579F488D0E82EFF2485D0082F5E
:107EA00010E0102F00270E291F29000F111F8ED060
:107EB00068016FC0863521F484E090D080E0DECF89
:107EC000843609F040C070D06FD0082F6DD080E0AC
:107ED000C81680E7D80618F4F601B7BEE895C0E0EA
:107EE000D1E062D089930C17E1F7F0E0CF16F0E70C
:107EF000DF0618F0F601B7BEE89568D007B600FCBB
:107F0000FDCFA601A0E0B1E02C9130E011968C915C
:107F1000119790E0982F8827822B932B1296FA01C5
:107F20000C0187BEE89511244E5F5F4FF1E0A03849
:107F3000BF0751F7F601A7BEE89507B600FCFDCFD5
:107F400097BEE89526C08437B1F42ED02DD0F82EF8
:107F50002BD03CD0F601EF2C8F010F5F1F4F849187
:107F60001BD0EA94F801C1F70894C11CD11CFA9403
:107F7000CF0CD11C0EC0853739F428D08EE10CD03F
:107F800085E90AD08FE07ACF813511F488E018D0E6
:107F90001DD080E101D065CF982F8091C00085FF72
:107FA000FCCF9093C60008958091C00087FFFCCF5E
:107FB0008091C00084FD01C0A8958091C6000895FD
:107FC000E0E6F0E098E1908380830895EDDF803271
:107FD00019F088E0F5DFFFCF84E1DECF1F93182F83
:107FE000E3DF1150E9F7F2DF1F91089580E0E8DF49
:067FF000EE27FF270994B3
:0400000300007E007B
:00000001FF

 

Palbl4
Offline
Зарегистрирован: 09.03.2019

Для работы мне достаточно стандартного набора), а это уже борщ)

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

Jeka_M пишет:

Да, на этом фото керамический резонатор.

А по чём вы так сходу, если не секрет, увидели что он "керамический"?
Я думаю, что это кварцевый smd резонатор 3213 (в корпусе C03213C3).
А три контакта у него потому, что пикофарадные конденсаторы в него уже встроены:
две крайние ноги - непосредственно сам кварц; средняя - "земля" (на нее и приходят одной ногой каждая из двух встроенных емкостей, беря начало на ножках кварца).
Мало того, бывает такой устанавливают и как обычный кварц, используя только крайние контакты а емкости распаивая на плате (мой вариант платы Про Мини: средний контакт просто не задействован... ну развели так плату. А есть, подобная, с таким же резонатором от другого производителя и там средний посажен на землю "сэкономив" два лишних smd конденсатора. "Сэкономив" - потому, что они там просто не нужны).

Туцик
Туцик аватар
Offline
Зарегистрирован: 31.03.2020

Программно можно определить какой кварц. Была тема на форуме. Что то наподобие sysinfo для ардуино.

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

Если что-то маленькое на ардуиновской плате, а не стандартная "лодочка" -то скорее это именно керамика.  Кварцы такого же размера дороже, и производителям не выгодно их ставить. Отличить можно только приборами, например хорошим цифровым осциллографом -  керамика быстро "заводится" после подачи питания,  но частота может сильно отклонятся от номинала, до десятков килогерц от тех же 16МГц . Кварц -"заводится" медленно, но частота точная, отклонение 2-3 сотни Герц. Для медленно заводящихся кварцев в настройках фьюзов предусмотрена временная задержка, что б МК не завис на старте.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

У керамических резонаторов ещё и частота отличается от заявленной. Бывает прям сильно, на несколько мегагерц (например 14.5 вместо 16.0).

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

BOOM пишет:

У керамических резонаторов ещё и частота отличается от заявленной. Бывает прям сильно, на несколько мегагерц (например 14.5 вместо 16.0).

До 10%? Т.е. миллис может уходить за сутки более, чем на два часа? Честно говоря, такой жести пока не встречал. Хотя и опыта у меня... ))

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018