Перед тем, как привести инструкцию для PonyProg2000, отвечу на часто встречающиеся вопросы:
А для компьютеров, где нет LPT порта, можно применять переходные платы USB ->LPT?
Нет, пока не встречал таких переходников, с которыми работает программатор STK200/300 и программа PonyProg.
Можно какие-то рекомендации на эту тему?
1. С PonyProg работает также программатор SI-Prog
Он подключается к COM-порту. И при настройке PonyProg выбирается не LPT, а соответствующий COM-порт.
2. Есть множество переходников USB-COM, с которыми “работает” SI-Prog и PonyProg, но очень и очень медленно. Этот вариант использовать не рекомендуется.
3. С USB-портом рекомендуется использовать AVRISP-MKII от Atmel. Этот программатор можно найти в продаже, но он - дорогой.
Есть множество клонов этого программатора, например, на сайте www.fourwalledcubicle.com
У клонов есть разные варианты исполнения, например: microsin.ru, radiokot.ru, avrdevices.ru ...
4. С USB портом работает также простой программатор USBtinyISP .
5. Любой из школьников, выполнивший и защитивший 8-ое задание, может получить печатную плату любого программатора (под LPT, COM или USB) бесплатно. Для каждого из программаторов есть два варианта исполнения с выводными и с SMD-компонентами (выбор зависит от навыков монтажа-пайки).
PonyProg2000
Порядок действий:
1. Загрузка и установка PonyProg;
2. Первый запуск. Настройка PonyProg для работы с программатором STK200/300;
3. Подключение программатора к схеме с микроконтроллером и конфигурационные ячейки микроконтроллера (Fuse Bits);
4. Запись в микроконтроллер (файл *.hex).
1. Загрузка и установка
Перейдите по ссылке http://www.lancos.com/ppwin95.html и прокрутите страницу где-то до середины.
Там нужно нажать на наиболее позднюю версию, на момент написания инструкции была - v2.07c BETA:
На следующей странице через несколько секунд должно появиться окошко (разное для разных браузеров) с предложением сохранить файл.
SourceForge - один из самых больших в мире веб-сайтов для разработчиков открытого программного обеспечения.
На момент написания инструкции сайт выглядел так:
2. Первый запуск. Настройка PonyProg для работы с программатором STK200/300
Собранный и проверенный программатор STK200/300 подключите к LPT порту ПК. Программатор соединяется или сразу с LPT-портом или для удобства в работе через кабель-удлинитель. У ПК порт LPT - это 25-ти контактый разъём DB25 розетка (гнездо).
Внимание! Не путайте с разъёмом типа DB25 вилка - это 25-ти контактный разъём COM порта.
Открываем PonyProg2000.
В появившемся окне можно отключить звук поставив галочку Disable sound.
Жмём кнопку OK:
После первого запуска программы и закрытия заставки появляется два предупреждения.
Первое сообщает, что вы должны выполнить калибровку через опции меню перед любыми операции чтения-записи.
Жмём кнопку OK:
Второе сообщает, что вы должны выполнить настройку через опции меню перед любыми операции чтения-записи.
Жмём кнопку OK:
Учитывая эти предупреждения начнём настройку.
Выбираем на панели инструментов в раскрывающихся списках - AVR micro, ATtiny13:
Заходим в настройки Setup->Interface Setup (или жмём кнопку с изображением ключа на панели инструментов):
Появилось окно:
Исправляем его содержимое на (в случае LPT программатора):
(номер LPT порта зависит от вашего ПК, обычно LPT1)
Жмём на кнопку Probe (программатор должен быть подключен к LPT порту компьютера).
Если всё настроено правильно, то появится окно с надписью Test OK,
жмём кнопку OK, и закрываем окно настроек кнопкой OK.
Заходим в калибрацию Setup->Calibration:
В появившемся окне сказано закрыть все программы кроме PonyProg2000.
Закрываем все программы кроме PonyProg2000 и жмём кнопку Yes:
В появившемся окне с надписью Calibration OK жмём кнопку OK:
Настройка PonyProg2000 закончена.
3. Подключение программатора к схеме с микроконтроллером и конфигурационные ячейки микроконтроллера (Fuse Bits)
Подключите программатор к схеме на макетке (или к плате AT13) через 10-ти проводной шлейф; один из разъёмов шлейфа (с любой из его сторон) присоединяется к разъёму на программаторе, а второй разъём шлейфа (с другой его стороны) подключается к схеме с микроконтроллером. Подайте питание 5В.
Если Вы выполняли все проверки до этого момента, то всё должно быть нормально. Светодиоды индикации на блоке питания и на программаторе должны светиться (если они там есть). Теперь самое, почти заключительное!
Чтобы окончательно убедиться, что всё работает как надо, вам необходимо выполнить хотя бы одно действие над микроконтроллером с использованием программы PonyProg2000 и программатора. Например, считать конфигурационные ячейки микроконтроллера (Fuse Bits).
Жмём кнопку с изображением замочка на панели инструментов (или Command->Security and Configuration Bits) для того, чтобы считать конфигурационные ячейки микроконтроллера:
Должно появиться окно:
(если вы установили на макетку "свежий" микроконтроллер ATtiny13, то в окне будет заводская конфигурация)
При первом нажатии на замочек состояние ячеек считается сразу же автоматически.
В дальнейшем нужно жать кнопку Read, можно и сейчас её нажать.
Если у вас что-то не работает, то на экране монитора появится окно с ошибкой.
Также можно изменить состояние ячеек и перезаписать их, нажав на кнопку Write, но пока не следует этого делать, сейчас нам подходит заводская конфигурация. Итак, если вы наблюдали на экране наличие процесса чтения и увидели содержание конфигурационных ячеек, то уже можно подвести первый итог всей проделанной до этого работы.
У вас есть рабочий программатор со шлейфом, на макетке установлен микроконтроллер ATtiny13 и он правильно "отзывается".
Теперь необходимо разобраться с конфигурационными ячейками в окне.
Как вы знаете, или догадываетесь, у любого процессора, в том числе и микроконтроллера, есть такой параметр, как рабочая частота. При написании любой программы необходимо знать, на какой частоте работает микроконтроллер. И этой частоте должны соответствовать ячейки CKSEL0, CKSEL1 и CKDIV8 (рассматривать состояние ячеек будем на примере заводской конфигурации).
1. Ячейки CKSEL0 и CKSEL1:
В ячейке CKSEL1 нет галочки, в ячейке CKSEL0 установлена галочка, при этом, любому из положений соответствует "1" или "0" по справочнику.
Запомните !!!
- если галочки нет - значит, ячейка = 1,
- если галочка есть, то, значение ячейки = 0.
Здесь состояние ячеек CKSEL1 и CKSEL0 соответствует частоте 9600000 Гц (см. справочник, в литературе обычно пишут CKSEL[1:0]).
2. Ячейка СKDIV8.
СKDIV8 - это ячейка-делитель на 8. Если в ячейке CKDIV8 установлена галочка, то частоту, определяемую по ячейкам CKSEL0 и CKSEL1 необходимо разделить на 8, и вы узнаете рабочую частоту микроконтроллера. В заводской конфигурации галочка в ячейке CKDIV8 есть, значит, включён делитель на 8. Следовательно, 9600000/8 = 1200000 Гц – это и есть - рабочая частота микроконтроллера.
Содержание конфигурационных ячеек SUT1 и SUT0 определяет время задержки сброса после подачи питания. Ячейки SUT1, SUT0 и остальные конфигурационные ячейки пока трогать не следует. Пока достаточно точно понимать назначение ячеек CKSEL0, CKSEL1 и CKDIV8.
Итак, рабочая частота микроконтроллера = 1200000Гц или 1.2 МГц.
Закройте окно конфигурационных ячеек кнопкой OK (или Cancel).
Сейчас можно закрыть PonyProg2000, но при следующем запуске не забудьте считать конфигурационные ячейки микроконтроллера!
4. Запись в микроконтроллер
Открываем (если он был закрыт) PonyProg2000.
Жмём кнопку с изображением замочка на панели инструментов (или Command->Security and Configuration Bits) для того чтобы считать конфигурационные ячейки микроконтроллера:
Должно появиться окно:
Нажмите кнопку Read и если считывание прошло успешно закройте окно конфигурационных ячеек кнопкой OK.
(Состояние конфигурационных ячеек должно соостветствовать частоте 1200000Гц)
Открываем файл с кодом для прошивки (расширение .hex) нажав кнопку на панели инструментов (или File->Open Device File):
Появилось его содержимое:
Для записи программы в микроконтроллер жмём кнопку на панели инструментов (или Command->Write All):
Жмём кнопку OK:
В появившемся окне с надписью Write successful жмём кнопку OK:
Готово!
Примеры программ расположены в разделе форума с заданиями.