Запрограммируйте ATMega328P и используйте его без платы Arduino

13

Я хотел бы использовать ATMega328P для своего проекта, я надеюсь сделать это без платы Arduino.

Я знаю, что с помощью Arduino IDE и платы Arduino я могу программировать микроконтроллер. Тем не менее, возможно ли после того, как я запрограммировал и отладил программу с платой Arduino IDE + Arduino, чтобы отсоединить микроконтроллер от платы Arduino и использовать ATMega328P отдельно, без платы?

Если да, какие дополнительные конфигурации я должен сделать ATMega328P для корректной работы на макете?

Джордж
источник
Используйте ATMEGA328 P-PU с загрузчиком Arduino UNO .... вы можете найти его в хобби-магазинах, онлайн и
Артур
Использование голого чипа абсолютно выполнимо и никаких проблем.
Дэнниф
Это не тот же вопрос, что и у вас, но вы можете получить от него немного информации. arduino.stackexchange.com/questions/32970/…
Code Gorilla
Вы можете следить за ответами на этот вопрос
Rashedul Islam Emon

Ответы:

7

Вы можете удалить ATMEGA из Arduino и использовать его на своей собственной плате, однако при использовании на обычной плате Arduino микросхема будет объединена с внешним кристаллом в качестве источника тактовых импульсов, а не с (более простыми, но менее точными) внутренними часами.

Вы не можете изменить источник тактовой частоты через ISP, если только источник тактовой частоты, который чип ожидает в данный момент, не работает, поэтому, если вы хотите изменить выбор тактовой частоты, вы должны сделать это перед удалением чипа из Arduino.

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

Обычно чипы (даже те, которые предварительно загружены с помощью загрузчика для удобства) дешевле, чем платы, поэтому неясно, почему вы захотите перенести один и тот же чип с Arduino, а не использовать другой. В любом случае вам понадобится последовательный адаптер на логическом уровне USB, и, как только вы это сделаете, вы сможете приступить к разработке на голом чипе на вашей плате, даже если вы проводите первоначальное тестирование на Arduino. В крайнем случае, если у вас нет USB-конвертера, вы можете либо вынуть микросхему из платы Arduino и пропустить провода от ее D1 и D0, либо удерживать встроенную микросхему в состоянии сброса, чтобы позволить вам заимствовать эти последовательные линии без вмешательство.

Крис Страттон
источник
1
Моя идея - использовать только микроконтроллер без платы. Поскольку Arduino легко программировать, я подумал, что могу выбрать ATMega. Итак, у меня есть Arduino Uno, моя идея состоит в том, чтобы купить только одну ATMega, запрограммировать и отладить ее с помощью платы Uno. Тем не менее, я только что повторил, что если я отделю ATMega от Arduino, мне нужно будет добавить компоненты (кристалл, подтягивающие сопротивления ...). Не могли бы вы объяснить, что вы имеете в виду в последнем абзаце вашего поста? Есть ли простой способ программирования непосредственно ATMega (или любого другого микроконтроллера) без использования IDE Arduino? Благодарю.
Джордж
Несмотря на то, что вы можете пропустить среду IDE, ее использование или нет, по сути, не имеет отношения к сложности вашей схемы, поскольку вы можете использовать среду IDE или нет со схемой, которая имеет или не имеет внешних часов и либо использует USB-порт. серийный на вашей целевой плате, на кабеле, или программируя свой эскиз с программистом ISP. Снятие чипа с платы ничего не дает по сравнению с покупкой чипа с загрузчиком или без него и загрузкой его самостоятельно, потенциально используя ваш неповрежденный Arduino в качестве ISP-программиста, или с использованием ISP для прямой загрузки эскиза без загрузчика.
Крис Страттон
7

Да, вы можете использовать ATMega328Pбез платы Arduino. Я всегда использую IC без Arduino. Есть два способа сделать это.

  1. Вы можете использовать плату Arduino с IC. Запрограммируйте микросхему, затем извлеките ее и используйте в своей схеме. Вам придется использовать 16MHZ Oscillatorс конденсаторами.
  2. Если у вас нет платы Arduino, вы можете использовать другие программисты, как USBaspпрограммировать свои Atmega328p. В этом случае не используйте кнопку прямой загрузки, вместо этого используйте загрузку с использованием параметров программиста из меню «Файл». Не забудьте выбрать плату как Arduino Pro or Pro Mini (5v, 16mhz) With ATmega328и программист как USBasp.

ПРИМЕЧАНИЕ . Обратитесь к Atmega328p Pin Mapping и соответствующим образом запрограммируйте устройство. Наслаждайтесь!

Самолет
источник
2

Ищите «Построить Arduino» - вы найдете тонны практических статей о том, как это сделать. Вам нужно было бы иметь возможность паять соединения на печатной плате (и даже не в том случае, если вы хотите использовать макет без припоя), но это действительно просто. Вы даже можете сначала построить его и запрограммировать MCU на печатной плате, используя кабель FTDI. Я использую плату Arduino и макет без припоя, чтобы экспериментировать с незнакомыми деталями, но обычно я сразу же обращаюсь к плате ручной сборки, когда я знаком со всеми компонентами, которые я буду использовать.

