Внешний кварц на 20 МГц - HC-49S - для Ардуино: как разогнать...


Как известно, максимальная заявленная частота работы микроконтроллера Atmega — 20 МГц, однако, готовые платы Ардуино с такими кварцами не попадались — и я решил попробовать заменить на одной плате имеющийся внешний кварцевый резонатор 16МГц на другой, рассчитанный на 20

Начну пафосно, с азов!
Говоря о цифровой технике, первое, что приходит на ум — это биты: 0 и 1, физически им соответствуют уровни напряжений, например напряжение ниже 1 вольт — это логический ноль, а больше — логическая единица.
Элементы, составляющие микроконтроллер (процессор) выполняют свои операции при изменении состояния тактирующего сигнала (по фронту или по спаду). То есть, чтобы счётчик, на вход которого подали значение «5» сформировал на выходе значение «6», нужно на его специальном контакте «CLK» изменить напряжение со значения, большего, чем 1В на значение меньшее (или наоборот). Его вход можно соединить с выходом, и, если изначально на него мы подавали значение «5», значение «7» на выходе получится только после двух изменений сигнала контакта «CLK». Эти изменения называются «синхроимпульсами», чем чаще они приходят — тем быстрее работает всё устройство.

Поэтому иногда полезно увеличить частоту генератора синхроимпульсов — кварца, в данном случае; но всякая микросхема имеет свой предел частоты и чем выше частота от заявленной — тем больше вероятность получить сбой.

20МГц — это не предел, разгоняют и до 32. Тема, конечно, интересная, но рисковать и покупать что-то для аппаратного апгрейда я не решался, пока мне не предложили кварц бесплатно «за обзор».

За одним, разберемся, как программировать микроконтроллер ISP-программатором (или SPI?). Зачем? А просто так! В ряде случаев, при замене внешнего кварца, можно обойтись без ISP-программатора! Это если устройство полностью готово и оно не будет работать с величинами, так или иначе связанными со временем.

Итак, описание товара.

Товар был доставлен вместе с другими, обзоры на которые Вы уже успели полюбить. Прилетел за две недели и пролежал еще неделю в Столице из-за праздников. Упакован, почему-то в два пакетика:

Заявлено:
Tolerance: ±20ppm
Frequency: 20.000MHz


AvrISP

Обычно для прошивки Ардуино используется UART-интерфейс, для передачи данных по нему в оба конца достаточно четыре провода, но требуется согласования частот на обоих устройствах. Стандартно, на платах Ардуино в микроконтроллер прошит загрузчик, который при загрузке (после Ресета) проверяет, не хочет ли его иметь Среда Разработки с компьютера по через последовательный адаптер? И, если так, проглатывает короче, позволяет перепрограммировать память программы контроллера.
Мелкие микросхемы (типа attiny) с ограниченными ресурсами не используют загрузчик — и серьёзные дядьки шьют их по SPI-интерфейсу: у него уже для пиёма и передачи используется 5 проводков, но огромное преимущество — ведущее устройство тактирует ведомое, таким образом, не нужно согласовывать синхроимпульсы… Стоп! А что что такое здесь синхроимпульсы… Те же самые импульсы!

Так вот, привязка частоты микроконтроллера ко времени происходит полностью программно. Когда мы заливаем скетч, выбираем название контроллера и его частоту, например: Atmega328 (3.3V 8MHz) — и Среда Разработки, компилирует код так, чтобы при вызове функции delay() проходило количество тактов, которое на выбранной частоте соответствует заданному количеству секунд; затем, прошивает через UART, тактируя его так, чтобы на другой стороне кабеля загрузчик, работающий на частоте 8МГц, успевал прнимать данные, передающиеся со стандартным бодрейтом. Бодрейт же связан со временем, поэтому если Среда не будет знать частоту, то не сможет сформировать корректный бодрейт для загрузчика.

Нельзя сохранить в какую-то ячейку памяти контроллера её величину — и получить ту же программу, что была раньше. При замене кварца, если Вы работаете со временем, нужно перекомпилировать программу с учётом частоты нового кварца — и только после этого она будет работать синхронно с часами.

