Журнал РАДИОЛОЦМАН, август 2011
Paweł Kisielewski
Миниатюрный USB программатор микроконтроллеров AVR с поддержкой нескольких интерфейсов программирования и высокой скоростью работы
![]() |
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, что предоставляет высокую скорость программирования.
В отличие от представленных конструкций, в которых для конвертирования логических уровней интерфейсов применяется микросхема GTL2003, в нашем программаторе используется микросхема MAX3002 - 8- канальный транслятор уровней. Такая конструкция позволяет программировать целевые микроконтроллеры с напряжением питания меньше 5 В. Однако, в связи с этим, потребовалось внести изменения в ПО программатора.
Принципиальная схема программатора USBTiny-MkII SLIM
На схеме видно, что кроме микроконтроллера AT90USB162 и микросхемы MAX3002, имеется регулятор напряжения 3.3 В, светодиоды статуса, конфигурационные перемычки и коннекторы интерфейсов программирования.
Регулятор напряжения с низким падением напряжения (LDO) MCP1825S-3302ED с выходным напряжением 3.3 В используется для питания целевого микроконтроллера (конечно, если целевой микроконтроллер имеет напряжение питания 3.3 В). Возможно использование любого другого регулятора напряжения, например LF33. Перемычка (джампер) JP2 предназначен для выбора напряжения питания целевого микроконтроллера: при замыкнутых контактах 1 и 2 – напряжение питания целевого микроконтроллера 5 В, при замыкнутых контактах 2 и 3 – напряжение питания целевого микроконтроллера 3.3 В. Если JP2 полностью отключен, то схема преобразователя уровней остается обесточенной и пользователь может подать напряжение для питания этой части от внешнего устройства с целевым микроконтроллером.
Следует отметить, что текущая версия программатора не позволяет программировать целевой микроконтроллер по интерфейсу ISP, если линии интерфейса подключены к какой-либо нагрузке на целевой плате (сопротивление более 22 кОм для подтягивающих к «+» питанию резисторов или сопротивление более 10 кОм для подтягивающих к «–» питания).
Джамперы HWB и RST используются для активизации внутреннего загрузчика микроконтроллера с целью обновления прошивки программатора по интерфейсу USB.
Печатная плата разработана с возможностью изготовления ее в домашних условиях, и позволяет использовать данный программатор в качестве отладочной платы для микроконтролеров со встроенным интерфейсом USB. На изображении ниже видны контактные площадки, подключенные к свободным линиям ввода/вывода микроконтроллера, что позволяет пользователям использовать их при разработке различного рода USB приложений.
Вид печатной платы программатора
В следующей части статьи мы рассмотрим процесс прошивки микроконтроллера программатора и работу с программатором в среде AVR Studio и AVRDude.
Загрузки
Принципиальная схема и рисунок печатной платы (Eagle 5.10, PDF), две версии HEX файла для прошивки микроконтроллера, исходный код (WinAVR версия 110528)– скачать