Прототипирование на плате Arduino позволяет собрать кучу деталей и получить что-то работающее быстро, а если Arduino более способен, чем ваша конечная цель - например, Mega 2650 - вы можете временно игнорировать ограничения памяти и ввода / вывода меньшего устройства.

JRobert
источник
0

Довольно просто использовать автономный чип Arduino. Особенность чипа, используемого для официальных плат, состоит в том, что они объединены для использования более быстрого (и более точного) внешнего генератора, установленного на плате. Это применимо даже при покупке свободных чипов, поскольку большинство из них перепроданы с намерением установить их на плату Arduino вместо сгоревшей, за исключением, возможно, чипов Digikey.

Предостережения: Arduino разработан как макетная плата, и немногие вещи делают лучше, чем в этой задаче. Возможно, вы захотите оставить чип на плате Arduino, пока не закончите проектирование и тестирование вашей схемы. Только тогда вы подключите его напрямую. Его можно использовать на месте, если у вас есть схема синхронизации, или вы можете заменить предохранители (см. Позже) и перепрограммировать Arduino с помощью адаптера ISP и тактовой частотой 8 МГц (PlatformIO позволяет вам это делать ( и позволяет напрямую импорт эскиза Arduino) - проверьте их страницу документации для плагина Atmel AVR, но вы также можете найти несколько руководств о том, как добавить файл платы в Arduino, чтобы указать ему использовать опцию 8 МГц для чистого чипа)

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

Программирование автономного чипа: ЦП Arduino изначально не предназначен для общения с компьютером. Вам нужен посредник. На Uno это делается с помощью второго чипа Atmel с поддержкой USB и загрузчика на основном чипе. То, что это делает, - то, что это использует UART для загрузки программы, в то время как чип USB преобразовывает сообщения ПК в сигналы UART. Поскольку загрузчик является некоторой болью, когда чип сам по себе (поскольку UART требователен и его установка настраивает чип на использование внешних часов в результате), вам нужно купить ISP-программатор для Arduino (или следуйте эскизу Arduino-as-ISP и инструкциям, чтобы создать свой собственный, который требует Arduino с чипом, так что вам потребуется секунда для программирования).

Они могут программировать ATMega 328 непосредственно через SPI, без загрузчика (в Интернете есть много инструкций; например, поиск «запрограммировать ATMega 328P без USBAsp»). Это значительно упрощает изменение и отладку вашей программы, за исключением того, что вы вытащили чип и вернулись на исходную плату Arduino. Вам также нужно изменить настройки часов, если вы не хотите использовать внешний кристалл.

Если вы хотите отладить чип, полезно также приобрести адаптер FTDI или другой конвертер USB-UART. Обратите внимание, что без части схемы сброса платы (или, опять же, добавления вашей собственной) это все равно не позволит вам программировать ATMega даже с помощью загрузчика. Для этого подключите контакты заземления, RX и TX к адаптеру. Вы можете или не можете подключать линию VCC, но рекомендуется этого не делать, если к микросхеме подключено множество устройств и / или у них есть собственный источник питания. Обратите внимание, что RX и TX необходимо поменять местами при их подключении; то есть, RX к TX и TX к RX - вы хотите, чтобы микросхема RX (принимала) то, что адаптер передает (TX) (передает), и наоборот.

Схема синхронизации не сложна, но требует нескольких компонентов, которых у вас может не быть. Итак, чтобы изменить источник синхронизации , перейдите по адресу http://www.engbedded.com/fusecalc/ и выберите ATMega 328P. Значения по умолчанию хорошие, но вы можете включить сохранение EEPROM и отключить деление тактовых импульсов на 8 или настроить параметры отключения. Больше ничего не трогайте (отключение сброса или SPI или включение DebugWire приводят к «веселью», которое требуется программисту HV). Когда закончите, вставьте команду, которую это предоставляет к команде AVRDude. Вам нужно будет изменить опции -c (-p уже настроен на ATMega 328P, но не для не-P 328s - не покупайте их) и, возможно, добавить опцию -P (для порта). Не пропускайте опцию -u в нижнем регистре, иначе будет отказано в обновлении предохранителей.

avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]

Обратите внимание, что если вы покупаете USBASP (убедитесь, что у него три набора перемычек!), Несмотря на то, что они мои любимые программисты, у них может не быть обновленной прошивки, поддерживающей опцию -B (которая вам, вероятно, понадобится). Это означает, что вам нужно подключить его к Arduino через порт программирования с шестью контактами, точно так же, как вы будете использовать его для программирования загрузчика Arduino, но затем использовать эскиз Arduino-as-ISP для программирования нового прошивку для программиста (поиск "обновить прошивку usbasp через arduino-as-isp")! Для справки, это обычно означает, что кабель направлен в сторону от корпуса платы, и вам, вероятно, придется программировать эскиз передподключение кабеля. Также включите перемычку питания от программатора на USBASP (5 В) и самопрограммирующуюся. (см. https://forum.arduino.cc/index.php?topic=560719.0 расположение перемычек питания и программ (JP2)).

RDragonrydr
источник