Беда!
Прошить по UART после замены кварца не получится.
При работе с другими устройствами по UART будет погрешность, не заметная на низких скоростях.
Функции delay(), millis(), micros() будут работать неправильно ;(
Получится только работать с пассивной периферией и, да, скорость работы возрастёт! Термретр и флешка будут шустрее, но датчик расстояния будет врать.

Как быть?
Если нет ISP-программатора, контроллер не работает со временем и пошить всё-таик хочется, прежде, чем менять кварц, нужно хорошо оттестировать — и только потом прошивать.
Если есть ISP-программатор, — прошить по нему и. В случае последующей необходимости шить по UART, нужно пересобрать и перезалить загрузчик. Это вполне реальная процедура — homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik

ISP-программатор

Можно купить или сделать из другой Ардуино. «Другая Ардуино будет программатором: с ней мы работаем по UART», а она с той, у которой мы меняем кварц — по SPI. Кстати «SPI» и «ISP» расшифровываются по-разному, но в данной конкретной теме означают одно и то же.
Ардуино-программатор прошиваем скетчем из примера:

Затем соединяем выводы с той, которую мы будем программировать по SPI следующим образом
[Ардуино-программатор]
                    10   RST
                    11   11
                    12   12
                    13   13
                   VCC   VCC
                   GND   GND
                         [Ардуино программируемый]
То есть, вывод 10 — это ресет, 11-13 одноимённые и питание.
Качаем программу Avrdude — это консольная утилита и она входит в дистрибутив Среды Ардуино, лежит в папке hardware\tools\avr\bin но там нет файлика avrdude.conf, в котором содержится информация для работы с платами.

Фьюзы

Далее, если не в курсе, что это, читаем статью о фьюзах Ардуино, например эту.
Открываем командную строку в папке с avrdude.exe и выполняем:
avrdude -p atmega168 -c arduino -P COM5 -b 19200 -U lfuse:r:lfuse.hex:h -U hfuse:r:hfuse.hex:h -U efuse:r:efuse.hex:h
где
atmega168 — программируемый контроллер;
COM5 — нормер порта, обычно другой;
19200 — бодрейт взаимодействия с программатором, также меняется в коде программатора, который мы заливали выше;
lfuse, hfuse, efuse — названия флагов конфигурации контроллера, отвечающих за его поведение;
:r: — признак того, что мы читаем (еще можно записывать и выполнять);
*.hex — имена файликов;
:h — формат, в котором будут записаны фьюзы в файлики!
После, в папке появятся файлы, открываем их и «Калькулятор фьюзов AVR». Можно было поискать GUI-программку, которая через COM-порт, но лично у меня ни одна не заработала.
Калькулятор мне понравился этот или этот. Выбираем микроконтроллер, копируем значения фьюз из файликов, они там в 16-ричном виде, поэтому в команде было :h, хотя для удобства ручной работы, было бы удобно писать :b — получать двоичные данные и побитово их анализировать.

Смотрим — в калькуляторе, по мере ввода значений фьюз слева, изменяются значения полей. У меня получилось так:

В открывающимся списке видим, что кроме нашей частоты — частоты внешнего кварца, можно выбрать многое другое:

Например, этот вариант освобождает от потребности во внешнем источнике синхроимпульсов, используя внутренний на 8МГц. При изменении полей калькулятора, значения фьюзов слева изменяются, — у меня LOW стал E2.
Если выполнить команду
avrdude -p atmega168 -c arduino -P COM5 -b 19200 -U lfuse:w:0xE2:m

то запишется lfuse, в результате чего контроллер начнет работать на частоте 8МГц — и, при программировании его через UART, нужно будет выбирать такую частоту.

Проверка, сравнение

Чтобы выяснить, действительно ли меня нае кварц соответствует заявленным двадцати мегагерцам, я залил скетч Blink из примеров в контроллер, пока тот был настроен на 16 Мгц и записал несколько видеороликов с частотой 30 кадров в секунду:
1) изменяя фьюзы на 8МГц;
2) используя стандартный кварц на 16МГц;
3) перепаяв его на новый МГц.
После синхронизации начала зажигания светодиода в каждом видеоряде, наложил их:

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

С новым кварцем мигает чаще!

