Arduino 16 МГц только с 3,3 В?

Теперь у меня есть эти Arduino Pro Mini от Sparkfun. Это последняя версия, которую я знаю (да, это та, у которой эти ужасные несоосные штифты). Теперь они спроектированы вокруг ATmega328P и имеют кристалл 16 МГц.

Теперь мой вопрос: могу ли я запустить ATmega328 с кристаллом 16 МГц, поставляя ТОЛЬКО 3,3 В.

Причина, по которой я это делаю, заключается в том, что 5V / 16MHz Pro Minis из Китая намного дешевле, чем 3.3 / 8MHz.

Факты, которые я уже знаю:

Если я буду следовать таблице данных до буквы, эта конфигурация не должна работать. НО..... После некоторых испытаний это действительно сработало.

Кроме того, мне нужны ответы, основанные на личном опыте (а НЕ на мнениях), а не на технических данных и спецификациях.


[EDIT] Включение способа использования внутренних часов (на частоте 8 МГц) ATmega328P действительно помогло бы!

, 👍7

Обсуждение

Я сомневаюсь, что у кого-то здесь есть личный опыт тестирования всех периферийных устройств и инструкций чипов на сотнях образцов в полном диапазоне рабочих температур. Вот почему, когда вы заботитесь о надежности, вы полагаетесь на технические данные. Если надежность не является вашим основным требованием, вы уже знаете, что она работает., @Edgar Bonet

[OLIMEXINO-32U4](https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-32U4/) может быть перескочен на 5 В или 3,3 В и использует 16 МГц. [Руководство](https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-32U4/resources/OLIMEXINO-32U4.pdf) имеет более подробную информацию об этом на странице 14., @gone

Установите драйвер кристалла в положение full-swing и начальный прескалер в положение /8, а затем переключитесь в положение /2 в одном из разделов инициализации., @Ignacio Vazquez-Abrams

Включение способа использования внутренних часов (на частоте 8 МГц) ATmega328P действительно помогло бы! - что это значит? Вы хотите знать, как использовать внутренние часы на частоте 8 МГц или запустить их на частоте 16 МГц с помощью внутренних часов?, @Nick Gammon

Это не ответ на вопрос, больше похоже на решение проблемы (почему я комментирую), но есть модули lipo stepup, которые дают вам 5 вольт от батареи 3.3, достаточно для запуска arduino. Взгляните на это., @Magic-Mouse

@Magic-Mouse, спасибо, но повышение напряжения для меня не очень эффективно. Я использую пару прорывов, все они используют 3,3 В. Наращивать что-то, чтобы затем регулировать это, несколько глупо для моего проекта. Но все равно спасибо., @Dat Ha

@canadiancyborg дело было не в том, чтобы регулировать его вниз, но вам не нужно все увеличивать. Только подача на AT - чип., @Magic-Mouse

Какой тип Arduino вы использовали для 16 МГц и 3,3 В ?, @Frank H. Ritz


7 ответов


Лучший ответ:

9

Официально - нет. Практически, часто, но не всегда.

Если я буду следовать таблице данных до буквы, эта конфигурация не должна работать. НО..... После некоторых испытаний это действительно сработало.

В техническом паспорте не говорится, что он "не должен" работать, в нем говорится, что деталь не подходит для работы на частоте 16 МГц ниже некоторого напряжения выше, чем вы хотите использовать. Это не значит, что данный чип не может там работать, это только означает, что чип, который не работает, не может считаться "плохим". Неудача может быть полной и очевидной или незаметной.

На практике я видел, как это работает, как на небольших модифицированных импортных платах, так и на платах с переключаемым напряжением питания. Но я также помню, что видел, как это не сработало.

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

Обратите внимание, что при настройке ISP вы можете изменить предохранители, чтобы запустить чип на том, что было продано как внешняя кристаллическая плата 5 В, чтобы вместо этого работать от внутреннего генератора 8 МГц, и вы можете сделать это, даже оставляя кристалл на плате. Если вы также измените предохранитель детектора потемнения, вы можете еще больше снизить напряжение, например, для работы без регулятора непосредственно на двух элементах типа АА. Конечно, это относится и к самой ATmega - любые другие активные компоненты на плате также должны быть квалифицированы для предполагаемого напряжения.

,

3

Я построил несколько самодельных дуино 3,3 В с кристаллами 16 МГц (потому что у меня есть сумка с 50 xtals!)-Они прекрасно работают в тех условиях, в которых я их поставил до сих пор (на моем столе). Некоторые из них могут быть ближе к своим краям, чем другие, и могут выйти из строя, например, при какой-то другой специальной температуре. Если бы они предназначались для выхода наружу (разумеется, в закрытом помещении), мне пришлось бы проверить их на соответствие условиям, которым они могли бы подвергнуться. Или перепроектировать их, чтобы они в первую очередь соответствовали спецификациям.

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

