Как прошить микроконтроллер (на примере ATtiny2313)

Итак, имеем ATtiny2313, LPT порт (обязательно железный - никакие USB-2-LPT не работают), 6 проводков (длина не более 10-15см), паяльник.

Желательно иметь разъём DB-25M (папа). С ним удобней подключать, но можно обойтись и без него.

Припаиваем проводки к выводам 1, 10, 17, 18, 19, 20 микроконтроллера. Получаем нечто вроде:
fig.1.jpg
fig.1.jpg (17.82 КБ) Просмотров: 29152

fig.2.jpg
fig.2.jpg (37.37 КБ) Просмотров: 29152

Правда тут не показаны проводки для питания. На следующей картинке они уже есть :-)

Далее если есть разъём DB-25M, то припаиваем проводки к нему в соответствии с таблицей. Если нет, то просто втыкаем проводки в разъём на компьютере (не забывая про таблицу!!!).
connect.gif
connect.gif (6.87 КБ) Просмотров: 29152


Я делал без разъёма (в наличии были тока мамы...), и вот что получилось:
fig.3.jpg
fig.3.jpg (35.14 КБ) Просмотров: 29152


Правда у меня LPT порт вынесен на стол с помощью кабеля длиной 1,5 метра. Но при этом кабель должен быть экранированный, иначе ничего не получится.

Схема сего чуда примерно вот такая:
easySTK200.gif
easySTK200.gif (9.68 КБ) Просмотров: 29152


Ну если быть совсем честным, то желательно собрать "правильный" программатор. И потом будет проще и порт целее. Я пользую STK200/300, схему которого можно найти тут

Далее пользуем программу PonyProg2000.

На том же сайте Вы найдёте и схемы программаторов и саму программу. На всякий случай повторю архив у себя - вот.

После запуска программы она "заржет...." как настоящий пони. Чтобы этого больше не слышать в появившемся окне ставим галочку "Disable sound". Жмём "ОК". Выскакивает окошко:
fig.4.gif
fig.4.gif (5.81 КБ) Просмотров: 29152


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

Жмём "ОК". Выскакивает ещё одно окошко:
fig.5.gif
fig.5.gif (5.57 КБ) Просмотров: 29152


А это нам говорит, что нужно настроить интерфейс (какой программатор и куда подключен.).

Итак заходим в меню: Setup -> Calibration. В появившемся окошке:
fig.6.gif
fig.6.gif (7.06 КБ) Просмотров: 29152


жмём "YES". Проходит пара секунд и программа говорит "Calibration OK".

Далее заходим в меню: Setup -> Interface Setup. В появившемся окошке настраиваем как у показано на рисунке.
fig.7.gif
fig.7.gif (9.58 КБ) Просмотров: 29152


Далее заходим в меню: Command -> Program Options. В появившемся окошке настраиваем как у показано на рисунке.
fig.8.gif
fig.8.gif (8.27 КБ) Просмотров: 29152


Всё готово к программированию!...

Итак, последовательность действий:
fig.9.gif
fig.9.gif (14.73 КБ) Просмотров: 29152


1. Выбираем из списка "AVR micro"
2. Из другого списка выбираем "ATtiny2313"
3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл, например "rm-1_full.hex".
4. Жмём кнопочку "Launch program cycle". Когда программирование завершится прога скажет "Program successful"
5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку "Security and Configuration Bits". В появившемся окне жмём "Read", потом выставляем галочки СТРОГО так, как показано на рисунке, и жмём "Write".

ВНИМАНИЕ! Если Вы не знаете, что означает тот или иной конфигурационный бит, то не трогайте его.
fuses.gif
fuses.gif (13.49 КБ) Просмотров: 29152


Это соответствует следующей конфигурации:
DWEN1debugWIRE - Disable
EESAVE1EEPROM memory is preserved through the Chip Erase - OFF
WDTON 1Watchdog Timer - OFF
BODLEVEL101Brown-out Detection level = 2,7V
CKDIV81Divide clock by 8 - DISABLED
CKOUT1Output Clock on CKOUT pin - DISABLED
SUT10Start-up time: 14CK + 65 ms (Slowly rising power)
CKSEL0100Internal Calibrated RC Oscillator 8MHz


Ну вот теперь у нас готовый к работе контроллер!
Вложения
PonyProg_V207c.zip
(545.43 КБ) Скачиваний: 2074

а вот у меня вопросик...
если сначала собрать полностью устройство (например термостат) с "чистым" flash,
то можно ли подключить программатор прямо к устройству и запрограммировать?

если да, то предполагаю последовательность действий:
- подключаем программатор
- запускаем PonyProg
- подаем питание на ATtiny2313
- программируем
просьба поправить если что не так написал :jokingly:

Valentin_N писал(а):можно ли подключить программатор прямо к устройству и запрограммировать

имеенно так и делаю, только надо иметь ввиду, если к выводам контроллера подключены светодиоды, или другая нагрузка, то её должен потянуть программатор!

Valentin_N писал(а):если да, то предполагаю последовательность действий:
1) подключаем программатор
2) запускаем PonyProg
3) подаем питание на ATtiny2313
4) программируем