Работа с программатором
Ну а если Вы, по тем или иным причинам, утратили контроль над частотой, например, купили чистый Atmega или, как я, сначала перепаяли кварц, а потом решили прошить, то открываем Среду Ардуинои выбираем нужный скетч, затем, не забывая, что по UART у нас Ардуино-пограмматор, а у него по SPI-Ардуино-жертва, выбираем правильный тип программатора:

или AVRISP
Затем выбираем, как всегда, выбираем тип платы; если выбрать неправильно, то потом в консоли увидим что-то похожее:
avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.
Найден неправильный микроконтроллер. Вы указали правильную плату в меню Инструменты -> Плата?
.
И заливаем прошивку, но не как всегда а «через программатор»:

Ctrl+Shift+U! — И плата прошивается, но без учета кварца.
Почему под спойлером? — Потому что не обязательно.

Настройка компилятора

Для использования с Ардуино внешнего кварца, нужно изменять загрузчик и опции компилятора, чтобы они работали синхронно. Вернёмся к Конструктору загрузчика, ссылку на который я уже указывал. Вводим свои данные — а именно Внешний кварц, 20000000 Гц и модель контроллера — получаем результат:

Скачиваем по ссылке файлик, смотрим на команду Прошивка через Arduino… Фьюзы лично я не перезаписывал:
CMD
>avrdude -c avrisp -P COM5 -b 19200 -p atmega168 -U flash:w:a168_20MHz_ff_de_4.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9406 (probably m168)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "a168_20MHz_ff_de_4.hex"
avrdude: input file a168_20MHz_ff_de_4.hex auto detected as Intel Hex
avrdude: writing flash (16374 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 16374 bytes of flash written
avrdude: verifying flash memory against a168_20MHz_ff_de_4.hex:
avrdude: load data flash data from input file a168_20MHz_ff_de_4.hex:
avrdude: input file a168_20MHz_ff_de_4.hex auto detected as Intel Hex
avrdude: input file a168_20MHz_ff_de_4.hex contains 16374 bytes
avrdude: reading on-chip flash data:

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

avrdude: verifying ...
avrdude: 16374 bytes of flash verified

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

avrdude done.  Thank you.
А то вдруг запорятся… Ковай! Вот и всё: можно перепаивать внешений кварц!

Загрузчик мы прошили, теперь нужно настроить Среду Ардуино для корректной компиляции времени зависимых функций. Для этого, нужно скопировать Блок файла boards.txt для Arduino IDE в файлик, но! Атата! Новая Среда работает не так, как старая, и с ней не получется! Нужно качать «былую», 1.0.5 вполне подходит, файл находится в папке hardware\arduino, копируем туда строки, запускаем среду, выбираем тотже пример Blink, открываем меню — и видем там — Ура! — наш контроллер на 20 мегагерц!!!

Прошивается обычным программатором успешно, работает синхронно со временем, и корректно по UART-интерфейсу!

Спокойной ночи и точных Вам синхроимпульсов!
Хорошая статья на эту тему, чтобы не путаться в понятиях.
п.с. А ещё говорят, что и на 30 МГц нормально разгоняется!

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Планирую купить +14 Добавить в избранное +15 +34
+
avatar
+9
Мне бы лень было выклянчивать у продавца кварц за бакс, чтобы потом обзор со скриншотами два часа писать :)
+
avatar
  • Nkk
  • 02 июня 2016, 23:29
0
Да, просто листал-листал, увидел — и со списком кинул. Я тогда не знал, что если слишком много обзоров делать, Администрация может ввести лимит на количество обзоров из одного и того же магазина. Но, оказывается, были случаи, и надо стараться свести количество обзоров к минимуму…
Тема интересная, разбираться понравилось — теперь я могу перепрошивать некоторые фонарики! Хотя это больше не с кварцем связано, а с ISP-программатром. Можно теперь смело заказывать другие микроконтроллеры, не боясь, что их будет нечем прошивать…

Если поискать хвосты, можно вычислить, что разбираться начал 2 недели назад =)
+
avatar
  • ksiman
  • 02 июня 2016, 23:30