,

4

Небольшой тест, не очень научный, но показывает, что он отлично работает на 3,3 В - https://www.youtube.com/watch?v=If0eOa0Uj5I.

Опять же, если вы хотите придерживаться спецификации, просто используйте "тактовый делитель/2" и запустите свой MCU на частоте 8 МГц, если у них есть кристалл 16 МГц:

clock_prescale_set(clock_div_2)

http://www.nongnu.org/avr-libc/user-manual/group__avr__power.html

,

Если вы установите это в программном обеспечении, то сначала потребуется загрузка на частоте 16 МГц. Если вы хотите использовать делитель часов, это кажется лучшим предложением, хотя я не могу сказать, что пробовал его: http://arduinoprosto.ru/q/5413/612, @Chris Stratton

Хороший момент, предохранитель устанавливает прескалер часов thw в clock_div_8, вы можете вернуть его в clock_div_2 в первой строке вашего кода. Не забывайте, что вам понадобится загрузчик с правильной скоростью, если вы планируете использовать загрузку кода через usb/serial., @Talk2


5

Согласно спецификации, вам нужно 3,78 В для работы на частоте 16 МГц, а 3,3 В не так уж и далеко. Например, я был бы удивлен, если бы он перестал работать при 3,77 В, потому что это означало бы, что работа при 3,78 В была предельной.

Я управлял этими чипами из спецификации, например, под напряжением или с кристаллом 24 МГц. Кажется, они работают. Однако я бы предположил, что позиция Atmel будет такой: если вы работаете по нашим спецификациям, не приходите к нам плакаться, если это ненадежно.

Несколько процентов из спецификации, вероятно, будут работать, а 3,3 В - это 87% от 3,78 В. Они пишут эти спецификации, чтобы учесть колебания в производственном процессе, и уверены, что все их чипы будут соответствовать им. Вероятно, многие чипы были бы сверх спецификации.


Включение способа использования внутренних часов (на частоте 8 МГц) ATmega328P действительно помогло бы!

Установите предохранители соответствующим образом. См. Engbedded Калькулятор предохранителей Atmel AVR®

Для ATmega328P это должен сделать низкий предохранитель 0xE2.


Причина, по которой я это делаю, заключается в том, что 5V / 16MHz Pro Minis из Китая намного дешевле, чем 3.3 / 8MHz.

Будьте осторожны, что дешевые клонированные платы могут быть изготовлены с "секундами"производителей.

,

Спасибо. Просто обратите внимание, что дешевая китайская плата, которая у меня есть, выглядит ТОЧНО так же, как оригиналы от sparkfun. все товарные знаки есть, и даже логотип oshw есть. я думаю, что они фальшивые, и если это так, то они все равно приложили много усилий., @Dat Ha


1

Я использую свой чип atmega328p с 3,3 вольтами, потому что я не хотел использовать делитель напряжения при питании NRF24L01, который является частью моей схемы. Поскольку у меня есть только кристаллы 16 МГц, и я не знаю, как снизить частоту до 8 МГц, я запустил свой проект с 3,3 В, и он отлично работает. Я запускаю этот код уже больше года, и у меня не было никаких проблем.

Код отлично работает даже при 2,8 В, работающем на частоте 16 МГц. При 2,65 В он перестает работать.

,

1

Вы можете использовать прескалер часов в сочетании с предохранителем CKDIV8 для работы с часами 8 МГц, но с использованием кристалла 16 МГц.

Подробности см. в разделе "CLKPR – Clock Prescale Register" в техническом паспорте (стр. 36 в моем техническом паспорте 07/2012).

В основном вы устанавливаете предохранитель CKDIV8 так, чтобы процессор работал на частоте 2 МГц после включения питания. Затем после запуска и запуска вы устанавливаете коэффициент деления на 2, что дает работу 8 МГц, которая гарантируется при 3,3 В.

,

1

График таблицы данных Atmega48/168/328 (в разделе "29,3: классы скорости") представляет максимальную безопасную тактовую частоту для заданного напряжения VDD. Он состоит из трех математических функций — 1 постоянной и 2 линейных. Мне удалось рассчитать их формулы и просуммировать:

формулы

где:

x — это напряжение VDD [В] и y — максимальная безопасная тактовая частота [МГц], которую можно достичь с этим напряжением. Я сделал это, потому что мне нужно было проверить, достаточно ли питания 3,3 В для кристалла 12 МГц - и это так (около 13,3 МГц макс.).

,