Программирование AVR

Печать

Клон программатора Atmel AVRISPmkII

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 6

Этот прогамматор предназначен для программирования микроконтроллеров (МК) производства фирмы Atmel серий AT90, ATTINY, ATMEGA, ATXMEGA и некоторых из других серий по протоколам ISP, TPI или PDI и является очередным "мегаклоном" оригинального программатора Atmel AVRISPmkII, что позволяет использовать его с любым программным обеспечением, поддерживающим протокол AVRISPmkII (STK500v2/USB).
Он основан на проекте LUFA, но существенно доработана аппаратная и программная части: все интерфейсы выведены на один разъем через преобразователи уровней, управляющая программа оптимизирована под конечную схему (в исходных текстах убрано все лишнее и исправлена пара ошибок), добавлена калибровка RC-генератора по методике AVR053.

Основные характеристики:
- программирование микроконтроллеров (МК) AVR серий AT90, ATTINY, ATMEGA и ATXMEGA по интерфейсам ISP, TPI или PDI;
- работа с программным обеспечением, поддерживающим протокол AVRISPmkII (STK500v2/USB);
- поддержка тактовых частот для интерфейса ISP от 51 Гц до 8 МГц, 250кГц для интерфейсов TPI и PDI;
- наличие генератора меандра с частотой 1МГц;
- возможность подачи напряжения 3В или 5В на МК от программатора с защитой от перегрузки по току (самовосстанавливающийся предохранитель на 100мА);
- преобразователи уровней на всех линиях позволяют программировать МК во всем диапазоне их напряжений питания от 1.8В до 5.5В;
- возможность калибровки внутреннего RC-генератора контроллера по методике AVR053, при этом опорная частота равна 32258Гц;
- работа в операционных системах Linux/Windows;
- нет необходимости использования дополнительных устройств для обновления ПО программатора - оно осуществляется через USB разъем программатора.

Печать

Fuse-бит доктор с LED индикатором

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 11

Иногда, разрабатывая устройства на 8 и 14-выводных микроконтроллерах AVR, требуется использовать вывод Reset как линию вода/вывода. Сделать это возможно, установив соответствующую конфигурацию Fuse-битов. Но после этих действий доступ к микроконтроллеру для внутрисхемного программирования теряется, т.к. мы отключаем линию Reset.

Мы рассмотрим устройство, которое позволит сбросить конфигурацию Fuse-битов микроконтроллеров Atmel ATtiny13, ATtiny25/45/85 к заводским установкам и, таким образом, даст возможность программировать микроконтроллер внутрисхемно (последовательный интерфейс).

Устройство при восстановлении конфигурации целевого микроконтроллера работает по интерфейсу высоковольтного последовательного программирования (HVSP). Следует отметить, что устройство не подходит для микроконтроллеров с 20 и более выводами, для них, в таких случаях, используется интерфейс высоковольтного параллельного программирования (HVPP).

Конструкция очень проста в изготовлении, не содержит дорогостоящих компонентов. Основой является микроконтроллер ATtiny2313. Кроме того, потребуется светодиодный семисегментный 4-разрядный индикатор, на котором будут отображаться значения установленных Fuse-битов.

Печать

Восстановление заводской конфигурации fuse-битов микроконтроллера Attiny13

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 6

Часто в моей практике при программировании  микроконтроллеров  ATtiny13, которые часто использую, возникали  ситуации, когда микроконтроллер то ли из-за программ или неправильных ошибочных действий при программировании «самоблокируется» и отказывается программироваться повторно в ISP-режиме. Насколько я понял, подобная проблема волновала не только меня. И  изучив статьи по ссылкам, я понял что надо попробовать собрать подобное устройство, которое бы возвращало залоченный микроконтроллер к жизни. Потому, как держать STK500 наготове и доставать его всякий раз для таких случаев не всегда удобно.

Выход из ситуации один, перепрограммировать его программатором, восстановив заводские настройки в режиме высоковольтного параллельного программирования, в так называемом H/V режиме. Данного режима нет у простых программаторов, которыми в большинстве пользуются начинающие радиолюбители осваивающие работу с микроконтроллерами AVR.

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