+7
Тут работы не на 2 часа, а поболее
+
avatar
+6
про 2 часа говорят те, кто не пробовал подобный обзор написать )
+
avatar
0
Сомневаюсь что эта статья писалась 2 часа, хотя написать то может за 2 и можно было, но это только написать статью, + ещё пару дней чтобы это всё сделать и разобраться!
И стимул к этому всему какой-то копеечный кварц, без которого бы статьи не было, а с которым вот она, просто ужас!
+
avatar
  • x893
  • 02 июня 2016, 23:32
+17
Ждем обзор резисторов по п.18
+
avatar
  • Nkk
  • 02 июня 2016, 23:37
0
Не, я SMD по 1.5грн за десяток покупаю >_< по пути на работу
+
avatar
  • loole
  • 02 июня 2016, 23:45
+2
Гвоздей, резисторы это сложно и мелко. А там и взвесить и измерить. А шляпки — это же клад для обзарщика.
+
avatar
  • ksiman
  • 03 июня 2016, 08:11
+4
Ждем обзор резисторов по п.18
Уже пишу обзор резистора по п.18 :)
Копите помидоры :)
+
avatar
  • Kartus
  • 03 июня 2016, 13:05
0
Уверен: обзор будет полноценный, с таблицами и графиками)))
+
avatar
  • ksiman
  • 03 июня 2016, 15:33
+1
Нарисую, коли надо
+
avatar
  • Nkk
  • 03 июня 2016, 00:05
+1
Чё-то я не понял, они один и тот же товар в разных категориях по разным ценам продают?
+
avatar
0
да бывает
+
avatar
  • skif31
  • 03 июня 2016, 00:06
+3
+
avatar
+3
+
avatar
0
Продавец, м/чудак, поднял цену. Но есть ведь и другие места: http://ru.aliexpress.com/item/Promotion-10PCS-HC-49S-20-000-MHZ-Quartz-Crystal-Xtal-Resonators-Oscillators/32625391407.html

В мобильном приложении всего на $0.01 дороже, т.е. $0.65 за 10 штук. )
+
avatar
  • alex0
  • 03 июня 2016, 01:12
+1
Самое то перед сном почитать)) Спасибо.
+
avatar
+3
Обзор на кварц по п.18. Я тихо фигею :)
Да еще и цена на который завышена больше, чем в 10 раз :)
+
avatar
  • AFCrio
  • 03 июня 2016, 06:18
+8
Да какая разница, п.18 или нет и какая цена. Главное что человек написал хорошее руководство для интересующихся чайников по разгону atmega в картинках и со ссылками.
За что ему спасибо!
+
avatar
+2
Руководство по борьбе с ардуиной и ее средой при смене кварца хорошее, наверное, тут я не спорю. Но в конце концов, тут же не клуб ардуины :)
И о каком разгоне речь? Штатный кварц на штатную частоту атмеги. И ладно еще был бы обзор самого кварца — с замером точной частоты, температурной зависимости и т.д., но ведь в «обзоре кварца» нет самого обзора кварца :)
+
avatar
  • Kartus
  • 03 июня 2016, 13:07
+1
Кстати да. И фоток на теле нет, и кошаку погрызть не дали)))
+
avatar
+1
Кот первым просёк, какой сегодня день недели, и абстрагировался перед ТВ:

+
avatar
+2
Обзор, конечно, получился. Плюс за старания. Вопрос по существу — какой прирост производительности дало это аппаратное ускорение? Другими словами — нафига козе баян? Или Вы просто продемонстрировали замену кварца на первом попавшемся под руку изделии?
+
avatar
  • Nkk
  • 03 июня 2016, 08:16
0
Тоже задавался подобным вопросом, надо подключить карту памяти и проверить скорость.
По идее, должно давать прирост на 25%.
+
avatar
0
на моё дилетансткое мнение, скорость выполнения упрётся в скорость чтения ROM (он там на flash построен).

сколько там более-менее современные микросхемы выдают? 70нс? врядли древние авр-ы переводили на новые тех-процессы.

кол-во MIPS не должно весомо возрасти после определенного порога…

в даташите многобещательно написано up to 20 MIPS throughput at 20MHz что какбы намекает, что дальше смысла особо нету.

вполне возможно что резултат может различаться между моделями/поколенями контроллеров.
+
avatar
+1
До 20 МГц производитель гарантирует, а выше — сильно зависит от конкретного чипа, от питания, от температуры и еще от кучи факторов. Короче говоря, лотерея :)
+
avatar
0
речь про производительность, а не про мегагерцы.

