Я хотел бы использовать ATMega328P для своего проекта, я надеюсь сделать это без платы Arduino.
Я знаю, что с помощью Arduino IDE и платы Arduino я могу программировать микроконтроллер. Тем не менее, возможно ли после того, как я запрограммировал и отладил программу с платой Arduino IDE + Arduino, чтобы отсоединить микроконтроллер от платы Arduino и использовать ATMega328P отдельно, без платы?
Если да, какие дополнительные конфигурации я должен сделать ATMega328P для корректной работы на макете?
arduino-ide
atmega328
Джордж
источник
источник
Ответы:
Вы можете удалить ATMEGA из Arduino и использовать его на своей собственной плате, однако при использовании на обычной плате Arduino микросхема будет объединена с внешним кристаллом в качестве источника тактовых импульсов, а не с (более простыми, но менее точными) внутренними часами.
Вы не можете изменить источник тактовой частоты через ISP, если только источник тактовой частоты, который чип ожидает в данный момент, не работает, поэтому, если вы хотите изменить выбор тактовой частоты, вы должны сделать это перед удалением чипа из Arduino.
Тем не менее, вы также можете установить на вашей внешней плате тактовый кристалл и два его конденсатора (или запасной резонатор, в который он часто встроен).
Обычно чипы (даже те, которые предварительно загружены с помощью загрузчика для удобства) дешевле, чем платы, поэтому неясно, почему вы захотите перенести один и тот же чип с Arduino, а не использовать другой. В любом случае вам понадобится последовательный адаптер на логическом уровне USB, и, как только вы это сделаете, вы сможете приступить к разработке на голом чипе на вашей плате, даже если вы проводите первоначальное тестирование на Arduino. В крайнем случае, если у вас нет USB-конвертера, вы можете либо вынуть микросхему из платы Arduino и пропустить провода от ее D1 и D0, либо удерживать встроенную микросхему в состоянии сброса, чтобы позволить вам заимствовать эти последовательные линии без вмешательство.
источник
Да, вы можете использовать
ATMega328P
без платы Arduino. Я всегда использую IC без Arduino. Есть два способа сделать это.16MHZ Oscillator
с конденсаторами.USBasp
программировать своиAtmega328p
. В этом случае не используйте кнопку прямой загрузки, вместо этого используйте загрузку с использованием параметров программиста из меню «Файл». Не забудьте выбрать плату какArduino Pro or Pro Mini (5v, 16mhz) With ATmega328
и программист какUSBasp
.ПРИМЕЧАНИЕ . Обратитесь к Atmega328p Pin Mapping и соответствующим образом запрограммируйте устройство. Наслаждайтесь!
источник
Ищите «Построить Arduino» - вы найдете тонны практических статей о том, как это сделать. Вам нужно было бы иметь возможность паять соединения на печатной плате (и даже не в том случае, если вы хотите использовать макет без припоя), но это действительно просто. Вы даже можете сначала построить его и запрограммировать MCU на печатной плате, используя кабель FTDI. Я использую плату Arduino и макет без припоя, чтобы экспериментировать с незнакомыми деталями, но обычно я сразу же обращаюсь к плате ручной сборки, когда я знаком со всеми компонентами, которые я буду использовать.
Прототипирование на плате Arduino позволяет собрать кучу деталей и получить что-то работающее быстро, а если Arduino более способен, чем ваша конечная цель - например, Mega 2650 - вы можете временно игнорировать ограничения памяти и ввода / вывода меньшего устройства.
источник
Довольно просто использовать автономный чип 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 в нижнем регистре, иначе будет отказано в обновлении предохранителей.
Обратите внимание, что если вы покупаете USBASP (убедитесь, что у него три набора перемычек!), Несмотря на то, что они мои любимые программисты, у них может не быть обновленной прошивки, поддерживающей опцию -B (которая вам, вероятно, понадобится). Это означает, что вам нужно подключить его к Arduino через порт программирования с шестью контактами, точно так же, как вы будете использовать его для программирования загрузчика Arduino, но затем использовать эскиз Arduino-as-ISP для программирования нового прошивку для программиста (поиск "обновить прошивку usbasp через arduino-as-isp")! Для справки, это обычно означает, что кабель направлен в сторону от корпуса платы, и вам, вероятно, придется программировать эскиз передподключение кабеля. Также включите перемычку питания от программатора на USBASP (5 В) и самопрограммирующуюся. (см. https://forum.arduino.cc/index.php?topic=560719.0 расположение перемычек питания и программ (JP2)).
источник