Реле Tianbo - ресурс 10 млн переключений

Миниатюрный, быстрый, автономный программатор AVR микроконтроллеров с SD картой памяти. Часть 1 - Основные характеристики, поддерживаемые режимы и принципиальная схема программатора

Журнал РАДИОЛОЦМАН, июль 2011

Paweł Kisielewski

В статье мы рассмотрим конструкцию и возможности программатора AVR микроконтроллеров µProg, который является простым в использовании, очень дешевым в изготовлении, миниатюрным, очень быстрым и автономным, использующим SD карту памяти. Такой вид программатора пригодится, если целевое устройство на микроконтроллере находится в труднодоступном месте и вы не можете (или не хотите) подключать ноутбук для программирования или обновления ПО целевого устройства.

Технология правильного хранения аккумуляторов и батареек по рекомендациям FANSO и EVE Energy

Миниатюрный, быстрый, автономный программатор микроконтроллеров AVR

Отличительные особенности и основные характеристики программатора:

  • компактные размеры – 44 мм × 39 мм × 5.5 мм;
  • высокая скорость программирования:
    • запись – до 12.5 Кбит/с;
    • чтение – до 14.5 Кбит/с;
  • поддержка файловой системы FAT16 и FAT32;
  • поддержка чтения, записи, верификации Flash-памяти и EEPROM;
  • поддержка чтения, записи, верификации Fuse-битов и Lock-битов;
  • поддержка чтения/записи фалов BIN, HEX и TXT;
  • возможность установки заводских установок Fuse-битов для целевого микроконтроллера;
  • организация пользовательского интерфейса на базе графического дисплея LPH7779 с контроллером PCD8544;
  • анимация работы и при выполнении операций;
  • стандартный разъем программирования – 6-выводный Atmel ISP;
  • возможность обновления собственного ПО с SD карты памяти;
  • простой в использовании, 4 кнопки управления;
  • автовыбор скорости программирования (до 4 МГц);
  • рабочее напряжение 3 В, поддержка целевых микроконтроллеров с напряжением питания от 3 в до 5 В.

Поддерживаемые микроконтроллеры

Зеленым цветом выделены протестированные микроконтроллеры.

Заметьте, что не все микроконтроллеры полностью поддерживаются программатором – для некоторых поддерживаются только операции с Fuse- и Lock-битами. Системная информация о поддерживаемых микроконтроллерах содержится в системном файле chip.db (храниться на SD карте).

  • Микроконтроллеры с Flash-памятью 1 КБайт:
    • AT90s1200, ATtiny11, ATtiny12, ATtiny13/A, ATtiny15
  • Микроконтроллеры с Flash-памятью 2 КБайт:
    • ATtiny2313/A, ATtiny24/A, ATtiny26, ATtiny261/A, ATtiny28, AT90s2333, ATtiny22, ATtiny25, AT90s2313, AT90s2323, AT90s2343
  • Микроконтроллеры с Flash-памятью 4 КБайт:
    • ATmega48/A, ATmega48P/PA, ATtiny461/A, ATtiny43U, ATtiny4313, ATtiny44/A, ATtiny48, AT90s4433, AT90s4414, AT90s4434, ATtiny45
  • Микроконтроллеры с Flash-памятью 8 КБайт:
    • ATmega8515, ATmega8535, ATmega8/A, ATmega88/A, ATmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, ATtiny84, ATtiny85, ATtiny861/A, ATtiny87, ATtiny88, AT90s8515, AT90s8535
  • Микроконтроллеры с Flash-памятью 16 КБайт:
    • ATmega16/A, ATmega16U2, ATmega16U4, ATmega16M1, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P/PA, ATmega165A/P/PA, ATmega168/A, ATmega168P/PA, ATmega169A/PA, ATtiny167, AT90pwm216, AT90pwm316, AT90usb162
  • Микроконтроллеры с Flash-памятью 32 КБайт:
    • ATmega32/A, ATmega32C1, ATmega323/A, ATmega32U2, ATmega32U4, ATmega32U6, ATmega32M1, ATmega324A, ATmega324P, ATmega324PA, ATmega325, ATmega3250, ATmega325A/PA, ATmega3250A/PA, ATmega328, ATmega328P, ATmega329, ATmega3290, ATmega329A/PA, ATmega3290A/PA, AT90can32
  • Микроконтроллеры с Flash-памятью 64 КБайт:
    • ATmega64/A, ATmega64C1, ATmega64M1, ATmega649, ATmega6490, ATmega649A/P, ATmega6490A/P, ATmega640, ATmega644/A, ATmega644P/PA, ATmega645, ATmega645A/P, ATmega6450, ATmega6450A/P, AT90usb646, AT90usb647, AT90can64
  • Микроконтроллеры с Flash-памятью 128 КБайт:
    • ATmega103, ATmega128/A, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, AT90usb1286, AT90usb1287, AT90can128
  • Микроконтроллеры с Flash-памятью 256 КБайт:
    • ATmega2560, ATmega2561

Принципиальная схема программатора

Схема: Миниатюрный, быстрый, автономный программатор AVR микроконтроллеров с SD картой памяти
Кликните для увеличения

Основой программатора является микроконтроллер Atmel AVR ATmega328P-20AU, работающий от внутреннего RC осциллятора 8 МГц. Для организации пользовательского меню применяется монохромный графический ЖК дисплей LPH7779 на базе контроллера PCD8544 (установлен в мобильном телефоне Nokia 3310). Организация дисплея 84×48 точек, имеет стандартный набор инструкций и может работать на частоте 4 МГц.

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

  1. это китайский вариант дисплея, который собран на ином драйвере (не PCD8544);
  2. дисплей не поддерживает работу на частоте 4 МГц.

Некоторые способы решения этих проблем мы рассмотрим в третьей части описания.

Для работы дисплея требуется два конденсатора (С2, С3) для встроенного преобразователя напряжения, номинальное значение емкости – 1 мкф. Однако, как было замечено, дисплей прекрасно работает при установке конденсаторов номиналом 100 нФ.

Для навигации по меню и управления программатором используются 4 кнопки (LEFT, RIGHT, UP, DOWN).

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

Основные параметры питания программатора:

  • номинальное напряжение питания: 3.3 В;
  • максимальное напряжение питания: 3.6 В;
  • минимальное напряжение питания: 2.7 В;
  • потребление тока при инициализации: до 100 мА*;
  • потребление тока при программировании: до 10 мА*;
  • потребление тока при навигации по меню: 5 мА;
  • потребление тока в отключенном состоянии (режим Power Down): 0.1 мкА.

* - потребляемый ток зависит от применяемой SD карты памяти.

Карта памяти, в зависимости какой тип используется, может потреблять ток при инициализации до 100 мА и это большой ток для батареи питания. Конденсатор С5 помогает удерживать напряжение в процессе инициализации, и необходимо, чтобы он имел большую емкость, но не слишком большую, т.к. заряжается он через 3 линии ввода/вывода микроконтроллера. Опытным путем было установлено, что конденсатора емкостью 10 мкФ достаточно для многих SD карт памяти.

Источник питания – две батареи типа CR2032 включенных параллельно, в таком случае напряжение питания программатора будет 3.0 В, но емкости данных батареек не хватит чтобы питать целевой микроконтроллер – падение напряжения сделает невозможным процесс программирования или может повредить данные на SD карте памяти. Возможно подключение батареи с большей емкостью (например, от мобильного телефона), но помните, что максимальное напряжение питания не должно превышать 3.6 В.

Программатор работает только от напряжения получаемого от батареек, не установлено никаких регуляторов напряжения. Процесс программирования целевого микроконтроллера может проходить при питании его от 3 В до 5 В, в то время как программатор имеет напряжение питания 3 В. С одной стороны (со стороны программатора) с целью защиты входной линии микроконтроллера программатора от напряжения выше напряжения питания, вход MISO подключен через стабилитрон 3.3 В (D1) и резистор (R1). Со стороны целевого микроконтроллера, который имеет напряжение питания 5 В, уровень напряжения 3 В распознается по линии SCK и MOSI как высокий уровень (согласно технического описания VIH=0.6VCC=0.6×5 В = 3 В – гарантированное значение).

Как вы заметили, программатор не имеет механического выключателя питания, включение и выключение производится удерживанием кнопки LEFT. После выключения питания, микроконтроллер отключает питание дисплея и SD карты и переходит в режим Deep Sleep, в котором потребляет от батареи ток 0.1 мкА (типовое значение).

Печатная плата размерами 39 мм × 44 мм × 5.5 мм, двухсторонняя.

Следует обратить внимание на один важный момент в аппаратной части программатора - по сигнальным линиям MOSI и SCK включены защитные резисторы номиналом от 33 до 330 Ом (на схеме программатора они не указаны). Это позволит защитить чип программатора при программировании микроконтроллеров с питанием 5 В.
Включение резисторов показано на схеме ниже.

защитные резисторы  на сигнальных линиях программатора
Кликните для увеличения

Обновленное ПО и сам процесс обновления мы рассмотрим в 3 части статьи.

Часть 2. Описание функций и опций, режимы работы, тестирование скорости работы

Загрузки

Принципиальная схема (Eagle 5.10, PDF), рисунки печатной платы (Eagle 5.10, PDF), список компонентов - скачать
Рисунок печатной платы ver.1.1 (с защитными резисторами интерфейса программирования) - скачать

diy.elektroda.eu

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: µProg - tiny, fast, portable AVR programmer with SD. Part 1. Features, Schematic and Description

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • сколько стоит и как купить
  • Вообще-то можно и самому собрать, все необходимое для этого (схема, рисунок печатной платы и прошивки) имеется.
  • Вот если бы на другой кристалл прошивку перекомпилить... А то с приобретением меги328 возникли трудности.
  • Здравствуйте. Я хочу собрать этот программатор. Всем он хорош, да только запитывается от батареек, которые придётся время от времени менять. Хочу туда приспособить Li-ion (или Li-pol) аккумулятор, нужно придумать как устроить систему зарядки, чтоб, например, от USB (или любого другого источника) заряжалось. Подскажите, как это можно сделать.
  • К примеру, для информации: от Microchip микросхема MCP73831, в которой реализована возможность задания тока предзаряда, встроены контроль и защита по температуре.