в целом выполнение 1 инструкции за 1 такт ожидаемо для большинства инструкций для avr. Но если всё упрётся в скорость чтения ROM, то будут тратиться дополнительные такты на время пока информация будет считываться.

этож avr, а не х86, где суперскалярная архитектура, предсказание ветвлений, кеши инструкций, кеши памяти и т.д.

тупым повышением частоты CPU ничего не добиться в большинстве случаев.

повторюсь, узкое место — это ROM. Если он например 50нс, то как раз до 20MIPS можно будет выжать. Дальше уже всё, производительность может катастрофически упасть в разы из-за того, что придется пропускать такты в ожидании информации из ROM.
+
avatar
+1
А разве AVR умеют ожидать чтение из флэша?
20 МГц гарантированы — флэш на этой частоте точно работает. На более высокой — как повезет с конкретным чипом и условиями его работы. Не потянет — значит контроллер будет глючить, пытаясь прочесть из неуспевающей флэши, а не увеличится время на чтение из-за ожидания.
+
avatar
0
Интересно, про разгон Ардуино. Как раз в ЧПУ станках это актуально.
Плюсую. А то думал, просто радиоэлементы уже начали в обзор писать.

Заголовок у вас не удачен, поэтому мало людей привлекли.

Вообще в Атмегах есть вроде и внутренний кварц.
+
avatar
  • sir0ta
  • 03 июня 2016, 07:31
0
У меня принтер на MKS Base v 1.2. Ну по факту та же мега2560 только нет рампсов и прочего, все так сказать он боардс. Так вот народ жалуется, мол если в скетче отключить совсем экран, то печатает принтер лучше и на капельку быстрее. Вот подумываю… а может перепаять кварц и не отключать экран ) Сейчас сток скорость нормальная 40мм/с. А так частота будет в 2 раза выше с 30MHz кварцем, охлаждение там уже есть. Буд печатать хотя бы 60мм/с. Все таки в 1,5 аза быстрее.
+
avatar
0
Вообще тема про разгон мег интересная. Хорошо что автор её затронул.
+
avatar
  • Nkk
  • 03 июня 2016, 08:25
-1
Внутренний — на 8 Мгц.
Изменение одного слова в тайтле повлекло отправку обзора на перемодерацию.

А также «Хорошие» новости: наши «спонсоры» совсем охамели — и обзоры теперь будут публиковаться реже — mySKU.me/page/rules/bangood
+
avatar
0
и обзоры теперь будут публиковаться реже
Обзоры по п.18 от банггуда, надо уточнить :) И слава богу :)
+
avatar
  • kirich
  • 03 июня 2016, 15:20
+2
+
avatar
  • VitruM
  • 03 июня 2016, 15:27
+1
Нам ненужны обзоры от людей разбирающиеся в том о чем пишут, всех 18 пунктовиков к стенке )))
+
avatar
-1
Все смотреть не стал, просмотрел первые пять — нет, эти не лишние. Как и вот эти, к примеру:
mySKU.me/blog/china-stores/41209.html
mySKU.me/blog/china-stores/41020.html
mySKU.me/blog/china-stores/41137.html
Но всякие ящички-коробочки, сотни колонок и наушников, кошельки и сумочки — да сколько ж можно? :)
Ну и апофеоз — кварц на обзор :)
+
avatar
  • kirich
  • 03 июня 2016, 15:46
+1
Все смотреть не стал, просмотрел первые пять — нет, эти не лишние.
На самом деле там не хватает еще одного обзора, тоже от этого магазина, я просто не стал его добавлять.

Как и вот эти, к примеру:
Согласен.

Но всякие ящички-коробочки, сотни колонок и наушников, кошельки и сумочки — да сколько ж можно? :)
Вот не надо на коробочки наезжать :)))))))
правда там обзор без пп18
+
avatar
0
Вот не надо на коробочки наезжать
:))))))
+
avatar
  • vismyk
  • 03 июня 2016, 17:25
