Оборудование для прошивки МК 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оборудование для прошивки МК



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

Компьютер, с заранее установленным программным обеспечением (ПО).

Программатор USBASP.

Несколько джамперов.

Макетная плата (набор питается от USB).

Мы с вами договорились использовать МК Atmega8 в корпусе DIP-28

Программа AVRDUDE_PROG 3.3

Программа предназначена для программирования микроконтроллеров AVR ATmega и ATtiny:

1. Возможность самостоятельного добавления программаторов, настройки скорости программирования и т.п;

2. Возможность самостоятельного добавления МК;

3. Редактирование и настройка отображения Fuses битов;

4. Выбор инверсных или прямых Fuses битов;

5. Окна вывода значений Fuses битов в HEX формате;

6. Сохранение настроек программирования при закрытии программы, т.е. при последующем открытии все настройки восстановятся.

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

Последняя версия программы AVRDUDE_PROG — 3.3, из программы всегда можно попасть на сайт разработчика и скачать новые версии. Программа имеет интуитивно понятный интерфейс на русском языке, поддерживает очень много различных программаторов и практически все микроконтроллеры ATmega и ATtiny. Немаловажно и то, что в программу можно самому вносить изменения — добавлять программаторы, микроконтроллеры, изменять некоторые настройки (все подробно расписано на сайте разработчика).

Программа не требует установки на компьютер, необходимо только разархивировать скачанный файл и можно сразу приступать к работе, поддерживаются все разновидности Windows — от ХР до 10.

Окно запущенной программы AVRDUDE_PROG:

1:

— окно выбора типа микроконтроллера

— кнопка «Стереть все» — очищает все внутренности микроконтроллера

2:

— чтение калибровочных ячеек микроконтроллера

В данном примере показаны четыре калибровочные ячейки микроконтроллера ATmega8 для внутреннего RC генератора:

ВВ — для частоты 1 МГц (частота по умолчанию)

BD — для частоты 2 МГц

В2 — для частоты 4 МГц

В2 — для частоты 8 МГц

При тактировании микроконтроллера ATmega8 частотой 1 МГц от внутреннего RC генератора (по умолчанию) содержимое первой калибровочной ячейки автоматически учитывается микроконтроллером для подстройки внутреннего генератора. При других частотах — содержимое соответствующей калибровочной ячейки необходимо вручную вводить в регистр микроконтроллера для получения более стабильной частоты (если такое нужно). К примеру, в конструкции «Трехканальный термостат, термоморегулятор, таймер…», которая работает с тактовой частотой 8 МГц от встроенного генератора с внутренней RC цепочкой, требуется перед прошивкой ЕЕPROM памяти записать в определенную ячейку HEX файла значение калибровочной ячейки для частоты 8 МГц.

3:

— выбор HEX файла для прошивки Flash памяти микроконтроллера, сверка записанного файла с оригиналом, чтение данных из памяти

4:

— выбор HEX или EEP файла для прошивки EEPROM памяти микроконтроллера, сверка и чтение

5:

— выбор программатора (по умолчанию — USBASP)

Если вы будете пользоваться программой скачанной с сайта разработчика то там, по умолчанию (первым в списке), будет идти «USBASP», у меня на картинке 4 разновидности USBASP программатора:

— Usbasp_1M

— Usbasp_4M

— Usbasp_8M

— Usbasp-32кГц

Дело в том, что программатор USBASP позволяет записывать файлы прошивки с двумя скоростями:

— для МК с тактовой частотой 1,5 МГц и выше (без перемычки на J3) — скорость записи 375 кГц

— для МК с тактовой частотой менее 1,5 МГц (с перемычкой на J3) — скорость записи 5 кГц

Для нормальной записи прошивки в МК требуется скорость в 4 раза меньше, чем установленная тактовая частота.

Для прошивки нового МК, у которого по умолчанию тактовая частота 1 МГц, необходимо устанавливать в программаторе перемычку на разъем J3, а сама скорость — 5 кГц, в некоторых случаях начинает нервировать.

Для того, чтобы не портить нервы, не дергаться с перемычкой, я программно установил 4 варианта скорости записи, которые выбираются в зависимости от текущей тактовой частоты МК:

— Usbasp_1M — скорость 187,5 кгЦ, для частот 1-4 МГц

— Usbasp_4M — скорость 375 кГц, для частот 4-8 МГц

— Usbasp_8M — скорость 750 кГц, для частот 8 и более МГц

— Usbasp-32кГц — скорость 4 кГц, для часового кварца

Все эти установки прописаны в самом начале файла «programm.ini» где скорость записи зависит от ключа «-В» и числа после него:

6:

— выбор отображения FUSE битов — прямой (как в UniProf и даташитах) и инверсный (как в PonyProg)

7:

— окно вывода служебной информации о выполняемых и выполненных операциях

Внешний вид окна «FUSES» программы AVRDUDE_PROG:

Тут просто нужно расставить или убрать в нужном виде галочки и запрограммировать FUSE биты. Если что-то не правильно – нажатие кнопки «По умолчанию» приведет установки FUSE битов в значения «по умолчанию» (сами FUSE биты в МК не изменятся!).

Внимательно устанавливайте FUSE биты — ошибка может привести к отказу микроконтроллера.

Самая распространенная ошибка при установки FUSE битов – неправильный выбор источника тактирования и частоту тактирования, к примеру для ATmega8 это: CKSEL0-CKSEL3.

По умолчанию у ATMEGA8 тактовая частота 1 МГц от внутреннего генератора — сброшен бит CKSEL0 (стоит галочка). Если нужно установить тактовую частоту 8 МГц от внутреннего генератора — сбросить бит CKSEL2 (поставить галочку), и если при этом забываем установить бит cksel0 (убрать галочку)! получим совершенно иной результат — программа не работает, а МК не реагирует на программатор.

Забыв сбросить бит CKSEL0 мы получаем другой источник тактирования МК — внешний RC.

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

Внешний вид окна «Автоматическое программирование» AVRDUDE_PROG:

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

Программатор USBASP

Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:

– программатор

– соответствующее программное обеспечение для записи данных в МК

Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем.

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

Мы рассмотрим наиболее распространенную версию программатора:

Характеристики программатора:

– работает с различными операционными системами – Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера  – архив в конце статьи)

– скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек

– имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой)

– поддерживает два напряжения питания программатора – 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах)

– питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА)

Назначение джамперов:

– разъем JP1 – предназначен для перепрошивки микроконтроллера программатора (для перепрошивки – необходимо замкнуть контакты)

– разъем JP2 – напряжение питания программатора – 5 Вольт или 3,3 Вольта (по умолчанию – 5 Вольт, как на фотографии). Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC).

– разъем JP3 – определяет частоту тактирования данных SCK: разомкнутый – высокая частота (375 кГц), замкнутый – низкая частота (8 кГц)

Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер. Если у микроконтроллера установлена частота тактирования более 1,5 мГц – джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц – необходимо закоротить выводы джампера – снизить скорость программирования, иначе запрограммировать микроконтроллер не получится. К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом – почему микроконтроллер не прошивается.

Если пользоваться программой AVRDUDE_PROG, то о перемычке можно забыть

Программатор поддерживается следующим программным обеспечением:

– AVRdude

– AVRdude_Prog

– Bascom-AVR

– Khazama AVR Prog

– eXtreme Burner AVR

Работать с таким программатором очень просто – соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера – программатор готов к работе.

Распиновка 10-контактного кабеля программатора USBASP:

1 – MOSI – выход данных для последовательного программирования

2 – VCC – выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА – чтобы не сжечь порт USB)

3 – NC – не используется

4 – GND – общий провод (минус питания)

5 – RST – подключается к выводу RESET микроконтроллера

6 – GND

7 – SCK – выход тактирования данных

8 – GND

9 – MISO – вход данных для последовательного программирования

10 – GND

Задания к лабораторной работе №3



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 227; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.168.56 (0.015 с.)