Поиск по этому блогу

31 дек. 2013 г.

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

Paweł Kisielewski
В статье мы рассмотрим конструкцию и возможности программатора AVR микроконтроллеров µProg, который является простым в использовании, очень дешевым в изготовлении, миниатюрным, очень быстрым и автономным, использующим SD карту памяти. Такой вид программатора пригодится, если целевое устройство на микроконтроллере находится в труднодоступном месте и вы не можете (или не хотите) подключать ноутбук для программирования или обновления ПО целевого устройства.
Миниатюрный, быстрый, автономный программатор микроконтроллеров 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/AATmega88/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
Принципиальная схема программатора
Основой программатора является микроконтроллер 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 (с защитными резисторами интерфейса программирования) -скачать
Перевод: Vadim по заказу РадиоЛоцман

Комментариев нет:

Отправить комментарий

Создайте свой комментарий.