0
Вы считаете эти обзоры тоже лишними?
Воздержусь от категорических оценок, но как-то так странно совпало, что ни одного из этих обзоров не читал… :/
+
avatar
  • kirich
  • 03 июня 2016, 18:33
0
Странно, несколько товаров из этих обзоров в итоге стали «народными» :)
+
avatar
  • vismyk
  • 03 июня 2016, 18:38
0
Рад за них. А мне ещё рано, наверное… ;) Это как на днях в одном обзоре упоминался бум самопальных «амбилайтов», который меня пока миновал, да и в будущем сомневаюсь… ;)
+
avatar
  • Gelmer
  • 22 октября 2019, 06:26
0
del
+
avatar
  • sir0ta
  • 03 июня 2016, 07:29
+1
Собственно как-то странно… Зачем 20MHz? Надо было 30 брать сразу. Дунька шикарно на этом кварце себя ведет. Частота почти в 2 раза выше.
Плюс опять же те же нано и промини стоят на копейку дороже с обычными кварцами, чем с smd. Так что было бы интереснее именно этот аспект. Я в свое время не придал этому значения. теперь у меня пару десятков нано и столько же промини с smd кварцами.
+
avatar
  • skif31
  • 03 июня 2016, 20:42
0
Я пробовал 30 Работает
+
avatar
  • Aloha_
  • 03 июня 2016, 10:46
0
Беда!
Прошить по UART после замены кварца не получится. — это ведь давно известно. Зачем себе палки в колеса втыкать то...
+
avatar
0
Прошиться по ISP — это капец какие палки. Хотя для ленивых ардуинщиков все возможно.

А вообще, если есть девайс, у которого есть внутри загрузчик, но по каким-то причинам нельзя подключить программатор для его замены, то:
1. пишется программа, перезаписывающая загрузчик.
2. заливается через старый загрузчик
3. все готово.

Например у меня в изделии используется простенький UART-загрузчик с тремя функциями — чтение, стирание, и запись страницы flash. Стирание и запись не имеют доступа к адресам загрузчика. Ничто не мешает залить тот же самый загрузчик, перекомпилировав его в качестве основной программы, который уже будет иметь доступ ко всем адресам flash.
+
avatar
+1
Я дико извиняюсь за следующее высказывание но все же.
Нафига этот костылинг? Не лучше ли, и проще ли выкинуть эту ардуино и перейти на человеческий ARM (STM32F103) Цены на них сопоставимы, а плюшек в разы больше.
Можете минусовать =)
+
avatar
+2
Только хотел написать ровно то же самое :) Тактовая по умолчанию в 72МГц, огромный набор периферии, стоит копейки…
Не — ардуина хороша, когда нужно за полчаса сделать какой-то костылик. Но если пошло вытягивание производительности на 20% — что-то уже не то с самой идеей :)
+
avatar
  • vismyk
  • 03 июня 2016, 18:54
0
Но если пошло вытягивание производительности на 20% — что-то уже не то с самой идеей :)
Угу. По идее, выжимание производительности до капли должно естественным образом сопровождаться переходом на ассемблер, а иначе и идея разгона в фарс превращается. :/
+
avatar
0
Ардуинщики несовместимы с ассемблером :)
+
avatar
  • sir0ta
  • 04 июня 2016, 04:51
0
Мне за дарма и пару минут с паяльником предлагают увеличить производительность того что я знаю и умею в 2 раза. Зачем мне асм? Зачем мне стм?
+
avatar
0
Не в два, а в полтора :)
Ваш вопрос только подтверждает мое наблюдение :) Незачем, конечно. В самом деле, к чему Вам эти DMA, аппаратные USB и интерфейс SD, внутрисхемная отладка, повышение производительности в 20-50 раз… :)
+
avatar
  • sir0ta
  • 04 июня 2016, 10:20
