Оглавление:

ИСПОЛЬЗОВАНИЕ EXtreme Burner для программирования микроконтроллеров AVR: 8 шагов
ИСПОЛЬЗОВАНИЕ EXtreme Burner для программирования микроконтроллеров AVR: 8 шагов

Видео: ИСПОЛЬЗОВАНИЕ EXtreme Burner для программирования микроконтроллеров AVR: 8 шагов

Видео: ИСПОЛЬЗОВАНИЕ EXtreme Burner для программирования микроконтроллеров AVR: 8 шагов
Видео: Программатор AVR за 1$ (USBasp). 2024, Июль
Anonim
ИСПОЛЬЗОВАНИЕ EXtreme Burner для программирования микроконтроллеров AVR
ИСПОЛЬЗОВАНИЕ EXtreme Burner для программирования микроконтроллеров AVR

Все вы, братство пользователей AVR, и те, кто только входит в поток. Некоторые из вас начали с микроконтроллеров PIC, а некоторые начали с AVR ATMEL, это написано для вас!

Итак, вы купили USBASP, потому что это дешево и эффективно для прошивки ПЗУ на вашем устройстве Atmega или, возможно, диапазона ATTINY. Их можно получить менее чем за 5 $, как китайские клоны USB-ASP с открытым исходным кодом! AVRdude - это программа для их программирования.

Вы, несомненно, знаете, как сгенерировать шестнадцатеричный файл с помощью Atmel Studio (я все еще использую AVR Studio v4.19 вместо последней версии 7, потому что он быстрее и быстрее на моем легком одноядерном ноутбуке с процессором) / Netbook и WINAVR устанавливаются, если вы читаете это. Все, что написано в DotNet, работает МЕДЛЕННО! а более поздние версии созданы для того, чтобы ваш ноутбук работал как черепаха! Вы можете использовать Studio v4.19, лучшую версию Studio от ATMEL для микроконтроллеров AVR, переключившись на версию 7, когда она вам действительно понадобится для более поздних чипов, и сделать ваше время на ноутбуке более продуктивным, работая вместо ожидания! Это то, что я рекомендую.

Типичная командная строка чувака AVR для программирования Atmega с помощью файла Hex работает следующим образом:

ЗАПИСАТЬ В FLASH: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

здесь pwmeg1.hex - это шестнадцатеричный файл Intel, который нужно «записать» или «прошить» в «целевой MCU» микроконтроллера Lingo

Это сложно запомнить! Вы можете написать командный файл и запустить его в командной строке в Windows, назвав его write_flash.bat. Точно так же для чтения предохранителей, еще одна строка, которую нужно запомнить! Это утомительно.

