Программы для программирования микроконтроллеров avr

Обновлено: 05.07.2024

Недорогие микроконтроллеры пережили возрождение благодаря Интернету вещей (IoT) и носимым устройствам. Это конечное использование зависит от деталей, которые имеют низкую стоимость, а не рекордную скорость. Благодаря этому такие устройства, как серия Atmel AVR, пользуются популярностью десятилетиями.

Любое программное обеспечение, которое мы разрабатываем для этих устройств, в конечном итоге должно превратиться из абстрактной идеи в программное обеспечение, хранящееся во флэш-памяти устройства. Это пошаговое руководство сделает именно это с помощью программы под названием Atmel Studio 7.

Уведомление о неаффилированности и отказе от ответственности. На момент публикации мы не являемся аффилированными, связанными, авторизованными, одобренными, получающими компенсацию или каким-либо образом официально связанными с Microchip Technology Inc., Arduino, Microsoft или их владельцы, дочерние компании или филиалы.

Названия Microchip Technology Inc., Arduino и Microsoft, а также связанные названия, знаки, эмблемы и изображения являются товарными знаками соответствующих владельцев.

Внешние ссылки. Ссылки на внешние веб-страницы предоставлены для удобства и только в информационных целях. Unboxing Tomorrow и Voxidyne Media не несут ответственности за точность, законность или содержание внешнего сайта или последующих ссылок. Свяжитесь с внешним сайтом, чтобы получить ответы на вопросы, касающиеся его содержания.


Поскольку микросхема поставляется в пустом состоянии, нам нужно загрузить приложение Atmel Studio 7 на ноутбук, а затем написать программу на языке C, которая будет мигать тестовым светодиодом на печатной плате. Кроме того, мы будем использовать аппаратное устройство программирования для выполнения внутрисистемного программирования (ISP) на чипе.

Пока цели на сегодня просты:

  1. Загрузить Atmel Studio 7
  2. Напишите программу на языке C, которая будет мигать тестовым светодиодом на пользовательской печатной плате.
  3. Используйте ISP Programmer, чтобы загрузить программу C с ноутбука на настоящий чип.

Приведенная ниже схема представляет собой упрощенную версию пользовательской печатной платы. Наш код будет загружен через 6-контактный разъем ISP, где он в конечном итоге будет мигать светодиодом, подключенным к контакту 4 порта B (PB4).


Рисунок 2. Упрощенный чертеж пользовательской доски

Как обычно, я рекомендую выполнять любые сборочные работы на антистатическом рабочем месте, если это возможно.

  • Компьютер с Windows 10
  • ATTiny2313 (или другой микроконтроллер AVR)
  • Программатор Microchip/Atmel AVRISP mkII или аналогичный ISP с соответствующим кабелем USB

Программирующее устройство интернет-провайдера

Это руководство посвящено Atmel/Microchip AVRISP mkII (также называемому AVRISP «mark 2»). Но я должен отметить, что это более старое устройство, которое трудно найти по состоянию на 2020 год. Но вы можете найти более новые устройства ISP от Microchip, которые работают очень похоже на AVRISP mkII.

Мы также будем устанавливать программу от Microchip под названием Atmel Studio 7. Хотя для программирования микроконтроллеров AVR доступно другое программное обеспечение, Atmel Studio 7 является официальной интегрированной средой разработки (IDE).

  • (Мы установим) Atmel Studio 7
  • (Рекомендуется) Антивредоносное ПО

Создайте резервную копию ваших данных

Перед началом работы необходимо создать резервную копию всех важных данных на вашем ноутбуке или настольном компьютере.

Микроконтроллер будет удален

Эта процедура сотрет и заменит все программы или загрузчики, уже сохраненные на вашем микроконтроллере Atmel AVR. Замена этих вещей — сложный процесс.

  • Не выполняйте описанную ниже процедуру, если микроконтроллер Atmel является частью комплекта разработки, например Arduino. Если вы это сделаете, вы сотрете загрузчик, и ваш комплект не будет работать.

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

Я скачаю веб-установщик с официального сайта…

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

Перед установкой следует ознакомиться с лицензионным соглашением с конечным пользователем и каталогом установки. Просмотрев их, нажмите «Далее».

