Оглавление:

Atmega328p Companion: 6 шагов (с изображениями)
Atmega328p Companion: 6 шагов (с изображениями)

Видео: Atmega328p Companion: 6 шагов (с изображениями)

Видео: Atmega328p Companion: 6 шагов (с изображениями)
Видео: Как выбирать шаг цепи 0,325 или 3/8 \ How to choose chain pitch 2024, Ноябрь
Anonim
Atmega328p Companion
Atmega328p Companion

ATMEGA328P Companion: модуль загрузчика и программатора

Если вы похожи на меня, вы увлекаетесь проектами и Arduino. Однако, если вы выполнили ряд проектов с Arduino в качестве мозга, вы, вероятно, начали уставать смотреть на плату Arduino в целом, загромождая свой проект и в целом просто плохо выглядя. Таким образом, я решил, что хочу перейти от плат Arduino к использованию только IC.

Введите atmega328p.

Atmega328p, вероятно, является самой распространенной ИС, совместимой с Arduino, на рынке. Это ни в коем случае не самый дешевый или самый мощный, однако, если принять во внимание оба этих фактора, на мой взгляд, это лучшая производительность на доллар. Итак, готовы ли вы начать делать свои проекты более профессиональными и менее похожими на конгломерат готовых модулей? Если да, прочтите это руководство, и вы получите необходимую информацию для создания собственного модуля, который позволит вам установить загрузчик на целевой atmega328p, загрузить скетч мерцания, чтобы убедиться, что все работает, и, наконец, загрузите свои собственные скетчи. для ваших индивидуальных проектов.

Шаг 1. Спецификация и инструменты

Перво-наперво, это руководство не будет пошаговым руководством по сборке, но вместо этого я предполагаю, что вы знаете, как читать схему, и можете перевести ее на плату. Имея это в виду, вот необходимые материалы и инструменты:

Материалы:

  • 1x 40x60 мм макетная плата или печатная плата
  • 1x 6-контактный штекер (я использовал прямоугольные штекеры)
  • 2x 14-контактный женский заголовок
  • 1x 6pin женский заголовок
  • 1x 2pin женский заголовок
  • Конденсатор 2x 22pF (22)
  • 1x 0,1 мкФ конденсатор (104)
  • 1x резистор 10 кОм
  • 2 резистора 330 Ом
  • 1x светодиод (любой цвет для индикатора питания - 3мм для дизайна на печатной плате)
  • 1x светодиод (любой цвет для цифрового пина 13 для эскиза мигания - 3 мм для дизайна печатной платы)
  • 1x кристалл 16 МГц
  • 1x ползунковый переключатель
  • 1x кнопка мгновенного действия

Инструменты:

  • Ардуино Уно
  • Паяльник
  • 6x перемычки M-M
  • Программист FTDI
  • USB-кабель, соответствующий вашему программатору FTDI
  • IDE Arduino

Шаг 2: Схема / Макет

Схема / Макет
Схема / Макет
Схема / Макет
Схема / Макет

К этому шагу прикреплены файлы Eagle, которые я использовал. Вы можете изменять их и изменять, как вам заблагорассудится. Однако я спроектировал плату так, чтобы все дорожки находились на нижнем слое, чтобы ее было легко изготовить на фабрике для печатных плат (если у вас есть доступ к таковой) с односторонней платой. Он также находится снизу, поэтому компоненты легко спаять вместе.

Однако, если вам нужна печатная плата, просто запустите CAM, чтобы получить необходимые файлы gerber для вашего любимого производителя. Мне нравится OSH Park, потому что вы просто даете им файл платы, и они запускают необходимые CAM для получения нужных файлов.

Шаг 3: пайка

Пайка
Пайка
Пайка
Пайка

Итак, есть три способа сделать эту доску:

  • Заполнение печатной платы
  • Заполнение фрезерованной доски
  • Заполнение прототипной платы

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

Заполнение фрезерованной платы также не должно быть слишком сложным, поскольку она моделируется точно так же, как и печатная плата, за исключением того, что у вас нет маркировки, поэтому следите за файлом платы в Eagle, чтобы убедиться, что вы размещаете вещи. в нужном месте (особенно полярность светодиодов).

Наконец, заполнение прототипной платы является наиболее трудоемким, однако это не так уж сложно. На этом этапе у меня есть несколько изображений, показывающих мою версию прототипа и то, как я все подхожу. Обратите внимание, что LM7805, два конденсатора 4,7 мкФ и винтовые клеммы не будут на вашей плате. Я обдумывал идею, что у этого есть возможность внешнего питания, но как только я начал думать об этом, я решил, что в конечном итоге это пустая трата места на плате.