Печать

Программатор AVR на микросхеме FT232RL

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 7

В наши дни становиться всё меньше и меньше ПК с наличием в них COM и LPT портов.  В этом случае можно использовать USB программаторы, но большинство из них имеют в своём составе микроконтроллер, который тоже нужно чем-то прошить. Вот тут и начинается проблема “курицы и яйца” т.е чтобы собрать программатор нужен ещё один программатор. Но к счастью в интернете уже давно появилась схема высокоскоростного USB программатора, не требующего прошивки управляющего контроллера. Программатор называется USBBit. В составе этого программатора имеется распространённая микросхема FT232RL. Это аппаратный высокоскоростной переходник USB – RS232, который может не только эмулировать RS232, но и поддерживает прямой доступ к порту (это когда мы можем не только записать в порт число, но и выставить любой вывод порта в 0 или 1). Такой режим называется BitBang. Именно с помощью этого режима можно эмулировать интерфейс SPI, по которому программируются микроконтроллеры AVR. Недостатка у этой микросхемы два: она очень маленькая и запаять её бывает сложно, и она дорогая (у нас она стоит 210 рублей). Но это стоит того! Программатор получается отличный, а главное не требует прошивки управляющего контроллера! Схема (упрощённая):

Печать

Альтернативные прошивки для AVR910 by PROTTOSS, AVR-Doper, USBasp

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 3

1. AVR-Doper

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

Мой порт AVR-Doper для AVR910 сделан аккуратно, он не нарушает целостности исходников (т.е. там аккуратно добавлен AVR910, ничего не попорчено). Веселый баг с потерей USB-пакета также исправлен.

В целом прошивка работает так же, как и оригинальная: при подключении программатора появляется COM-порт, перемычка 'low sck' работает для понижения частоты, красный светодиод мигает при записи/стирании чипа, зеленый горит при "подключении к девайсу" (когда пины настраиваются как выходы), на выходе "LED" генерируется 1 МГц.

Печать

Программатор STK500v2 by Bonio

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 8

С самого начала, как только я начал заниматься микроконтроллерами, я собрал себе самый простой STK200 программатор и пользовался им до этого момента. Но в последнее время он перестал меня устраивать и я начал искать альтернативу. Что из этого вышло я и постараюсь рассказать далее.

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

- Скорость прошивки
- Работа с AVRStudio, AVRDUDE и другими распространенными программами
- USB интерфейс (не программный)
- Возможность прошивки устройств с различными напряжениями питания (1.5v — 5v)
Печать

Программатор AVR – аналог AVRISP

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 3

Благодаря оптимальному соотношению цена/качество микроконтроллеры семейства AVR фирмы Atmel пользуются заслуженной популярностью как среди радиолюбителей, так и профессионалов. Возможность их программирования по последовательному интерфейсу SPI позволяет использовать для этих целей очень простые программаторы, например PonyProg. Такой программатор подключается к LPT или COM порту компьютера и по сути содержит только буферные элементы для согласования уровней выводов порта с контроллером. Все необходимые алгоритмы реализуются управляющей программой, запускаемой на компьютере. Казалось бы, это самый простой и в то же время наилучший вариант. Зачем усложнять задачу? К сожалению, все не так просто.

Основное назначение LPT порта – это работа с принтером, а COM порта – обеспечение связи с внешними устройствами, например модемом по интерфейсу RS-232. Программное управление уровнями на отдельных линиях этих портов хотя и возможно, но это уже нестандартная задача, а значит за то, что она будет выполняться корректно, изготовители материнских плат ответственности не несут. Да и не далек тот день, когда эти порты вовсе исчезнут из компьютера, а работать через конвертер USB-COM простейшие программаторы не могут. Более того, стандартная аппаратно-программная конфигурация персонального компьютера даже при наличии быстродействующих процессора и ОЗУ не позволяет точно сформировать интервалы времени, меньше нескольких сотен миллисекунд. Для программирования же современных контроллеров необходимы импульсы длительностью порядка единиц микросекунд и менее. Поэтому невозможно гарантировать корректную работу простых программаторов на всех без исключения компьютерах.