Далее вам будет предложено выбрать одну из следующих архитектур:

Далее вас спросят об Atmel Software Framework (ASF) и примерах проектов. В этом руководстве ASF необязателен, но я все равно его установлю.

Прежде чем пытаться установить что-либо, программа установки проверит наличие всего, что может помешать. Это включает в себя любые обновления Windows, которые уже выполняются. Если вы видите что-либо, кроме галочек, вам необходимо решить проблему, прежде чем вы сможете продолжить. Следуйте инструкциям на экране, как это сделать.

Если все в порядке, нажмите "Далее".

Далее программа установки покажет все специальные советы, которые могут помочь при установке.

Нажмите «Далее», и начнется установка. Принимайте любые предупреждения системы безопасности от Windows, если они не выглядят подозрительно.

Система автоматически перейдет от установки Atmel Studio к установке изолированной оболочки Microsoft Visual Studio. Но оставайтесь рядом, чтобы следить за ним на случай, если вас попросят одобрить что-либо.

Через несколько минут установка должна завершиться. Убедитесь, что флажок «Запустить Atmel Studio 7.0» установлен (☑), чтобы вы могли запустить его немедленно.

Теперь, когда Atmel Studio 7 установлена, запустите ее.

Создать новый проект

Сначала создайте новый проект, щелкнув метку "Новый проект" на стартовой странице. Если стартовая страница не видна, вы можете вместо этого перейти в «Файл» -> «Новый проект».

Настало время выбрать язык программирования. В этом проекте будет использоваться язык программирования C, поэтому выберите GNU Compiler Collection C (GCC C). Сначала выберите C/C++ в верхнем левом углу. Затем выберите «Исполняемый проект GCC C».

Прежде чем нажать «ОК», вы можете переименовать свой проект или изменить местоположение. Сегодня я приму имя по умолчанию «GccApplication1».

Я также рекомендую установить флажок «Создать каталог для решения» (☑). Когда будете готовы, нажмите "ОК".

Далее вам будет предложено выбрать конкретное устройство Atmel. Это длинный список, поэтому вы можете воспользоваться поисковым фильтром в правом верхнем углу, чтобы ввести часть артикула устройства.

Я использую ATtiny2313, поэтому я выберу его.

Написание кода Main.c

Atmel Studio 7 заполнит поле редактора очень простой функцией main()…

Сейчас самое время просмотреть упрощенную схему…

Сейчас важны только 3 вещи:

  • Компиляция тестовой программы для мигания светодиодом (с именем OUTPUT_RUN_ID)
  • Подключение к коннектору для программирования
  • Убедиться, что Atmel Studio 7 может обмениваться данными с ATTiny2313
  • Загрузка программы

Начнем с написания кода main.c…

Пояснение кода

Любой текст, расположенный справа от «//», является комментарием. Комментарии необязательны, но полезны для нашей собственной документации.

… Поскольку светодиод подключен к 4-му биту порта B, эта строка присваивает константе с именем «OUTPUT_RUN_ID» десятичное значение 4.

…Эта строка определяет тактовую частоту ATTiny2313 в мегагерцах (МГц). По умолчанию ATTiny2313 содержит внутренний источник тактовой частоты 8 МГц. Этот сигнал 8 МГц будет внутренне разделен на 8 для конечного значения 1 МГц. Вы можете отключить функцию разделить на 8, если хотите, но я пока оставлю ее.

Часть «UL» является сокращением от «Unsigned Long» целого числа.

…Это директивы прекомпилятора, которые ссылаются на файлы заголовков, входящие в состав Atmel Studio 7.

… Эта строка кода установит 4-й контакт порта B с входа на выход. Здесь DDRB является сокращением от «Регистр направления данных B». Поскольку OUTPUT_RUN_ID ранее был установлен равным 4, « й бит DDRB должен быть установлен в 1. Если вам интересно, откуда я взял имя «DDRB», оно взято из официального описания Microchip для ATTiny2313.

…Эта команда установит контакт 4 порта B на +5 В (логическая = 1). Операция «|=» делает это, используя побитовое ИЛИ предыдущего состояния порта B.

_delay_ms(500); // Удерживать прибл. 500 мс

…Эта строка приостановит программу примерно на 500 миллисекунд (мс).