Шаг 4: загрузка

Загрузочная загрузка
Загрузочная загрузка

Настройка загрузочной загрузки Arduino:

Вот где вам понадобится другой Arduino. Сначала зайдите сюда и скачайте файлы у этого парня. На данный момент файлам несколько лет, но они все еще отлично работают. После того, как вы их загрузили, откройте optiLoader.ino, и ваша среда разработки Arduino должна предложить вам поместить его в папку. Сделайте это, а затем поместите файл optiLoader.h в папку с расширением.ino. Теперь вы готовы загрузить этот скетч в загрузочную систему Arduino. Я использовал Arduino Uno, поэтому знаю, что он работает с этим, но уверен, что он будет работать и с другими платами.

После того, как вы загрузили optiLoader.ino на свой Arduino, все готово для загрузки множества различных чипов Arduino. Я сделал это только с atmega328p, однако код настроен для обнаружения целевого MCU и прошивки правильного загрузчика, что довольно приятно. Итак, теперь, когда вы подключаете этот Arduino к плате Atmega Companion с установленным чипом и включаете его, он автоматически обнаруживает, что целью является atmega328p, и автоматически запускает соответствующий загрузчик. Никаких скачков сброса, никаких странностей; просто подключи и играй.

Подключение загрузчика к сопутствующей плате:

[Загрузчик Arduino] [Сопутствующая плата Atmega328p]

  • D10 Сброс / контакт 1
  • D11 MOSI / контакт 17
  • D12 MISO / контакт 18
  • D13 SCK / контакт 19
  • 5V Vcc / контакт 20 или 21
  • GND Gnd / контакт 22

Контакты относятся к ножкам самой ИС. Если это сбивает с толку, посмотрите на изображение платы из шага схемы / компоновки, так как контакты на сопутствующей плате помечены.

Прошивка загрузчика:

Теперь, когда у вас настроен загрузчик Arduino с эскизом optiLoader.ino, и он также подключен к вашей сопутствующей плате, убедитесь, что переключатель сопутствующей платы установлен в положение «загрузка», а не «загрузка», а затем подключите свой Ардуино к компьютеру. Вы должны увидеть, как индикаторы на Arduino и Companion Board несколько раз мигнут. Через несколько секунд оба должны погаснуть и больше не мигать. Это, вероятно, означает, что он успешно прошил вашу микросхему atmega328p с помощью загрузчика. Чтобы убедиться, что все прошло хорошо, подключите его к компьютеру и откройте Arduino IDE, а затем последовательный монитор. Измените скорость передачи данных на 19200. Затем, если он не перезапустится автоматически, нажмите кнопку сброса на вашем Arduino. Вы должны увидеть текст, описывающий, что делает скрипт. В конце концов, он не должен содержать сообщений об ошибках и должен сообщать вам, что процесс завершен.

Если вы все же получаете сообщение об ошибке, проверьте свой переключатель и убедитесь, что вы находитесь в режиме «загрузки». Если вы все еще получаете ошибки на этом этапе, проверьте всю проводку и убедитесь, что она правильная.

Шаг 5. Загрузка

Загрузка
Загрузка

Это простой шаг.

Отсоедините все провода от предыдущего шага и переведите переключатель с «bootload» на «upload». Подключите свой модуль FTDI. Мне нравятся Adafruit CP2104 и SparkFun CH340G главным образом потому, что они относительно дешевы, а их распиновка соответствует выводам FTDI на сопутствующей плате.

Как только вы подключите свой FTDI к сопутствующей плате, продолжайте и подключите его к компьютеру. Оттуда загрузите пример скетча мигания, чтобы убедиться, что загрузчик был прошит правильно. Выберите Arduino / Genuino Uno в меню плат. После загрузки скетча мигания вы должны увидеть мигание светодиода, как и ожидалось. Если это сработает, то вы готовы загружать свои собственные эскизы в ИС, как и с любым другим Arduino.

Шаг 6: Дальнейшая работа

В будущем я планирую превратить это в щит Arduino Uno. Это не займет много времени, и, если люди захотят, я также могу загрузить сюда файлы Eagle. Это упростило бы этап загрузки, так как вам не нужно было бы беспокоиться о его неправильном подключении. Я также открыт для других предложений по улучшению, однако я не подозреваю, что буду делать намного больше с этим, поскольку это был просто необходимый шаг в подготовке моих будущих проектов.

Если вы хотите увидеть больше моих будущих проектов, дайте мне знать, и я постараюсь держать сообщество в курсе.

Рекомендуемые: