Довольно просто использовать автономный чип 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)).