…Эта линия очистит контакт 4 порта B до 0 вольт (логический = 0). Операция «&=» делает это, используя побитовое И предыдущего состояния порта B. Символ «~» выполняет побитовую инверсию двоичного значения для 4.

Создание кода

Мы можем создать код, перейдя к: Build à Build Solution.

Вы можете думать о ISP Programmer как о мосте между ноутбуком и микроконтроллером ATTiny2313…

Вот как все это выглядит на верстаке…

Чтобы загрузить программу, вашему провайдеру потребуется 6 проводов, подключенных к вашему ATTiny2313…

  • VTG (обычно это от +2,7 до +5 вольт)
  • Земля (земля)
  • МОСИ
  • МИСО
  • СКК
  • РСТ

Вы можете посмотреть, как эти провода подключены к микроконтроллеру ATTiny2313 на рисунке 16 выше.

Подключив все 6 сигналов программирования к ATTiny2313, все, что нам нужно сделать, это:

  1. Подключите USB-порт ISP Programmer к ноутбуку/рабочему столу.
  2. Включите специальную печатную плату (которая будет питать ATTiny2313)
  3. Загрузите нашу программу на C с помощью ISP Programmer

После кодирования и подключения пришло время загрузить программу, которую мы только что сделали. Подключите ISP Programmer к USB-порту вашего компьютера, если вы еще этого не сделали, и убедитесь, что ваш ATTiny2313 получает питание.

Вернувшись в Atmel Studio 7, перейдите к параметрам панели инструментов устройства и отладчика. Это был значок в виде молота с ярлыком по умолчанию "Нет включено".

Щелкнув эту область, вы откроете диалоговое окно отладчика (устройство программирования).

Сначала выберите свое устройство в качестве "Выбранного отладчика/программатора". Если вы не видите его в списке, сохраните свой проект, перезапустите Atmel Studio 7 и попробуйте найти его снова.

Во-вторых, выберите Интерфейс = ISP.

Наконец, попробуйте следующие настройки:

  • Частота интернет-провайдера = 125 кГц или ниже
  • Настройки программирования = Стереть весь чип
  • Сохранить EEPROM = отмечено ☑
  • Держать таймеры в режиме остановки = флажок установлен ☑
  • Кэшировать всю флеш-память, кроме = отмеченного ☑ и пустого поля

Когда закончите, нажмите на вкладку main.c вверху, чтобы вернуться к исходному коду.

Отсюда самый простой способ загрузить код — запустить отладку, нажав кнопку воспроизведения (▶).

Через несколько секунд ваш светодиод должен мигать с частотой 1 Гц!

Если ваш код не работает, перейдите в Инструменты -> Программирование устройства. Откроется диалоговое окно «Программирование устройства».

В окне "Программирование устройства" вы должны снова нажимать "Применить", "Читать" и "Читать" без каких-либо ошибок.

Неправильное подключение (в том числе вращение или зеркальное отображение разъема) является распространенным источником проблем. Если вы можете нажать кнопку «Применить» без ошибки, это означает, что вы можете, по крайней мере, связаться с устройством ISP Programmer, что является половиной дела.

В качестве примечания: Диспетчер устройств Windows должен отображать вашего интернет-провайдера в категории «Инструменты Microchip».

Для меня распространенной ошибкой является подключение 6-контактного разъема наоборот. К счастью, AVRISP mkII прощает такого рода ошибки и не пострадал. Но вы должны каждый раз перепроверять все 6 проводных соединений программирования.

Если вы можете прочитать идентификатор устройства после настройки проводки, вы готовы повторить отладку.

Из-за этого и низкой стоимости серия остается актуальной сегодня, поэтому я выбрал ее здесь в 2020 году. Любители, профессионалы и преподаватели широко используют эти устройства, даже после того, как Atmel был приобретен бывшим конкурентом. Технология микросхем. Таким образом, вы определенно можете ожидать, что в будущем вы увидите больше устройств, подобных этому.