1-3 пункты можно выполнять в любой последовательности, главное чтобы в момент программирования на контроллере было питание и он был подключен к программатору.

В даташите на ATTINY2313 написано, что на вход XTAL1 нужно подать не менее 6 импульсов чтоб ввести контроллер в режим програмирования...

Доброе время суток!
Помогите мне с одной (возможно, и с несколькими, еще не знаю сам) проблемами.
Делаю вот такие действия, надеюсь в комментариях не нуждается. Картинки кликабельни.
Изображение Изображение Изображение
Изображение Изображение Изображение
Изображение Изображение
* Разводка такая, как у Вас на єтой картинке.
И потом наблюдаю при программировании:
Изображение Изображение Изображение

Подскажите, в чем проблема, а еще лучше, как ее устранить.
Заранее спасибо.

З.И. извините, что пишу уркаинскими символами - какой-то глюк.

нда... фото очень прояснили дело - ничего не видно.
перемычки есть?
питание?
Раз вы уже завязвлись с платой, то сделали бы нормальный программатор с буферное микросхемой.

Извините за качество - под рукой только моб.
перемички есть: (2-12) (3-11)
питание подаю от блока питания.
возможно єто из-за того, что у меня установлен принтер на LPT. (где-то вичитал)
я не так с платой хотел поковиряться как испробовать новую "травилку")))

Физически - отключаю, конечно.
По сути там только драйвер принтера на операционке остался.

здравствуйте
у меня такая проблема
Заблокировался ATTINY2313 как можно разблокироват мк без спец программатора
спасибо за ответ

Что значит заблокировался? лок биты? или биты отвечающие за источник тактовых импульсов? Подробнее пожалуйста.

ЗЫ: у меня поломалась машина, как исправить? :shock:

лок биты. и теперь не могу подключить не с rs232 и не с lpt программатором.
не один программатор не видит мк.

если лок биты, то никак. На то они и лок биты...
Для современных (здесь я не имею ввиду ПЛИС) PIC’ов и в AVR защищенность так высока, что вскрытие если и производится, то путем разборки микросхемы с соответствующими знаниями по архитектуре кристалла. Иногда быстрей и дешевле сделать ре инжинеренг системы, чем пытаться вскрыть прошивку. Или как вариант дать деньги, которые планируются на вскрытие, некому лицу, который имеет доступ к прошивки, а еще лучше к исподникам. Потому что дизасм hexов в том же IDA тоже имеет свои заморочки. А как дело идет дальше разговоров - начинаются отмазки. Так что не беспокойтесь - защиты современных кристаллов достаточно.

Можно БЕСТОЛКОВЫЙ ВОПРОС ЗАДАТЬ?!? А по этому же принципу какие ещё контроллеры можно прошивать? Я имею ввиду принцип 6 проводов...

все контроллеры Атмела. С другими не работал - не знаю. В ПИКах - там вроде только через COM-порт, соответственно преобразователь уровней нужен...

я когда только начинал, сделал программатор известный как ByteBlaster, и прямо в плату впаял панельку под тини 2313. http://radiokot.ru/start/mcu_fpga/avr/03/ вот статья эта . Но проблемма - ни с какой программой нормальной не конектится, только со своей программкой , для которой *.bat файлы писать нада под контроллеры и биты настраивать. Не очень удобно.... Нада на "5 проводков" переходить :-)

Мне нужно прошить МК на кварц 10Mhz. Фьюзы виставил как надо. После того Комп не видит МК. Как прошить МК на кварц 10Mhz с помощью вашей схеми??

Help! Установил PonyProg 2000, собрал адаптер на м/сх М74НС244В.
Схема правильно собрана, питание +4,94v, но на програмирование ругается "Devise missing or unknowt devise(-24)".
Подскажите где искать ошибку!

Добрый день.
Изготавливаю большие светодиодные часы-термометр (1000 светодиодов). Облазив
интернет в поисках схемы, решил собрать на базе http://ryaskin65.narod.ru/Project03/Project03.html#7
С контролерами работать не умею, пытаюсь разобраться. Вот что сделал.
собрал программатор на 5 проводов по схеме отсюда
http://hardlock.org.ua/mc/other/burn_2313/index.html , питание взял с
компа, Вот что получилось http://mdoga.ru/Cloc/clok.htm . Подключил,
запустил. Все делал пошагово как указано на
http://hardlock.org.ua/mc/other/burn_2313/index.html . Контролер
определился, процес прошивки пошел (побежали строки) и....вот дело
дошло до фьюзов. И здесь не понятно. В пошаговой инструкции есть такой пример
http://hardlock.org.ua/mc/other/burn_2313/fuses.gif , в реальности
при нажатии на кнопку "Security and Configuration Bits" появляется
http://mdoga.ru/Cloc/CLOC2.htm . Вопрос. Что мне нужно выставить?
То что в примере, или оставить все без изменений как само стало, или
чтото изменить???
Пока ничего не менял, боюсь запороть контролер.
Спасибо.