Печать

Миниатюрный программатор USBTiny-MkII SLIM

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 4
Миниатюрный программатор USBTiny-MkII SLIM

USBTiny-MkII SLIM – программатор клон AVRISP-MKII, поддерживающий все микроконтроллеры семейства Attiny, Atmega и Xmega. Программатор имеет три интерфейса программирования: ISP (внутрисистемное программирование), PDI (интерфейс программирования и отладки) и TPI (Tiny Programming Interface. Используется для программирования Low-end микроконтроллеров Atmel серий ATtiny4, ATtiny5, ATtiny9, ATtiny10, ATtiny20, ATtiny40). Подключается непосредственно к интерфейсу USB, что позволяет просто и быстро обновлять прошивку программатора. Программатор поддерживает работу в среде AVR Studio, работает с утилитой AvrDude.

За основу конструкции программатора взят проект LUFA (Lightweight USB Framework for AVRs), представляющий собой завершенный USB стек с открытым исходным кодом для микроконтроллеров Atmel AVR со встроенным USB интерфейсом AT90USBxxxx и ATMEGAxxUx, а также конструкции USBTiny-MKII и USBTiny MKII PL. Сердцем программатора является микроконтроллер AT90USB162, что предоставляет высокую скорость программирования.

Печать

ucGoZilla - USB программатор микроконтроллеров AVR

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 5

Устройство предназначено для программирования микроконтроллеров (МК) AVR фирмы ATMEL. В зависимости от версии программного обеспечения управляющего контроллера, плата может работать по протоколам STK500v2 или JTAGICEmkII. Основные характеристики:

Прошивка STK500v2

- Работа с программными средами AVRStudio, CodeVisionAVR, AVRDUDE по протоколу STK500v2.
- Программирование МК серии AT89 (только для AT89S51, AT89S52) по интерфейсу ISP;
- Программирование всех МК AVR серий AT90, ATtiny, ATmega по интерфейсу ISP;
- Тактовая частота порта ISP от 1.21 кГц до 1.845 МГц;
- Наличие дополнительного генератора с изменяющейся частотой от 15 Гц до 3.68 МГц (поддерживается пакетом AVRStudio);

Прошивка JTAGICEmkII

- Работа с программными средами AVRStudio и AVRDUDE по протоколу JTAGICEmkII.
- Программирование всех МК AVR серий AT90, ATtiny, ATmega, ATXmega по интерфейсам ISP, JTAG, PDI;
- Тактовая частота интерфейсов JTAG и PDI от 26.2 кГц до 3.6 МГц;
- Тактовая частота интерфейса ISP от 51 Гц до 8 МГц;

Печать

Биты конфигурации и биты блокировки памяти микроконтроллеров AVR

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 4

Биты блокировки памяти (Lock Bits)

Исторически сложилось так, что даже самые первые модели микроконтроллеров имели программируемые ячейки защиты информации. Микроконтроллеры AVR так же имеют такую защиту. Это специальные ячейки, построенные по принципу Flash-памяти (то есть, энергонезависимой памяти с электрическим стиранием информации). Каждый микроконтроллер имеет как минимум две защитные ячейки LB1 и LB2. Запись и чтение этих ячеек возможна только в режиме программирования. При записи нуля в LB1 блокируется запись данных во Flash и EEPROM память. Одновременно блокируется возможность изменять конфигурационные ячейки. Если записать ноль еще и в LB2, то блокируется и возможность чтения всех данных. После этого прочитать содержимое вашей программы становится невозможным. Для повторного использования микроконтроллера нужно выполнить команду «Стирание микросхемы». При этом вся информация, записанная в микросхему теряется, зато способность чтения и модификации восcтанавливается. В микроконтроллерах семейства Mega имеются дополнительные ячейки защиты BLB02, BLB01, BLB12, BLB11. Они служат для ограничения доступа к различным областям памяти программ. Подробнее об этом смотрите в описании конкретной микросхемы.

Рекомендуем посмотреть