0
Как в полтора? Сток 16, ставим 30. Почти 2 раза. Остальное… мне в моих проектах не надо ни DMA, ни USB, мне не нужна внутрисхемная отладка. Зачем котроллеру жалюзей все это? У него одна задача — с кнопки открыть жалюзи, с кнопки закрыть. По настройке при определенном уровне внешнего освещения закрыть и открыть соответственно автоматически. Ни чего этого не потребовалось. да и 30МГц не нужны. Вы автомат с палкой сравниваете. Понятно что и с палкой люди воевали… но и скажем коров гнать автоматом не совсем удобно…
+
avatar
+2
30 — это на удачу. Оно может работать неделю, а на восьмой день глюкануть. Потом на четвертый. Потом на десятый. А может и сразу не заработать. А может год работать без глюков. Короче, нельзя так, на авось, делать в нормальных устройствах :)
Ну и еще раз — Вы опять и опять подтверждаете, что ардуинщики с ассемблером несовместимы :)
+
avatar
  • sir0ta
  • 04 июня 2016, 04:52
0
Автор просто не туда зашел. Надо было кварц на 30MHz.
+
avatar
  • ub0baa
  • 03 июня 2016, 12:48
+1
так на STM так просто не перепрыгнуть, гайдов не так много, IDE не самые человеко-ориентированные. нужен очень серьезный проект, чтобы появилась необходимость вот так перейти.
да и юзерам ардуино не надо ни 64к флеш, ни ЦАПы… чтоб моргать светодиодами кортекс не нужен))))
это как по селу на спортбайке вместо Риги гонять))
+
avatar
+1
> чтоб моргать светодиодами
не нужно менять кварц для вытягивания дополнительных 20% производительности

И с появлением Cube всё стало значительно проще — по крайней мере всю базовую инициализацию Cube берёт на себя.
+
avatar
0
Это не предьявы аля «сам дурак», это внутреннее негодование и эмоции. Не более того, отнеситесь с пониманием. Просто народ сначала говорит «да мне не надо ARM чтоб мигать светодиодом на 13 ноге», а потом «Надо выжать из AVR все что можно, потому как ARM я не знаю и переходить сложно». Из моих знакомых электронщиков ни одного не знаю кто остался на AVR, даже простые свистелки-перделки уже пилят на ARM, цены теже, IDE и кодинг не сложнее.
То что сделано в обзоре и статье хорошо и полезно, этого никто не оспаривает. Но похоже как на «жигу» корячить спойлер =)
+
avatar
0
И еще один огромнейший плюс АРМов — полноценная отладка с просмотром регистров, переменных, пошаговым выполнением, точками останова и т.д. При этом у STM-ов для этого выделяются всего две ноги :)
+
avatar
  • Ohus
  • 03 июня 2016, 13:30
+1
Для меня это обзор не про кварц, а про модернизацию и перепрошивку Arduino. +
Кварц — это топор для каши.
+
avatar
0
Не всмотревшись в главное фото, подумал что это роутер)))
+
avatar
+2
Только не «бауд», а «бод».
+
avatar
  • Nkk
  • 03 июня 2016, 21:43
0
Действительно… Сейчас исправлю — и попаду на премодерацию.

Не попал. Кстати, неделю назад отписывался сотруднику Магазина еще о 4 товарах — и тот пообещал отправить, но товары так и не появились в списке заказов — так что магазины реагировали на просьбы не слать товры на обзоры еще неделю назад!
+
avatar
  • she
  • 06 июня 2016, 01:50
0
Спасибо за обзор. Такой обзор за бакс это подарок для нас.
+
avatar
  • CTAHOK
  • 31 марта 2017, 02:07
0
Набрёл на этот обзор через поисковик. Странно, что он набрал так мало рейтинга, инфа то полезная.
+
avatar
0
До чего дошел прогресс, кварцы из китая покупаем в три раза дороже.
+
avatar
  • ttwins
  • 20 декабря 2021, 18:24
0
Дано:
Контроллер atmega 328p. Программно минимальная частота встроенного генератора 31 Гц с внешним кварцем 16 МГц.
Вопрос:
Мне нужно получить генератор 15,5Гц (ну или около того). Можно уменьшением внешнего кварца (скажем на 8МГц) уменьшить частоту встроенного генератора до 15 Гц? Ведь будет одновременно уменьшена и тактовая частота процессора.
p/s ищу простой ответ, без подробностей что можно просто написать скеч и тд, уже неделю бъюсь не могу подружить программу с алгоритмом работы, по отдельности все работает, частота программно меняется, как только собираю скетч в сборе, частота 1,67 Гц и привет.
Вот я и подумал просто заменить внешний кварц… Р