ПРОГРАММАТОР AVR USB
Это такой софт как:
1.AVRDUDE_PROG (можно найти версию с интерфейсом преимущественно на русском языке);
2.PonyProg (свободное ПО, распространяется бесплатно, можно найти русифицированную версию);
3.Atmel Studio (для русификации потребуется установить Visual Studio);
4.И т.д.
Перевод Khazama AVR Programmer на русский
Если альтернативный софт вас не устраивает по ряду параметров, можно использовать Khazama AVR на английском, но с русскими подсказками по основным меню. А подсказки с переводом мы дадим ниже.
Скачать саму утилиту можно с оф.сайта — http://khazama.com/project/programmer/ (доступны 2 версии — v1.7 и v1.6.2, последняя предполагает поддержку ATMega88 и ATMega8).
Первый пункт меню “File” (Файл) выглядит следующим образом:
Строительство USBasp программатора
Существует много версий печатной платы данного программатора, некоторые можно найти на официальном сайте USBasp. Однако, была сделана своя на основе выше представленной схемы.
К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.
Ниже результат печатной платы:
Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.
Список элементов используемых в USBasp программаторе:
- R1: 10к
- R2: 180
- R3: 100
- R5, R6: 68
- R7: 2к2
- C1, C2: 22п
- C3: 10мк
- C4: 100н
- LED1: Красный светодиод на 20мА
- LED2: Зеленый светодиод на 20мА
- D2, D3: стабилитроны на 3,6В
- X1: Разъем USB, тип B
- SV1: Гнездо под разъем IDC-10
- Q1: Кварц 12МГц, корпус HC49-S
- SW1: Dip переключатель трехпозиционный
- IC1: Atmega8 (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)
Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (лазерно-утюжной технологии). Как это делать описывать не будем, поскольку данной информации в сети много.
Вкратце скажем, что сначала рисунок в масштабе 1:1 печатается на глянцевой бумаге, затем он накладывается на очищенную и обезжиренную медную сторону стеклотекстолита и фиксируется с помощью бумажного скотча. Далее бумажная сторона тщательно разглаживается утюгом на 3-ке. После все это дело вымачивается в воде и аккуратно очищается от бумаги.
Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:
После завершения процесса травления необходимо удалить тонер ацетоном.
Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.
Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.
Строительство USBasp программатора
Существует много версий печатной платы данного программатора, некоторые можно найти на официальном сайте USBasp. Однако, была сделана своя на основе выше представленной схемы.
К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.
Ниже результат печатной платы:
Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.
Список элементов используемых в USBasp программаторе:
- R1: 10к
- R2: 180
- R3: 100
- R5, R6: 68
- R7: 2к2
- C1, C2: 22п
- C3: 10мк
- C4: 100н
- LED1: Красный светодиод на 20мА
- LED2: Зеленый светодиод на 20мА
- D2, D3: стабилитроны на 3,6В
- X1: Разъем USB, тип B
- SV1: Гнездо под разъем IDC-10
- Q1: Кварц 12МГц, корпус HC49-S
- SW1: Dip переключатель трехпозиционный
- IC1: Atmega8 (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)
Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (лазерно-утюжной технологии). Как это делать описывать не будем, поскольку данной информации в сети много.
Вкратце скажем, что сначала рисунок в масштабе 1:1 печатается на глянцевой бумаге, затем он накладывается на очищенную и обезжиренную медную сторону стеклотекстолита и фиксируется с помощью бумажного скотча. Далее бумажная сторона тщательно разглаживается утюгом на 3-ке. После все это дело вымачивается в воде и аккуратно очищается от бумаги.
Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:
После завершения процесса травления необходимо удалить тонер ацетоном.
Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.
Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.
Что нас побудило разработать этот программатор.
Есть великое множество простых специализированных программаторов, пригодных для самостоятельного изготовления.
Есть множество дешевых китайских программаторов в уже готовом виде.
Есть немало любительских разработок, часто по качеству превосходящих последние.
Казалось бы, в чем смысл очередной поделки?
Мы длительное время занимаемся разработкой производством и поддержкой универсальных программаторов, в основном специального назначения. У нас богатый опыт работы с самыми разными микросхемами. Часто к нам обращаются люди уже собравшие, а часто и купившие, какой-нибудь из выше названных «изделий». Нашим специалистам часто без смеха/слез/ужаса (нужное подчеркнуть) невозможно смотреть на схемные решения, качество сборки и, особенно, на программное обеспечение этих приборов. Ладно когда программатор стоит «три копейки», купил, что-то работает, что-то не работает, зато деньги не большие. Но часто соотношение цена/возможности таких приборов у нас вызывают, мягко говоря, удивление. Хочется воскликнуть: это столько не стоит!
Кроме всего выше названного есть особая категория программаторов, пригодных для самостоятельного изготовления — это программаторы (точнее, схемы программаторов и программное обеспечение), разработанные специалистами фирм производящих микросхемы (в основном микроконтроллеры). Такие программаторы спроектированы вполне профессионально, в их схемотехнике нет «ляпов». Они поддерживают все заявленные микросхемы. Но есть два «маленьких» недостатка: перечень программируемых микросхем весьма ограничен (что вполне понятно) и программное обеспечение весьма спартанское — никаких лишних функций, как правило — только стереть, записать, верифицировать. Часто даже функции чтения микросхемы нет.
Нам стало обидно, что наш многолетний опыт полноценно используется только в такой узкой области, как программаторы специального назначения, поэтому мы решили поделиться своими знаниями с широкой публикой.
Итак, программатор ChipStar-Janus в начальной конфигурации — это внутрисхемный программатор. В таком режиме он поддерживает микроконтроллеры PIC и AVR фирмы Microchip, некоторые микроконтроллеры архитектуры MCS51, микроконтроллеры фирмы STMicroelectronics и еще ряд других, а также микросхемы последовательной памяти с интерфейсом I2C (в основном серия 24). К разъему расширения программатора можно подключить простейшие адаптеры и начать программировать микросхемы памяти «в панельке».
Сейчас реализовано программирование «в панельке»:
- микросхемы последовательной памяти (Serial EPROM) с интерфейсом I2C (серия 24xx);
- микросхемы последовательной флэш памяти (Serial FLASH) с интерфейсом SPI (SPI Flash);
- микросхемы последовательной памяти (Serial EPROM) с интерфейсом MW (серия 93xx);
- микросхемы NAND FLASH;
Список комплектующих
Обозначение | Номинал | Количество |
---|---|---|
IC1 | ATMEGA8-P | 1 |
U1 | LM358 | 1 |
Q1 | IRF540N | 1 |
R4 | 120 кОм | 1 |
R6, R3 | 1 кОм | 2 |
R5, R1 | 10 кОм | 2 |
C3, C4, C7 | 100 нФ | 3 |
Y1 | 16 МГц | 1 |
C1, C2 | 22 пФ | 2 |
R2 | 100 Ом | 1 |
U2 | LM7805 | 1 |
C5, C6 | 100 мкФ (можно и меньше) | 2 |
R7, R8, R9, R10, R11, R12, R13, R14 | 150 Ом | 8 |
Это список компонентов, экспортированный из KiCad. Кроме того, вам понадобятся:
- клон паяльника Hakko, самого популярного в китайских онлайн магазинах (с термопарой, а не с термистором);
- источник питания 24 В, 2 А (я рекомендую использовать импульсный, но вы можете использовать трансформатор с выпрямительным мостом);
- потенциометр 10 кОм;
- электрическая штепсельная вилка авиационного типа с 5 контактами;
- электрический разъем, устанавливаемый на заднюю панель для подачи питания 220 В;
- печатная плата;
- выключатель питания;
- штырьковые разъемы 2,54 мм;
- много проводов;
- разъемы Dupont;
- корпус (я напечатал его на 3D принтере);
- один тройной семисегментный светодиодный индикатор;
- программатор AVR ISP (для этого вы можете использовать Arduino).
Конечно, вы можете легко заменить светодиодный индикатор LCD дисплеем или использовать кнопки, вместо потенциометра, ведь это ваша паяльная станция. Я изложил свой вариант дизайна, но вы можете по-своему.
Двуликий Янус
Мы решили назвать этот программатор «Янус».
Почему так? Потому что в римской мифологии Янус — это двуликий бог дверей, входов и выходов, а также начала и конца. Какая связь? Почему наш программатор ChipStar-Janus двуликий?
А вот почему:
- C одной стороны, этот программатор — простой. Распространяется как бесплатный проект, его можно легко изготовить самому.
- C другой стороны, он разработан фирмой, длительное время профессионально занимающейся разработкой и производством различной радиоэлектронной аппаратуры, в том числе программаторами.
- C одной стороны, этот программатор — простой, с первого взгляда имеет не сильно впечатляющие характеристики.
- C другой стороны, работает совместно с профессиональной программой (кстати, точно такой же, как и остальные профессиональные программаторы ChipStar).
- C одной стороны, мы предлагаем этот программатор для свободной сборки.
- C одной стороны, мы его продаем и в готовом виде, как обычный бюджетный продукт.
- C одной стороны, на самодельный программатор не распространяется гарантия (что естественно).
- C одной стороны, если вы его смогли собрать, то и отремонтировать сможете, да и программатор настолько простой, что ломаться, собственно, нечему.
- C одной стороны, это простой внутрисхемный программатор.
- C одной стороны, через простые адаптеры расширения он поддерживает программирование NAND FLASH и других микросхем уже «в панельке».
Таким образом, программатор ChipStar-Janus для многих специалистов может стать настоящим выходом в ситуации, когда разных простых или любительских программаторов уже недостаточно, а более сложный программатор кажется избыточным или на него не хватает выделенного бюджета.
Установка драйверов
Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Драйвер для программатора USBASP (v 2.0) USB ISP ранее был основан на libusb-win32. После того, как действие сертификата истекло, библиотека была заменена на libusbK.
Работа драйвера тестировалась на версиях от Windows XP до Windows 10 (32-разрядные и 64-разрядные версии). Поскольку драйвер подписан, отпадает необходимость принудительного отключения сертификата драйвера или использования Zadig, достаточно скачать драйвер USBasp и запустить файл InstallDriver.exe из распакованного архива. В Windows XP можно просто указать мастеру установки папку с распакованными файлами драйвера.
ВНИМАНИЕ! Вы устанавливаете этот драйвер на свой страх и риск!
Инструкции по сборке
Схема блока управления паяльной станцией
Во-первых, вы должны изготовить печатную плату. Используйте тот способ, который предпочитаете; я рекомендую перенос рисунка платы тонером лазерного принтера, поскольку это самый простой способ. Кроме того, печатная плата у меня удлинена, потому что я хотел, чтобы она совпадала по размеру с источником питания, и я мог бы установить ее на него. Не стесняйтесь изменять плату, вы можете скачать файлы проекта и отредактировать их с помощью KiCad. После того, как изготовите печатную плату, припаяйте к ней все компоненты.
Обязательно установите выключатель между источником питания и разъемом питания. Используйте относительно толстые провода для соединений источника питания с печатной платой и выходного разъема со стоком MOSFET транзистора (точка H на плате) и земли на печатной плате. Для подключения потенциометра подключите 1-ый контакт к линии +5В, 2-ой – к точке POT, и 3-ий – к земле
Обратите внимание, что я использую светодиодный индикатор с общим анодом, что может отличаться от того, что у вас. Вам придется немного изменить код, но все инструкции в коде программы прокомментированы
Подключите выводы к общим анодам/катодам, а выводы к соответствующим выводам вашего индикатора. Для более подробной информации смотрите техническое описание на него. И наконец, установите выходной разъем паяльной станции и припаяйте к нему все соединения. Вам должна помочь картинка, приведенная выше, со схемой и цоколевкой разъема.
Теперь начинается интересное, загрузка кода. Для этого вам понадобится PID библиотека (ссылка на GitHub).
Если у вас есть программатор AVR ISP, вы знаете, что нужно делать. Подключите контакты +5V, GND, MISO, MOSI, SCK и RESET, скачайте скетч Arduino, откройте его (вам понадобится установленная на компьютере Arduino IDE) и нажмите «Загрузить».
Если у вас нет программатора, то можете использовать Arduino. Подключите свою плату Arduino (Uno/Nano) к компьютеру, перейдите в меню Файл → Примеры → ArduioISP и загрузите его. Затем перейдите в Инструменты → Программатор → Arduino as ISP. Подключите свою плату к плате Arduino, скачайте скетч, а затем выберите Скетч → Загрузить через программатор.
Вот и всё. Теперь вы можете наслаждаться работой паяльной станцией, собранной собственными руками.
Первый запуск USBasp программатора
Теперь, когда все детали спаяны, остается только «прошить» микроконтроллер Atmegę8 самого программатора. Для этого нужен отдельный программатор, это может быть, например, STK 200 (LPT порт), STK500 и т. д. LPT программатор подключается к USBasp через разъем IDC-10.
Обратите внимание, что распределение пинов в разъеме оригинального программатора (USBasp) находится справа, в то время как в версии, описываемой в этой статье – слева:
Распределение, показанное на рисунке справа, соответствует тем, которые применяет компания Atmel в своих оригинальных программаторах. Такое распределение уменьшает риск возникновения помех во время программирования в случае применения длинных проводов от программатора к контроллеру, так как каждая сигнальная линия экранирована массой, кроме MOSI.
На время программирования включите режим SELF путем переключения DIP переключателя № 3 в положение ON. Благодаря этому появляется возможность запрограммировать Atmega8. После завершения программирования, положение переключателя (3) должна быть переведено в состоянии OFF.
Последнюю версию прошивки можно скачать с официального сайта. Рекомендуем версию для Atmega8, которая находится в архиве: usbasp.2011-05-28.tar.gz.
Обратите внимание, чтобы перед программированием Atmega8 необходимо выставить фьюзы которые имеют следующие значения:
- # для Atmega8: HFUSE=0xC9 LFUSE=0xEF
- # для Atmega48: HFUSE=0xDD LFUSE=0xFF
В случае успешного программирования, подключаем программатор к USB разъему компьютера, при этом должен загореться красный светодиод, а компьютер должен оповестить об обнаружении нового оборудования.
Скачивание и установка Atmel Studio
Выполните следующую последовательность действий:
1. Скачайте Atmel Studio 7.0.
2. Также вам необходимо скачать приложение WinAVR чтобы иметь возможность загружать программы в микроконтроллер AVR с помощью USBASP.
После этого вам необходимо создать тестовый проект в Atmel Studio 7.0. Для этого выполните нижеследующую последовательность действий.
3. Подсоедините USBASP v2.0 к USB порту вашего компьютера и подождите пока он правильно определится.
4. Откройте Atmel Studio.
5. Выберите пункт меню “File”, в нем “New” и выберите “project”.
6. Теперь назовите ваш проект, выберите место расположения проекта и выберите компилятор “GCC C Executable Project”. Кликните на “Ok” и продолжайте.
7. После этого вам будет необходимо выбрать ваше устройство для программирования. В нашем случае это будет микроконтроллер Atmega16A. Если вы будете программировать другие микроконтроллеры, например, Atmega8, Atmega32, то для их программирования также можно использовать программатор USBASP.
8. После этого для вас будет создан файл main.c, где вы можете писать ваш программный код.
Но после создания проекта финальный шаг, который вам необходимо выполнить – это установить внешние инструментальные средства (WinAVR).
Основные характеристики программатора USBasp
- Работает с несколькими операционными системами – Linux, Mac OS X и Windows – включая Windows 8!
- Не требует внешнего питания.
- Умеет программировать со скоростью вплоть до 5kB/s
- Есть вариант (Switch 2) снижения скорость программирования – для процессоров с кварцем меньше 1,5 Мгц
- Обеспечивает напряжение для программирования (Switch 1) 5 вольт
- Указание работы программатора с помощью светодиода
Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:
- Выбор схемы/рисунка печатной платы
- Перенос рисунка печатной платы на фольгированный стеклотекстолит
- Травление печатной платы в растворе хлорного железа
- Сверление отверстий
- Монтаж элементов (пайка)
- Программирование Atmaga8 программатора
- Подключение программатора к компьютеру
- Установка драйверов – Windows XP, Windows 7
- Выбор программы с поддержкой USBasp
Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl. Прошивка микроконтроллера программатора также является его авторством.
Оригинальная схема программатора:
В данном случае за основу была выбрана оригинальная схема. Поскольку использование перемычек в оригинальной схеме не совсем удобно, было принято решение использовать DIP переключатели. Так же были изменены некоторые значения резисторов.
Более того, в оригинальной схеме линии TxD и RxD выведены на разъем ISP, хотя это не нужно (точнее не используются на практике).
Ниже приведена схема с внесенными изменениями:
Основные характеристики программатора USBasp
- Работает с несколькими операционными системами – Linux, Mac OS X и Windows – включая Windows 8!
- Не требует внешнего питания.
- Умеет программировать со скоростью вплоть до 5kB/s
- Есть вариант (Switch 2) снижения скорость программирования – для процессоров с кварцем меньше 1,5 Мгц
- Обеспечивает напряжение для программирования (Switch 1) 5 вольт
- Указание работы программатора с помощью светодиода
Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:
- Выбор схемы/рисунка печатной платы
- Перенос рисунка печатной платы на фольгированный стеклотекстолит
- Травление печатной платы в растворе хлорного железа
- Сверление отверстий
- Монтаж элементов (пайка)
- Программирование Atmaga8 программатора
- Подключение программатора к компьютеру
- Установка драйверов – Windows XP, Windows 7
- Выбор программы с поддержкой USBasp
Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl. Прошивка микроконтроллера программатора также является его авторством.
Оригинальная схема программатора:
В данном случае за основу была выбрана оригинальная схема. Поскольку использование перемычек в оригинальной схеме не совсем удобно, было принято решение использовать DIP переключатели. Так же были изменены некоторые значения резисторов. Более того, в оригинальной схеме линии TxD и RxD выведены на разъем ISP, хотя это не нужно (точнее не используются на практике).
Ниже приведена схема с внесенными изменениями:
Простейший программатор для ATmega8
А сейчас небольшая фотосессия. Но сначала разводка USB: Забыл сказать, что сначала не надо запрограммировать RSTDSBL, а запрограммировать CKSEL3, CKSEL2, CKSEL1 подключить к ПК, если компьютер нашел неизвестное устройство — это еще ничего не значит, должен установиться драйвер. После того можно запрограммировать RSTDSBL, так как количество ног у микроконтроллера ограничено, кстати можно использовать ATtiny45 или ATtiny85, главное чтобы было 20su в смд или 20pu в дип — например АTtіny45 20su в магазине не было ATtiny45, зато был ATtiny85 20su. Его запрограммировал так же как и ATtiny 45 и фюзы одинаковы, они отличаются только память flech. Фюзы которые нужно запрограммировать CKSEL3, CKSEL2, CKSEL1, BODLEVEL0 (детектор пониженного напряжения на 1,8 В), RSTDSBL. Можно использовать любой разъем — там micro USB и тому подобное, я не мудрил, а взял штекер USB, снял шкуру, подпилил, припаял и получилось нечто такое, которое смахивает на обычную флешку
Подрезаем канцелярским ножиком, но осторожно, не порежетесь — лезвие очень острое. Вытаскиваем пластмасску с контактами, тоже очень осторожно
Возьмем и подпилим, чтобы был доступ жала паяльника до контактов USB, вверху уже лежит протравленная плата для USB программатора. Её травил в перекиси водорода + лимонная кислота. Он травит быстро. Лудил плату. Сплавом Розе я еще не разжился, поэтому лужу жалом паяльника, для лужения бросил камушек в растворитель канифоли, помешал, камень растворился, набрал в шприц (пропорции не помню), покрыл плату и лудится очень удобно. Припаиваем нашу пластмассу, только не путайте при пайке контакты, а то как я будете перепаивать, внизу на фото неправильно. Далее припаиваем резисторы и МК, здесь увидел ошибку и перепаял USB, соединение разрез должен быть на одной стороне с контроллером. Другую сторону — стабилитроны должны быть не больше чем 500 мА. Припаиваем шлейф кабель, желательно чтобы шлейф был экранированный, у меня кабель с кардридера использовал, брал провода которые экранированные — два оранжевых и экран = фольгу бросил на массу, фото без корпуса, надо сначала проверить на работоспособность, программа тора подключена ATtiny2313A зашилась скоро, я прошиваю на частоте 250 кГц, а фюзы на 2 кГц — так надежнее.
Корпус из чего сделать не было, у меня ни флешек лишних, ни поломанных модемов… ответ пришел сам — зажигалка, выпускам газ если он там есть распыляем, зажигалка такого типа изначально другая, фотка зажигалки потому, что первую уже распилил, а сфоткать забыл. Выламываем среднюю стенку, запихиваем наш программатор, закрепляем горячим клеем, перед окончательным закреплением откорректируете положение платы. И вот что получилось. Удачи всем в повторенные конструкции, а программатор avrdude USBtiny, также в архиве вы найдете драйвера прошивку разные печати платы сокращенно ПП на платах есть надпись KALYAN datasheet или сокращенное K.d — это из-за нехватки места, на ЧП вы можете быть уверены в качестве разводки печатной платы, всем удачи. С вами был KALAYN.SUPER.BOS АРХИВ:Скачать
Установка WinAVR в Atmel Studio
1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.
2. У вас откроется окно, где вы должны будете ввести имя вашего инструментального средства.
3. В пункте “Title (название)” введите имя вашего внешнего инструментального средства. Можно выбрать любое имя, но в рассматриваемом примере мы выбрали имя “USBasp”. Поставьте галочку в пункте ”Use Output Window” и снимите галочку с пункта “Prompt for arguments” как показано на нижеприведенном рисунке.
4. Теперь ведите “Command”. Там будет необходимо указать путь к “avrdude.exe” – его вы можете найти в папке где установлена WinAvr. Просто найдите “WinAVR-20100110” на диске “C” вашего компьютера – куда вы устанавливали WinAvr.
5. Введите аргументы. Это самый важный шаг в этой последовательности действий поскольку от них будет во многом зависеть корректность работы приложения. Поскольку в рассматриваемом нами случае мы используем внешние инструментальные средства, то можно ввести следующие аргументы:
6. Больше аргументов можно найти по этой ссылке.
7. Введите аргументы в поле для ввода аргументов. Оставьте поле “Initial directory (Начальный директорий)” без изменений.
8. После заполнения всех полей нажмите “Apply” и затем “Ok”.
В результате этих шагов вы сможете использовать внешние инструментальные средства чтобы загружать программы в микроконтроллер. Проверим это с помощью тестового проекта (программы) “blink.c”. Файл main.c вы можете найти в конце этой статьи. Теперь скопируйте main.c в Atmel studio.
Компоновка и загрузка программного кода в Atmega16
1. Сохраните файл main.c.
2. Подсоедините светодиод к контакту PORTA0 микроконтроллера Atmega16 как было показано на вышеприведенном рисунке.
3. Выберите пункт меню “Build” и затем выберите “Build Blink”.
4. Если программа не содержит ошибок, то вы увидите сообщение как на представленном рисунке.
5. Теперь выберите пункт меню “Tools” и выберите в ней созданные внешние инструментальные средства. В нашем случае это будет “USBasp”. Кликните по нему.
6. Если после этого вы увидите сообщение об успешности операции (как показано на рисунке ниже), то значит вы успешно загрузили программу в микроконтроллер. Если вы получили сообщение об ошибке, то проверьте правильность выполнения всех предыдущих шагов, а также проверьте исправность соединительных проводов между USBASP и Atmega16.
7. Вы успешно загрузили тестовую программу с мигающим светодиодом в микроконтроллер используя USBASP v2.0 and Atmel Studio 7.0 и можете увидеть как мигает светодиод в собранной схеме. Теперь вы можете аналогичным образом загружать в микроконтроллер любые другие программы.
Настройка USB программатора
После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.
Далее необходимо настроить программу терминал (HyperTerminal) которая находится по следующему пути: Пуск > Программы > Стандартные > Связь > HyperTerminal. Настраиваем порт, параметры терминала и ASCII
Настройка порта:
Настройка терминала:
Настройка ASCII:
Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.
Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:
Если это не так проверяем еще раз монтаж, особенно линию TxD.
Далее вводим версию программатора 2.10, так как без этого программатор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».
USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:
- «0», «Enter» — режим выключен.
- «1», «Enter» — режим включён.
Изменение скорости программирования ( 1МГц):
- «0», «Enter» – максимальная скорость.
- «1», «Enter» – сниженная скорость.
На этом подготовительная работа завершена, теперь можно попробовать прошить какой-нибудь микроконтроллер.
Скачать прошивку, печатную плату USB программатора и программу UniProf (829,4 KiB, скачано: 1 557)
Блок питания 0…30 В / 3A
Набор для сборки регулируемого блока питания…
Подробнее
Распиновка Atmega8
На следующей странице публикуется расположение выводов данного микроконтроллера при использовании разных типов корпусов:
Советую этот листок из даташита распечатать и иметь под рукой. В процессе разработки и сборки схемы очень полезно иметь эти данные перед глазами.
Внимание!
Обратите внимание на такой факт: микросхема микроконтроллера может иметь (и имеет в данной модели) несколько выводов для подключения источника питания. То есть имеется несколько выводов для подключения «земли» — «общего провода», и несколько выводов для подачи положительного напряжения
Изготовители микроконтроллеров рекомендуют подключать соответствующие выводы вместе, т.е., минус подавать на все выводы, помеченные как Gnd (Ground — Земля), плюс — на все выводы помеченные как Vcc.
При этом через одинаковые выводы МК не должны протекать токи, так как внутри корпуса МК они соединены тонкими проводниками! То есть при подключении нагрузки эти выводы не должны рассматриваться как «перемычки».
Микроконтроллеры ATmega328P и ATtiny45 семейства AVR
Программируемый чип ATmega328P представлен 28-контактным микроконтроллером, входящим в семейство AVR. Микроконтроллер хорошо знаком обладателям конструктора «Ардуино», где используется в качестве основного компонента электронного набора.
Однако микроконтроллер ATmega328P способен делать куда больше, чем выжимает из этого чипа популярный электронный конструктор «Arduino». Доказательств тому масса, стоит лишь посмотреть фирменный даташит (datasheet) микроконтроллера ATmega328P.
Микроконтроллеры семейства AVR нашли широчайшее применение в практике конструирования электронных устройств различной сложности. Серия ATMega и ATiny часто выбираются для аппаратного программирования
В тесной связке с «братом по крови» выступает другая микросхема — ATtiny45. Но здесь налицо явная отличительная черта: микроконтроллер ATtiny45 имеет 8-контктный форм-фактор.
Микросхема ATtiny45 обладает многими функциями, присущими AT328P. Однако функциональность ATtiny45 несколько ограничена по причине малого числа контактов ввода-вывода.
Традиционно программирование ATmega328P и ATtiny45 осуществляется через последовательный периферийный интерфейс (SPI). Контактная шина на 3 проводника, плюс «земля». По шине данных следуют сигналы:
- Вход приёма данных (MOSI)
- Выход передачи данных (MISO)
- Вход синхронизации приёма(SCK)
Сигнал SCK (SCLK) генерирует ведущее устройство (программатор). Этим сигналом обеспечивается синхронная приём/передача между ведущим и ведомым устройствами. По сути, интерфейс SPI следует рассматривать «синхронной» коммуникационной шиной.
Выбор физических программаторов под AVR микроконтроллеры
Существует масса программаторов, которыми доступно программировать ATmega328P и ATtiny45. Например, профессиональная разработка «Atmel-ICE» от родной чипам компании «Atmel».
AVR Pocket Programmer: 1 — входной интерфейс USB; 2 — ISP коллектор; 3 — выходной интерфейс ISP; 4 — буферные элементы 74АС125; 5 — переключатель режима питания; 6 — основной чип ATtiny 2313
Для любителей-электронщиков этот вариант финансово обременительный. Поэтому логичным видится более простой выбор – USB программатор «AVR Pocket Programmer».
Раз в пять дешевле профессиональной разработки «Atmel», этот девайс доступно купить, к примеру, здесь. В продаже есть другие, более дешёвые программаторы (от 200 руб.), но не проверенные на практике.
На крайний случай несложно собрать программатор «AVR Pocket Programmer» своими руками. Принципиальная схема устройства построена на чипе ATtiny2313. Внешние элементы – лишь несколько резисторов, стабилитронов, светодиодов.
Принципиальная схема программатора AVR Pocket Programmer — достаточно простая, вполне доступная для сборки устройства программирования своими руками
Сигнальные линии (MICO, MOSI, SCK) желательно (но не обязательно) буферизировать. Поэтому следует дополнить схему буфером, к примеру, использовать микросхему 74AC125.
Такой буфер, кстати, применяется на фирменной сборке. Не исключается и транзисторный вариант буфера.
Для работы схемы программатора потребуется драйвер под USB. Возможно, потребуется также программный продукт Zadig, универсальный инсталлятор под Windows для установки общих драйверов USB (версия под Windows 7 и выше):
- WinUSB
- Libusb-Win32
- Libusb0
- LibusbK
Прошивка и утилиты для «AVR Pocket Programmer» находятся здесь. Драйвер программатора предпочтительно ставить в систему Windows до подключения физической схемы к ПК.
Программа для USBAsp V2.0
Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe».
В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры» и выбираем ATmega328P.
Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega» и выбираем «ATmegaBOOT_168_atmega328.hex», жмем «Открыть»
Подключаем программатор к плате «Arduino UNO R3», и нажимаем кнопку «Программирование».
В конце, выйдет диалоговое окно, о удачном окончании программировании.
Ссылки Скачать драйвер для программатора USBASP v2.0 (LC Technology, ATMEL) Скачать программу AVRDUDE_PROG v.3.3
Купить на Aliexpress Программатор USBASP v2.0 (LC Technology, ATMEL) Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
Купить в Самаре и области Программатор USBASP v2.0 (LC Technology, ATMEL) Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)