Самый простой программатор

В самом начале работы с микроконтроллерами новички сталкиваются с одной очень неприятной проблемой, а именно проблемой отсутствия необходимого оборудования. Собрать настоящий программатор с буфером довольно сложно, да и времени жалко. Именно на такие случаи рассчитан этот проект.

Ниже вы можете ознакомиться с очень скромным списком необходимых деталей:

  • Микроконтроллер Atmel ATtiny2313
  • Гнездо для микроконтроллера
  • Разъем для соединения с параллельным портом DB25
  • Несколько разъемов (см. проект)
  • Пара светодиодов
  • Несколько резисторов

Внимание! В вашем компьютере должен быть параллельный порт ( LPT ).

Теперь немного о программном обеспечении. Работать с микроконтроллером вы можете как и с Linux ( на основе Debian, Ubuntu например ), так и с Windows.

Для Windows:

Для начала необходимо скачать программу WinAVR.

Далее запустите install_giveio.bat который находится в директории C:winAVRin . Таким образом вы откроете доступ к параллельному порту.

Для Linux (на примере Ubuntu 8.04):

Открываем терминал и выполняем следующую команду:

sudo apt-get install avrdude avr-libc binutils-avr gcc-avr

Теперь необходимо выполнить два следующих файла (они сохранены как .txt, не обращайте на это внимания):

Первый txt файл

Второй txt файл

Теперь перейдем на уровень «железа», а именно сделаем кабель. Для этого необходимо соединить определенные выводы параллельного порта с соответствующими вводами микроконтроллера (см. datasheet). Ниже приведена таблица подключения:

 Вывод параллельного порта AVR Цвет
 2 MOSI Оранжевый/Серый
 11 MISO Оранжевый
 1 SCK Зеленый
 16 RESET Коричневый
 18 GND Коричневый/Серый

Внимание! Если вы собираетесь использовать другой микроконтроллер, да и вообще для защиты параллельного порта лучше всего установить резисторы на 2,11,1,16 выводы сопротивлением в 150 Ом. В противном случае вы рискуете сжечь порт!

Зеленый провод – Reset. Проверьте, правильно ли вы все установили!

Теперь для удобства можно собрать плату с гнездом для МК и штырьками для подключения программатора.

Что бы проверить работоспособность собранного нами программатора сделаем маленький проект. Для этого соединим вместе светодиод и резистор (150Ом достаточно).

Одного будет достаточно.

Процедура программирования практически не отличается ни в Ubuntu, ни в Windows, поэтому ниже приведено несколько универсальная инструкция:

  • Создаем директорию для нашего проекта
  • Копируем Makefile в эту директорию

Makefile можно загрузить здесь.

  • Копируем исходный код

Исходный код можно загрузить здесь.

  • Отредактируйте Makefile таким образом, что бы там отображалась информация о микроконтроллере который вы собираетесь использовать и о названии проекта.

Финальный шаг отличается – для Windows :

  • Вам осталось переименовать Makefile.txt в Makefile

Для Linux:

  • Переименовываем Makefile.txt в Makefile, затем убираем # перед строкой

dev/parport0

и ставим # перед строкой

lpt1

Приступаем к программированию:


Вставляем микроконтроллер в гнездо и подключаем программатор к комьютеру.

Теперь:

В системах с Linux:
1) Переходим в директорию нашего проекта (команда cd в терминале, для помощи наберите cd man)
2) Набираем make

В системах с Windows:
1) Открываем LED_Demo.c используя Programmer's Notepad.
3) Выбираем Tools и Make Program

Смотрим, что бы в логе не появилось ошибок. Если их нет – то все прошло удачно! Поздравляю!


Перевод: Ale)(ander, по заказу РадиоЛоцман

На английском языке: Ghetto Development Environment

Изготовление 1-4 слойных печатных плат за $2

10BASE-T1L Ethernet по витой паре: реализация на основе микросхем Analog Devices
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Рабочий программатор. Начинал пограммировать AT90S1200. Без проблем.
  • О да помню, помню - начинал с этого, пять проводков, правда большая часть статьи (мне так кажется) о проверке работоспособности...
  • так.. толь у меня повыалзило толь.. Где сама схема программатора?
  • :eek: ну нет ее там по монтажной плате смотри
  • Знакомо - так называемый Jtag (специализированный аппаратный интерфейс). Проще некуда :) Меняют прошивки на спутниковых ресиверах подобным девайсом, если отсутствует COM-порт.
  • я таким ATmeg-у 8ю прошивал... прошилась с первого раза :)
  • Для однократного программирования подойдет. Для нормального программирования нужно хоть буфер поставить.
  • а какое напряжение питание там подаеться???
  • В смысле? Это ведь программатор микроконтроллеров (AVR), подключается на LPT порт, питание - 5В.
  • Наверное, [B]CFox[/B] посчитал, что нужно какое-то внешнее питание, а где его взять и куда подключить :) - никакого внешнего питания подключать не надо.
  • Просто-не значит КАЧЕСТВЕННО ! Или хорошо. Надо смотреть конструкции в сети и выбирать из них.
  • а что это у него за штекер справа не пойму тогда???:confused: [IMG]http://www.rlocman.ru/i/Image/2009/03/31/15.jpg[/IMG]
  • Может для светодиода?
  • Мы с друганом, таким прошивали спутниковые ресиверы не один раз.
  • Питание подается скорее всего от отдельного источника питания 5 В, и на фотке видно, что этот разъем и есть питание. Врядли питание на мк подается от LPT порта.
  • Данный программатор немного не то, Вы прошивали спутниковые ресиверы скорее всего через JTAG...
  • Почему-то это напомнило мне Jtag :) [B]Vadzz[/B], полагаюсь на Ваш ответ так-как мог и ошибиться.
  • 100% это разъем питания. В статье описан каждый контакт порта лпт, которые подаются на программатор. Контакта питание с компа там не предусмотрено. Сам пользуюсь аналогичным только с буфером.
  • Ничего страшного, у самого такое бывает. JTAG тоже имеет 5 сигнальных линий (а если точно то шесть - TDI, TDO, TCK,TRST, TMS и GND), но это совсем другой интерфейс (интерфейс отладки/программирования).
  • Согласен с [B]bobesh[/B], если только в качестве одноразового использовать его. Порт LPT в компах часто (если не всегда) делают не защищенным. Если сделаете конструкцию неаккуратно, или питание не туда подадите, или замкнете чего... Прощай порт! У меня один системник раньше был, он при замыкании LPT имел какую-то защиту, и просто отключал порт до перевключения компа. Перезагрузил (с выключением питания) - и порт снова работает. Но это скорее исключение, по моему опыту. Меня вот еще чего интересует. Будет ли работать софт программатора, если использовать не "железный" LPT компа, а преобразователь USB-LPT? Например на микросхемке от FTDI? С применением преобразователя USB есть еще один плюс. Питание программируемого микроконтроллера можно взять от этого же порта USB.
Полный вариант обсуждения »