для чтения flash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Решение состоит в том, чтобы использовать один из удобных для пользователя интерфейсных инструментов с графическим интерфейсом для AVRdude, например Bitburner, программист Khazama, которые почти одинаковы по достоинству. eXtreme Burner. Я часто пользовался бесплатным инструментом: eXtreme Burner, он универсален, надежен, и этот урок посвящен этому. Он не только может прошивать ваш шестнадцатеричный файл / программу в MPU, используя команды, выдаваемые AVRdude в фоновом режиме, но также может помочь вам установить ПРЕДОХРАНИТЕЛИ, что является сложной задачей, которая часто сбивает с толку новичков в программировании AVR. Вот ссылка на отличный учебник по теме ПРЕДОХРАНИТЕЛИ, который вы можете пройти или освежить. Предупреждение: ATMEL использует состояние «1» бита FUSE для обозначения своего состояния «по умолчанию» (неустановленное или незапрограммированное состояние) и «0» для обозначения его запрограммированного, установленного или активированного состояния! Это прямо противоположно тому, что вы делаете с битами FUSE в микроконтроллере PIC. Будьте осторожны при изменении битов предохранителя часов, например, при изменении внутренних тактовых импульсов RC на внешний кристалл, потому что это создаст проблемы при подключении к микросхеме без настройки внешнего кристалла. Точно так же будьте осторожны при изменении состояния критических битов предохранителя, таких как SPIEN и RESET DISABLE (они всегда должны быть установлены на SPIEN = 0 и RESET DISABLE = 1, если вы хотите продолжить связь с MCU с вашим USB-ASP в режиме ISP / SPI. ! Если вы все испортите, вам понадобится программатор высокого напряжения, чтобы «разблокировать» ваш AVR.

Если вам интересно, «что за предохранители, черт возьми» и «что они делают»? Прочтите эту отличную статью:

Еще одна связанная тема - как установить тактовую частоту вашего AVR MPU, которая может работать на скоростях от 1 МГц до 16 или 20 МГц. Также имеется специальный низкочастотный кристалл мощностью 31,25 кГц, который при правильной конструкции может заставить ваш AVR работать от батареек AA в течение 3 месяцев!

Оба эти, биты предохранителя синхронизации (как частота, так и тип внутреннего RC / внешнего кристалла тактового сигнала, а также другие биты предохранителя) могут быть установлены на вкладке FUSES в eXtreme Burner. Сначала мы покажем вам, как читать ПЗУ, а затем как прошить шестнадцатеричный файл с помощью eXtreme Burner. Конечно, вы также можете использовать онлайн-сайты предохранителей AVR, но вариант, который я объясняю, можно использовать, когда вы находитесь в автономном режиме, где угодно.

Шаг 1. Необходимые настройки:

Необходимые настройки
Необходимые настройки
Необходимые настройки
Необходимые настройки
Необходимые настройки
Необходимые настройки
Необходимые настройки
Необходимые настройки

На изображениях показаны НАСТРОЙКИ, которые необходимо выполнить перед началом работы. (только один раз). В пункте подменю «Аппаратные настройки» мы выбираем 375 Гц, потому что для большинства микроконтроллеров с завода ATMEL по умолчанию установлены тактовая частота процессора 1 МГц на внутреннем RC-генераторе. Скорость ISP составляет четверть F_cpu. Это дает нам ближайшую скорость 375 кГц, вы также можете перейти на более низкую скорость, это не будет иметь большого значения. Вы можете попытаться подключиться, оставив это значение по умолчанию, и выдать команду «прочитать все», если это не удастся, вы можете подойти сюда и изменить скорость, сделав ее ниже.

Потому что, если вы не можете подключиться (в окне программатора будет отображаться сообщение «не удается связаться с чипом, не может SCK», это означает, что тактовый сигнал с вашего ПК не может синхронизироваться с вашим чипом, который вы пытаетесь прочитать, или program)., вы не сможете изменить тактовую частоту процессора или изменить его скорость и тип! Итак, соединение - это основа всего! Это похоже на «ПЕРВЫЙ КОНТАКТ», как в фильмах Спилберга. Если вам это удастся, вы всегда можете увеличить тактовую частоту вашего MCU, запрограммировав предохранители соответствующим образом, а затем использовать более высокую скорость для подключения.

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

Шаг 2: Установка типа вашего устройства

Установка типа вашего устройства
Установка типа вашего устройства
Установка типа вашего устройства
Установка типа вашего устройства
Установка типа вашего устройства
Установка типа вашего устройства

на скриншоте, Рис 1, мы установили "ATTINY44A". Это 14-контактный микроконтроллер без UART. Я недавно пользуюсь этой версией SSU. Если вы установили стандартную версию Extreme Burner, вы не увидите Attiny44A в раскрывающемся списке выбора устройств, вы увидите Attiny44, который мы можем использовать для всех целей, которые мы можем использовать для программирования Attiny44A, чтобы представить любое устройство, не указанное в этом раскрывающемся списке Прочтите мой другой поучительный "Взлом eXtreme Burner".

Я использовал Atmega88PA-AU также с eXtreme Burner, но в этом руководстве мы везде упоминаем "Attiny44A". Как теперь сделать макет крошечного квадратного SMD-чипа 7 мм и протестировать его с помощью своих программ? (см. рисунки, на которых указан размер микросхемы). Для этого см. другие мои инструкции, где я демонстрирую, как сделать подключаемые модули, подходящие для макетной платы, с использованием Attiny44A-SSU и ATmega88PA-AU.

Как только вы изучите эту технику, вы сможете проверить любой чип, с которым вам интересно поработать, будь то SMD или DIL-пакет. Например, я даже использовал SMD-чип в 32-контактном корпусе Quad с шагом 0,8 мм (Atmega88A) аналогичным образом!

. Или вы можете просто использовать 28-контактную DIL-версию Attiny44A для этого Instructable или любой другой AVR, который вы используете в данный момент, чтобы опробовать eXtreme Burner для программирования AVR.

Шаг 3. Выпустите READ ALL или READ FLASH

Выпустить READ ALL или READ FLASH
Выпустить READ ALL или READ FLASH
Выпустить READ ALL или READ FLASH
Выпустить READ ALL или READ FLASH

Подключите USBasp к USB-порту вашего ноутбука, я предполагаю, что вы уже загрузили правильные драйверы, которые поставляются с вашим программатором, и что он правильно обнаружен. Он должен появиться в разделе «Устройства и принтеры» в меню «Пуск» Windows, если это так, как только он будет подключен к USB-порту! Подключите целевой чип на его плате к USBasp (соответствующие контакты SDI / ISP с использованием 6-контактного или 10-контактного кабеля должны быть подключены между ними, а именно контакты: MOSI, RESET, MISO, SCK, Vcc, Ground).

Выпустите ПРОЧИТАТЬ ВСЕ из МЕНЮ Xtreme Burner. Смотрите фотографии и сообщения, которые мы получили. Первоначально ваш экран показывал «FF» для ПЗУ на первой вкладке записывающего устройства, после прочтения он покажет фактическое содержимое ПЗУ на чипе. Если вы использовали новый заводской чип или стертый чип, вы бы увидели FF в содержимом после «Прочитать все». Незапрограммированный чип будет отображать «FF» в своей памяти, так же как и EEPROM (вторая вкладка в программаторе), последняя вкладка показывает ПРЕДОХРАНИТЕЛИ.

После READ ALL на трех вкладках отобразится правильная информация, содержащаяся в микросхеме. Раньше этого не было, так что сначала выполните Read all, как только вы все подключите.

Шаг 4: Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)

Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)
Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)
Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)
Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)
Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)
Запись во флэш-память (ваш шестнадцатеричный файл записан в ПЗУ на чипе)

Выберите файл с помощью диалогового окна «Обзор», которое открывается, когда вы щелкаете первый значок в строке МЕНЮ выше. Мы выбрали один файл, как вы видите на картинке. После того, как вы выберете шестнадцатеричный файл (шестнадцатеричный формат Intel), строка меню, показывающая «файл не загружен», изменилась на имя файла, который вы загрузили.

Теперь запустите Write Flash из меню программного обеспечения. Сообщения покажут вам, что происходит. см. фото.

После успешной записи вы увидите «FF», который отмечает новое или удаленное изменение ПЗУ на то, что содержится в вашей программе или шестнадцатеричном файле. Размер или количество байтов, которые ваш файл занимает в ПЗУ, также известно вам, глядя на этот экран, который показывает вам фактическое содержимое ПЗУ вашего целевого чипа, которое вы только что прошили.

Этап проверки также выполняется путем считывания чипа в соответствии с НАСТРОЙКАМИ, которые мы сделали на первом этапе. Это видно по сообщениям, что проверка также прошла успешно.

Шаг 5: ПРЕДОХРАНИТЕЛИ: как установить их в EXtreme Burner

ПРЕДОХРАНИТЕЛИ: как установить их в EXtreme Burner
ПРЕДОХРАНИТЕЛИ: как установить их в EXtreme Burner

Когда вы выдавали READ ALL, предохранители считывались с микросхемы. Это ПЕРВАЯ картинка fuses.jpg.

Теперь, возможно, вам нужно поменять их на что-то другое. Предохранители состоят из 4 блоков на последней ВКЛАДКЕ на экране eXtreme Burner. А именно: LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE и CALIBRATION BYTE. в таком порядке они показаны.

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

eleccelerator.com/fusecalc/fusecalc.php?

Или вы можете использовать eXtreme burner, чтобы сделать это за вас. в автономном режиме в любое время: выберите из раскрывающегося списка, который появляется, когда вы нажимаете кнопку ДЕТАЛИ, которая находится под каждым типом байта предохранителя. Просто дважды щелкните любую строку на экране DETAILS и посмотрите, как она изменится с SET на CLEARED, и переключите свое состояние щелчком мыши на каждой строке. Байт предохранителя в поле над ним соответственно изменится.

Если вам интересно, «что за предохранители, черт возьми» и «что они делают»? Прочтите эту отличную статью:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

Шаг 6: Установка предохранителей с помощью калькулятора предохранителей EXtreme Burner

Настройка предохранителей с помощью калькулятора предохранителей EXtreme Burner
Настройка предохранителей с помощью калькулятора предохранителей EXtreme Burner
Настройка предохранителей с помощью калькулятора предохранителей EXtreme Burner
Настройка предохранителей с помощью калькулятора предохранителей EXtreme Burner
Настройка предохранителей с помощью калькулятора предохранителей EXtreme Burner
Настройка предохранителей с помощью калькулятора предохранителей EXtreme Burner