Начало программирования микроконтроллера AVR в первый раз кажется довольно сложным. Возможно, вы уже искали в Google и нашли длинные описания, рассказывающие вам о различных программистах, IDE и обо всем этом. Некоторые инструменты могут стоить вам даже сотни долларов. Я имею в виду, для начала, вы не хотите тратить такую ​​сумму денег! Я помню, как просматривал десятки видео и блогов на Youtube, скачивал дерьмовое программное обеспечение, и тот первый светодиод на моей ATmega32A до сих пор не мигает.

Мне потребовалась почти неделя проб и ошибок, чтобы, наконец, найти самые дешевые и работающие инструменты для запуска и запуска моего первого проекта микроконтроллера AVR. Здесь я систематизировал то, что нашел.

Что вам действительно нужно?

Существует два типа инструментов, необходимых для программирования микроконтроллера AVR.

  • Оборудование
    • Микроконтроллер
    • Программист
    • IDE
    • Программное обеспечение для программирования
    • Драйвер для программатора

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

    Оборудование

    Микроконтроллер

    Микроконтроллер — это мозг всего вашего проекта. Замена микроконтроллера посреди проекта станет кошмаром. Итак, не забудьте выбрать правильный в качестве первого шага программирования. Есть несколько основных моментов, которые следует учитывать при выборе микроконтроллера для своего проекта.

    Первое, на что следует обратить внимание, — это количество контактов ввода-вывода. Если ваш проект прост и требует меньше входов и выходов, выберите микроконтроллеры AVR с меньшим количеством контактов ввода-вывода, поскольку они меньше и с ними проще обращаться. Но убедитесь, что выбранный вами микроконтроллер имеет несколько дополнительных контактов ввода-вывода, чтобы ваш проект имел возможность расширяться в случае необходимости, например, если вы хотите добавить дополнительную кнопку!

    Также убедитесь, что у вас достаточное количество выводов ШИМ, необходимых для вашего проекта. Выводы PWM используются для вывода аналоговых уровней напряжения для управления такими аспектами, как скорость двигателя. В микроконтроллерах AVR эти выводы называются OCxA/OCxB (x=1,2. ). Получите распиновку микроконтроллера и посмотрите, достаточно ли их в нем.

    Еще один тип выводов, который следует учитывать, — это количество выводов аналогового входа. Несмотря на то, что все контакты ввода-вывода на микроконтроллере могут считывать и записывать цифровые входы и выходы, только определенное количество контактов имеет АЦП (аналогово-цифровое преобразование) для чтения аналоговых входов. Таким образом, в зависимости от количества аналоговых датчиков, которые вы используете в своем проекте, ваш выбор микроконтроллера должен различаться.


    Распиновка ATmega328P

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

    Есть много других факторов, которые следует учитывать, но для начала эти два фактора помогут вам выбрать правильный микроконтроллер для вашего проекта. ATmega328P, который является мозгом Arduino UNO, и ATmega16/ATmega32 отлично подходят для начала!

    Для получения дополнительной помощи по выбору правильного микроконтроллера AVR для вашего проекта перейдите по этой ссылке в сравнительную таблицу.

    Программист

    Вы пишете код на своем компьютере. Но у вас нет возможности подключить микроконтроллер AVR напрямую к компьютеру, чтобы загрузить свой код. Здесь в игру вступает программист. Это просто обеспечивает способ связи между вашим компьютером и микроконтроллером.

    Atmel-ICE рекомендован производителем микроконтроллеров AVR, Microchip, но стоит около 100 долларов. Если у вас достаточно денег, это идеальный программатор. С помощью Atmel-ICE вы можете напрямую программировать MCU через Atmel Studio/Microchip Studio (подробнее об этом позже) без отдельного программного обеспечения для программирования.


    Программист Atmel-ICE

    Честно говоря, мы, новички, не хотим тратить так много денег. Есть много других программаторов, которые вы можете использовать, но самым дешевым и простым в использовании является USBasp. Программатор USBasp имеет открытый исходный код и использует саму ATmega88/ATmega8. Вы даже можете сделать его дома или купить примерно за 3-4 доллара. USBasp подключается к микроконтроллеру AVR через 4 контакта и подключается к компьютеру через порт USB.


    USBasp

    Подробнее о USBasp можно узнать на веб-сайте создателя.

    Программное обеспечение

    Для написания кода для микроконтроллеров AVR можно использовать простой текстовый редактор. Код написан на AVR C++, языке, используемом для написания кода для микроконтроллеров AVR. Компиляция генерирует файл .hex, который можно записать в память микроконтроллера через программатор.

    Использовать конкретную IDE вместо текстового редактора проще, поскольку она содержит необходимый компилятор для создания файла .hex. Atmel Studio раньше была лучшей платформой для программирования микроконтроллеров AVR, разработанной самой Atmel. Однако, поскольку Microchip приобрела Atmel, они представили Microchip Studio в качестве IDE для программирования не только AVR, но и микроконтроллеров SAM. Это IDE, которая в настоящее время распространяется через веб-сайт Microchip и может быть загружена по этой ссылке. Оба программного обеспечения очень похожи друг на друга, поэтому вы можете использовать любое из них для своего проекта.

    < бр />

    Майкрочип Студия

    Вы также можете загрузить Atmel Studio по этой внешней ссылке или из архива загрузки производителя, если хотите.

    Есть и другие варианты, такие как плагин AVR Eclipse и MikroC, но Atmel Studio/Microchip Studio можно назвать лучшими для работы с микроконтроллерами ATmega.

    Драйвер для программатора

    Это необходимо только в том случае, если вы используете USBasp в качестве программатора и на вашем компьютере установлена ​​ОС Windows. Вы можете использовать инструмент установки драйверов Zadig и загрузить нужный драйвер для USBasp.

    После загрузки Zadig подключите программатор и установите драйвер libsub (не WinUSB) на свой компьютер.

    < бр />

    Установка драйвера для USBasp

    Инструмент программирования

    Для программирования микроконтроллера AVR через USBasp используется отдельный инструмент программирования. В этом нет необходимости, если вы используете Atmel-ICE, так как вы можете запрограммировать его непосредственно через Atmel Studio/Microchip Studio.

    На веб-сайте создателей USBasp (ссылка выше) рекомендуется несколько инструментов программирования. Попробовав все из них, я могу назвать Extreme Burner лучшим для начала, поскольку он полностью бесплатный и имеет удобный графический интерфейс. Вы можете скачать его по этой ссылке. На сайте также есть инструкции, которым следует следовать при загрузке файла .hex в микроконтроллер.

    < бр />

    Extreme Burner как инструмент программирования

    Дальнейшие шаги…

    Отлично! Теперь вы готовы начать программировать свой первый микроконтроллер. Перейдите по этой ссылке, чтобы узнать, как на самом деле использовать эти инструменты для мигания светодиода с помощью ATmega128P!

    Итак, у вас есть этот чип, и он программируемый. Но как поместить свою программу на этот чип?

    Комментарии? Предложения? Пишите на форум!

    Когда код компилируется в программу Windows, он превращается в "двоичный", что означает, что он не читается человеком (что сложно понять машинам), а читается машиной. В Windows эти программы (часто называемые приложениями или исполняемыми файлами) часто имеют имена, оканчивающиеся на .exe (например, notepad.exe или winword.exe), на Mac они часто имеет название, оканчивающееся на .App (хотя Finder скрывает его).

    Для микроконтроллеров двоичные файлы заканчиваются на .hex (сокращение от Intel Hex Format). Возможны и другие форматы, но это почти стандартный формат.

    Ваш компилятор сгенерирует файл .hex из кода, а затем все, что вам нужно сделать, это передать эту программу .hex на чип!

    Как обсуждалось в разделе "Что это такое?", микросхема AVR имеет небольшой объем флэш-памяти. В этой памяти хранится программа. Когда чип запускается (вы даете ему питание), он запускает любую программу во флэш-памяти. Так что все, что нам нужно сделать, это выяснить, как записать на эту флэш-память

    Хороший способ подумать о flash – это изучить его так, как вы, вероятно, с ним знакомы. Флэш-память также используется в картах MMC/SD, которые обычно используются в MP3-плеерах или цифровых камерах. Если вы посмотрите на нижнюю часть карты, вы увидите маленькие золотые пальчики. Это интерфейсные панели.



    Оборотная сторона мультимедийной карты. Анджей Барабаш.

    Если вы заглянете в спецификацию карты MMC, вы обнаружите, что для этого и нужны 7 контактов. (SD/высокоскоростные карты могут иметь дополнительные контактные площадки, но этот стандарт был добавлен позже, поскольку существующий стандарт считался слишком медленным для больших мегапиксельных камер)

    Выводы питания и заземления используются для подключения питания к микросхеме. Контакт Chip Select используется, чтобы сообщить чипу, что он должен проснуться, контакт Serial In используется для отправки данных на карту, Serial Out — это то, как данные отправляются с карты, а Data Clock — это то, как мы сообщаем карте, насколько быстро мы хотите, чтобы данные были сохранены или извлечены. Данные выталкиваются из чипа по одному биту за раз, поэтому, если тактовая частота составляет 100 кГц, это означает, что в секунду передается 100 000 битов.

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

    Хорошо, а какое отношение это имеет к программисту? Итак, микроконтроллер подобен флешке, а картридер подобен программатору. Когда вы вставляете чип в программатор (или, что более вероятно, кабель программатора в печатную плату, содержащую чипы), это позволяет программному обеспечению на вашем компьютере взаимодействовать с чипом через программатор. Обычно вы можете просто дать простую команду, например «отправить эту программу», и программист сделает всю тяжелую работу по программированию и проверке данных

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

    Например, я большой поклонник микросхемы ATtiny2313, так что давайте откроем сводную таблицу данных (в ней всего дюжина страниц вместо стандартных 250. На первой странице содержится всевозможная информация о том, что в чипе.

    Быстрый тест: сколько EEPROM у чипа? Как насчет флэш-памяти? ОЗУ?

    На второй странице есть распиновка. Мы будем иметь дело с пакетом PDIP (пластиковый двухрядный пакет), который выглядит следующим образом:


    Распиновка воспроизводится здесь


    Чип имеет 20 контактов. Посмотрите внимательно, и вы заметите, что 6 из этих контактов эквивалентны контактам карты SD/MMC. Есть контакт питания (VCC) и контакт заземления (GND), также есть контакт SCK (по какой-то причине он называется UCSK), контакт Serial Out (MISO — Master In Serial Out) и контакт Serial In (MOSI — Мастер-выход, серийный вход). Единственное, чего здесь нет, так это булавки /ChipSelect.Вместо этого у него есть вывод /RESET, который действует аналогичным образом. Когда контакт /RESET находится под положительным напряжением (то же напряжение, что и VCC), чип запускает программу, когда контакт /RESET находится на земле (то же напряжение, что и GND), тогда чип останавливается и слушает инструкции по программированию на программировании. булавки.

    Все SD-карты имеют одинаковые пальцы в одном и том же месте, поэтому, когда вы вставляете карту в устройство чтения карт, соединяются правильные контактные площадки. Программирование AVR работает аналогичным образом. Вместо контактных площадок микросхема часто размещается на печатной плате с контактами разъема, к которым подключается программист. Распиновка разъема стандартизирована, поэтому после правильного подключения разъема можно использовать любой программатор.

    Существует два стандарта внутрисистемного программирования AVR:


    Слева — стандартный 6-контактный разъем, справа — 10-контактный, разъемы выглядят следующим образом:


    Вот пример фотографии, показывающей, как это выглядит, когда чип подключен к 6-контактному разъему



    Фото предоставлено EvilMadScientistLabs

    Упражнение: проверьте распиновку этой целевой платы

    Чтобы узнать, как сделать «целевую доску», позволяющую программировать AVR (в частности, указанный ATtiny2313), посетите руководство EvilMadScientistLab. Это довольно просто и охватывает часть того же материала.

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

    Хорошо, теперь, когда вы узнали все о том, как работает программирование в теории, пришло время определить, какой тип программиста будет работать для вас лучше всего

    Комментарии? Предложения? Пишите на форум!

    Существует около дюжины программистов, я расскажу о четырех основных типах:

    1. Простые/базовые/Bitbang программисты
    2. Умные программисты интернет-провайдера
    3. Доски для разработки
    4. Непрограммист (загрузчик)

    Простые программаторы очень недорогие и очень простые. Они подключаются к последовательному или параллельному порту напрямую, а затем компьютерное программное обеспечение переключает порт для отправки данных на микросхемы.

    Программатор параллельного порта выглядит примерно так:


    Он подключается к параллельному (принтерному) порту компьютера



    Вы можете видеть, что серебряная часть подключается к параллельному порту, а затем идет кабель, который подключается к 10-контактному разъему ISP

    Программатор последовательного порта выглядит примерно так:


    Очень похож на программатор параллельного порта, но подключается к последовательному порту


    У некоторых есть буферный чип для отключения контактов программирования во время работы чипа, чтобы он мог использовать контакты программирования для других целей. Без буфера вам, возможно, придется удалить программатор после того, как чип будет запрограммирован.

    Я рекомендую их людям, которые только начинают и делают очень простые вещи, но настоятельно рекомендую быстро перейти на умный программатор ISP или плату разработки.

    Плюсы: сверхдешевый (10–20 долларов США), простой для понимания, потому что программное обеспечение делает все, что исключает риск "несовместимости программатора или обновлений"
    Минусы: требуется ПК с портами, Mac не может использовать это, если вы работаете с высоким напряжением (более 5 В), вы можете отключить свой порт, несколько стандартов для интерфейса программатора.

    Вы можете купить такие программаторы в интернет-магазине adafruit.

    Эти программисты подключаются к последовательному порту или USB-порту, и у них больше мозгов, чем у программистов Bitbang. Кроме того, они с большей вероятностью будут работать и обладают некоторыми полезными функциями.

    Самым распространенным программатором является AVRISP и AVRISPv2. Оба выглядят примерно так:



    Фото предоставлено EvilMadScientistLabs

    На одном конце есть разъем для кабеля, а на другом — 6-контактный и/или 10-контактный кабель. У AVRISP v1 был разъем для последовательного порта, а у v2 — USB. У v1 есть оба кабеля, у v2 только 6-контактный.

    Мне очень понравилась версия 1, но она была снята с производства, а версия 2 не поддерживает 10-контактные кабели, поэтому я разработал свой собственный программатор под названием USBtinyISP, вы можете собрать его из комплекта примерно за 20 долларов. Об этом подробнее здесь.


    Существует гораздо больше дизайнов интернет-провайдеров, многие из них самодельные.

    Существуют десятки макетных плат, все они немного отличаются друг от друга, поэтому я расскажу о двух самых популярных (и относительно недорогих), официально одобренных Atmel.

    Первый — это STK500, который за 80 долларов США — настоящий зверь. Он поддерживает почти все микросхемы, которые производит Atmel, со всеми различными сокетами. Он имеет кнопки, светодиоды, генератор с регулируемой тактовой частотой и т. д. Этот программатор поддерживается AVRStudio, средой программирования Atmel. Поскольку это «де-факто» программатор, метод программирования, который он использует для связи с компьютером (называемый протоколом STK500), также является стандартным. Он получил немного кривой обучения, но многие люди используют его. Вы можете купить его у Digikey или Mouser.


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

    Второй — AVR Dragon, который является не только программатором, но и эмулятором. Он используется больше как интернет-провайдер, чем макетная плата, имеет разъемы как для 6-контактных, так и для 10-контактных разъемов.

    Я мало играл с ним, но люди говорят, что он хорош и стоит всего 50 долларов. Обратите внимание, что нет сокетов для чипов.

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

    Возьмем, к примеру, небольшую программу, встроенную в микросхему, которая может связываться с компьютером через USB или последовательный кабель и позволяет компьютеру загружать новую прошивку без использования программатора.Когда вы «обновляете прошивку» своего MP3-плеера или мобильного телефона, происходит вот что.

    Например, Arduino использует загрузчик, который запрограммирован в микросхему на заводе Arduino. Загрузчик защищен, так что он не может перезаписать себя. Чтобы загрузить код в Arduino, вы используете программное обеспечение Arduino, которое достаточно умно, чтобы распознавать, когда Arduino подключен.

    Загрузчики — это прекрасно, но вам нужен программист интернет-провайдера, чтобы установить загрузчик на чип в первый раз, если вы покупаете чип у Digikey или Mouser. Это немного похоже на проблему курицы и яйца.

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

    В целом загрузчики отлично подходят для начала, но я считаю важным иметь какой-то способ запрограммировать чип, чтобы вы могли установить загрузчик и, возможно, изменить загрузчик или предохранители.

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

    Читайте также: