Как преобразовать Arduino в проект на базе ATmega328P?
На самом деле я новичок в ардуино и хочу делать встроенные системы в качестве своего хобби,пожалуйста, извините меня, если это глупое уточнение,
Позвольте мне кратко рассказать вам о вопросе, который я задал: у меня есть плата Arduino, где я использую некоторые периферийные устройства, такие как ЖК-дисплей с i2c.
Теперь я хочу преобразовать эту схему на основе Arduino в схему на основе atmega328p, то есть atmega328p с ЖК-дисплеем и i2c
Вот мой актуальный вопрос: могу ли я использовать тот же скетч(двоичный файл), который я скомпилировал и загрузил для платы Arduino для atmega328p? Или мне нужно написать код c на основе atmega328p все вместе?
@Mahadev Panchal, 👍6
5 ответов
Не могу писать в комментариях. Если вы хотите использовать только необработанный atmega328p, вы можете использовать Arduino в качестве скетча ISP, а затем загрузить существующий скетч на новый чип. Я использую его для программирования чипов ATtiny 85 для небольших автономных проектов. Вот ссылка на сайт Arduino, которая подробно объясняет это.
Скомпилированный скетч будет отлично работать на голом ATmega328P, если есть все необходимые окружающие компоненты и если у вас есть способ его запрограммировать.
Это может быть так же просто,как поставить чип на Uno и запрограммировать его там. Не делайте этого слишком часто, розетка для этого не предназначена. Однако вы могли бы получить 28-контактный разъем ZIF.
Есть несколько вещей, которые следует учитывать:
- Голый чип нуждается во внешних компонентах, таких как кристалл и т. Д. чтобы функционировать; вы можете проверить схему Uno, чтобы увидеть, что вы хотите скопировать на свою печатную плату/макет;
- Возможно, вы захотите включить способ программирования ATmega328P в схему с помощью ISP или чипа USB-to-serial;
- Выводы будут разными, незначительное раздражение;
- Возможно, то, что я забыл.
На сайте Arduino есть инструкция, а также описание того, как построить "целый" Arduino на макете.
Да, вы можете использовать один и тот же скетч, а также один и тот же шестнадцатеричный файл. Хотя загрузка зависит от вашей фактической настройки. Если вы включаете USB-мост UART, как у Arduino, то вы можете загрузить его через USB (при условии, что вы сожгли загрузчик на Atmega328p). В противном случае вы можете использовать свой Arduino в качестве программатора ISP и записать свой скетч на Atmega через него. Google для Arduino в качестве ISP для получения дополнительной информации
У Arduino уже есть чип 328p на плате, но с загрузчиком и кристаллом 16 МГц.
Если вы используете только чип, вам нужно создать плату, подобную arduino. Или вы можете расширить IDE с помощью этой библиотеки плат: https://github.com/MCUdude/MiniCore
Таким образом, вы все еще можете использовать тот же скетч, но удалить кристалл, например.
Я уже строил печатные платы с автономным чипом ATmega328P на них для ситуаций, когда я хотел, чтобы вся моя электроника была встроена в одну плату. Это может быть отличный опыт обучения имо.
Я бы предложил сначала создать схему и реализовать ее на макете с DIP-пакетами, как показано на фотографии. Вам понадобится кристалл, загрузочные колпачки (22 пФ), а также байпасные колпачки (100нФ) и подтягивающие резисторы. Плюс любые другие компоненты, необходимые вашему приложению.
После этого обычно вы записываете загрузчик на чип, чтобы его можно было запрограммировать с помощью Arduino IDE.
Ник Гэммон предоставил отличный учебник по всему этому. Его статья была моим главным ресурсом, когда я делал свои печатные платы: http://www.gammon.com.au/breadboard
Как только вы получите все, что работает на макете, вы можете подумать о том, чтобы выложить печатную плату для более постоянного решения. Желаю удачи!
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
- Не удается снова загрузиться после смены платы
- Генерация стабильной частоты
- В чем разница между ATMEGA32 и ATMEGA328?
- Arduino UNO для получения подписи чипа ATmega328P-PU
- Последовательная связь ESP8266 с ATMega328P
- Каково время нарастания выходного вывода atmega328, изменяющего свое состояние?
- Нужна помощь в программировании ардуино на ассемблере
Большое вам спасибо!, @Mahadev Panchal
Мы вам очень рады. Пожалуйста, примите ответ (если вы его принимаете), чтобы вопрос не оставался открытым., @ocrdu