Вы можете увидеть экран подробностей, который появляется для каждого байта предохранителя (LOW, HIGH, EXTENDED, LOCK и Calibration). Байт калибровки следует оставить без изменений, поскольку он показывает байт данных калибровки в AVR, который применяется к внутреннему RC-генератору. Байт LOCK обычно представляет собой только FF (не обсуждается на рисунках выше), поскольку вы не будете блокировать Flash или EEPROM на этапе обучения. Вы бы изменили только LOW, HIGH и EXTENDED байты. Будь осторожен !

Если вы измените бит SPIEN на 1 (незапрограммированное состояние - 1 в микроконтроллерах AVR), вы не сможете связаться со своим чипом с помощью USBASP или любого другого программатора! Состояние по умолчанию также отображается на вашем экране для каждого бита предохранителя. Это предупреждает вас, что SPIEN по умолчанию всегда равен 0 (запрограммированное состояние), чтобы вы могли использовать режим SPI для программирования ISP. Бит отладки или DW всегда остается равным 1 (не запрограммирован), когда SPIEN установлен в 0. Это также его состояние по умолчанию. Кроме того, в битах расширенного предохранителя «Self Programming Enable» должно быть «1» (незапрограммировано), если вы используете свой USB-ASP для программирования целевой микросхемы (не используя ПЗУ загрузчика, как в ARDUINO).

Вы можете изменить биты CLOCK (3 в количестве), чтобы выбрать внутренний RC или внешний кристалл. Обычно я оставляю это для внутреннего RC, что позволяет вам получить 2 дополнительных контакта, которые освобождают внешний кристалл, что влечет за собой использование в качестве контактов PORT для ваших проектов AVR. Обычно внешний кристалл требуется, когда вам требуется высокая точность синхронизации в вашем проекте. Для обучающихся достаточно внутреннего RC.

Обычно, когда вы выбираете какую-то комбинацию предохранителей, вы не меняете ее. Было бы разово. Вы будете только перепрошивать ПЗУ, а иногда и EEPROM. Для прошивки EEPROM вашей студией WINAVR / ATMEL создается отдельный файл.eep, если ваша программа вообще использует EEPROM для хранения данных. В противном случае EEPROM остается неиспользованной, заполненной данными «FF», которые показывают «NO DATA state» EEPROM.

Шаг 7: Окончательное значение битов предохранителей

Окончательное значение битов предохранителей
Окончательное значение битов предохранителей

После установки всех битов предохранителя и закрытия использованных окон ДЕТАЛИ вы можете увидеть значение битов предохранителя, рассчитанное программой (см. Рис.). Все, что остается, - это выдать «Записать предохранители» с помощью меню. И посмотреть сообщения, сообщающие об успешной записи. Позже вы также можете выпустить READ ALL из меню и проверить, совпадают ли предохранители, считанные на последней вкладке экрана записывающего устройства, с тем, что вы хотели записать в чип. (Проверка предохранителя).

Вы могли заметить, что в начале этой инструкции, когда мы выполняли READ FUSES, на экране отображаются те же значения FUSE, которые мы видим здесь! Это потому, что это предохранители, которые я часто использую и редко меняю их после установки в своем MCU, если только я не изменю частоту с 1 МГц на 4 МГц для некоторых проектов. AVR может быть установлен на максимум 20 МГц (некоторые микросхемы только до 16 МГц). Частота, которую вы устанавливаете для F_cpu, также зависит от напряжения, которое вы подаете на микросхему! Например, если ваш чип работает от 1,8 В Vcc до 5,5 В Vcc (см. Лист данных), вы не ожидаете, что ваш чип будет работать на частоте 20 МГц, если вы подадите на него только 1,8 В! Вы слишком многого от него ожидаете! Таблица в техническом паспорте сообщает вам, при каком напряжении частота достигает максимума на каком значении. Чем выше частота работы вашего чипа, тем больше тепла и больше энергии он потребляет. Думайте о частоте как о сердцебиении животного. Колибри с высокой частотой сердцебиения будет сжигать больше энергии в минуту, чем кит или слон с гораздо более низким сердцебиением! Но тогда он может сделать гораздо больше за более короткое время. MCU именно такой.

Шаг 8: Готово

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

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

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

Удачного программирования.

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