Программатор на 74hc374 под lpt. Программаторы COM и LPT

Для начала работы с микроконтроллерами AVR, необходимо обзавестись средствами внутрисхемного программирования. На начальном этапе вполне подойдет несложный адаптер STK 200/300. В приведенной схеме присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11). Для изготовления адаптера потребуется разъем DB25М с пластиковым корпусом, десятижильный плоский кабель, разъем IDC-10, стеклотекстолит и детали. Принципиальная схема LPT программатора AVR показана на рисунке.

Детали устройства монтируются на односторонней печатной плате, которая изготавливается по ЛУТ технологии. После монтажа планарных элементов можно припаивать микросхему 74HC244. С помощью многожильного или одножильного монтажного провода небольшого сечения припаиваем перемычки в соответствии со схемой .

Завершив распайку всех перемычек припаиваем десятижильный плоский кабель. Далее кабель складывается поперек за корпусом микросхемы и подготавливаются проводники, которые должны быть подключены к общему проводу. Подготовка сводится к подгонке длины этих проводников таким образом что бы их можно было припаять к корпусу разъема. После чего они зачищаются, скручиваются, лудятся и припаиваются в одной точке к корпусу, что позволяет отказаться от дополнительного крепления кабеля внутри корпуса.

Не смотря на то, что длина кабеля не должна быть более полуметра, для обеспечения надежной работы адаптера, иногда использовали адаптер даже с двух метровым кабелем без всяких проблем. Надеюсь данная схема окажется полезной для тех, кто решится начать свою работу с микроконтроллерами AVR со сборки адаптера STK200/300. Схему испытал: serh7000.

Первым шагом по освоению микроконтроллера для каждого наверняка является сборка программатора. Купить программатор тоже можно, но за совсем неразумные деньги, как по мне. Рассмотрим работоспособный программатор для AVR’ок, которым я пользуюсь вот уже 4-й год. В свое время показал отец, программа мне очень понравилась, и было решено делать под нее программатор. Порывшись на сайте программы, обнаружил простую схему программатора (COM порты я не рассматриваю по причине легкости их горения от статики):


Ее повторение не займет более часа, но гарантирует целостность вашего LPT порта и совместную работу с Pony Prog 2000 . Микросхема – буфер. Резистор R1 – 100k, конденсатор C1 – 0.1мкФ. Диод D1 – любой кремниевый. LPT разъем типа «папа». Теперь разберемся с ISP разъемом, который будет использоваться для программирования. Выводы MISO , MOSI , SCK , RESET – управляющие, вывод LED – к нему подключается светодиод, который сигнализирует чтение/запись прошивки в микроконтроллер, VDD и GND соответственно +5В и земля.

Для подсоединения микроконтроллера удобно использовать шлейф на 10 проводов и соответствующий IDC , но это дело вкуса и каждый сам решает, как ему нравиться, главное не делать его слишком длинным, во избежание наводок. У меня получилось вот так:



Для тех, у кого по тем или иным причинам нету LPT порта и лень бегать к соседу зашить прошивку могу посоветовать толковый USB программатор (сайт проекта prottoss.com). Достаточно просто повторить схему и правильно прошить управляющий контроллер (для этого, как ни крути понадобиться LPT или COM порт). Вот такой USB программатор собрал себе:


Перейдем к программной части. В начале говорилось, что программировать мы будет с помощью Pony Prog 2000 .

Первое включение и калибровка:
При первом использовании программатора не забываем корректно его настроить: Setup->Interface setup, в появившемся окне выбирай LPT порт, к которому подключен программатор, выбираем AVR ISP API в выпадающем списке, а флажки Polarity of control lines не трогаем, оставляем пустыми. Далее калибруем все это дело Setup->Calibration. Все, теперь мы можем с помощью нашей макетной платы программировать AVR"ки.

Выбор среды для написания программ:
Теперь осталось выбрать, в какой среде писать программы и на каком языке. Рекомендую писать на С, если не критичен размер и скорость выполнения программы.

Его освоение намного легче ассемблера, но знание ассемблера незаменимо для написания коротких и быстрых программ, понимания работы микроконтроллера. Я пишу свои программы в связке бесплатных программ и и очень доволен результатом, но здесь на вкус и цвет товарищей нет, выбор за вами.

Почти успех =) => =(

Спаял вроде все как на схеме)
Тоесть не вроде а так и есть)
Только вместо D1 поставил ИК диод незнаю скажется ли как то другово под рукой не было)

Первая проблема когда пытался прошить с настройкой AVR ISP API (LPT2 другово немог выбрать)
выбивало 16 ошибку, типа нет порта

После того как поменял настройки на AVR ISP I/O LPT1 выбило ошибку -24 типа я незнаком с вашим девайсом)
И пытается прошивать. . . пока без результатно(((

подскажите в чем проблема?
Слышал вроже нужно менять какие то настройке в биос?
так вот какие?7?

поздравьте с приобретением!

купил нечто миниатюрное, на usb, без корпуса и без всяких bells&whistles, в инструкции сказано что это аналог stk500, может определяться как avr910, но у меня определился как avr doper.
пока никуда не подключал - при попытке чтения фьюзов программа пишет programmer is not responding.
подозреваю, что так и должно быть.
теперь собственно вопрос. на самой плате есть разъемы на 6 и на 10 штырьков, но кабель - только на 10. для прошивки микроконтроллера мне надо только ножки к штырькам mosi, vcc, rst, miso и ground подключить? остальные могут пины микроконтроллера могут висеть свободными?

Для программирования МК

Для программирования МК требуется подключить к программатору MOSI, MISO, SCK, RESET и подать питание. Остальные можно не трогать. Смотри доку на программатор, какие из тех пинов нужно вывести.

тыкс

он отказывался у меня работать как avr910, как stk500, как stk500v1, зато прочитал фьюзы как stk2, и прошил флешку за пару секунд. попробую дособирать свой дивайс и запустить его))
микруха прошита!

первый раз, первый программатор, боюсь что-либо спалить)

Доброго времени суток всем!
Подскажите пожалуйста, а Выводы MISO, MOSI, SCK, RESET – управляющие, нужно напрямую подсоединять к МК или как здесь

Я имею ввиду через резисторы выводы MISO, MOSI, SCK, RESET подтягивать к питанию и земле надо?
Дело в том, что у меня мега16, там вывод RESET инверсный, сброс по нулю будет по идее, мне R3 на землю бросить?


Спасибо если кто откликнется!
p.s. Диплом с МК попался, а я не шарю:) Хочу разобраться, но тонкостей очень много...

Программатор из 5 проводков для микроконтроллеров AVR является самым простейшим программатором, который можно собрать на "коленке". Устройство подключается к ПК через LPT порт, что является недостатком программатора т.к. в современных материнских платах не часто можно встретить наличие порта.

Для изготовления программатора понадобятся:

1. Штекер из 25-и контактов для параллельного порта (LPT) DB-25M.

2. Резисторы любые 4 шт. номиналом 100-150 Ом для защиты порта от короткого замыкания и неправильного монтажа.

3. Шлейф или МГТФ провод. Для предотвращения ошибок от помех и наводок при чтении и записи микроконтроллера рекомендуется использовать провод длинной до 20см.

4. Термоусадочная трубка для изоляции оголенных участков проводников, которая предотвратит короткое замыкание.

Сборка программатора

На рисунке изображена схема распайки проводников и резисторов R1-R4, а так же перемычек.

Контакт №6: SCK - последовательный тактовый сигнал (англ. Serial Clock). Служит для передачи тактового сигнала для ведомого устройства.

Контакт №7: MOSI - выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.

Контакт №9: RESET - сброс, используется для входа и нахождения в режиме последовательного программирования.

Контакт №10: MISO - вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.

Контакт №18-25: GND - контакти земли, объединяться с контактом питания GND программируемого микроконтроллера. Можно подключить 1-н контакт на выбор не обязательно все.

Контакт №2,12; 3,11: Перемычки, для определения программатора как STK 200,300.

Видео к статье:

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

Если программируемый микроконтроллер будет питаться внешним источником питания (батарейки, блок питания), то обязательно нужно соединить минус компьютера (GND 18-25 контакти LPT порта) с минусом микроконтроллера.

Эта статья – подробная инструкция как запрограммировать AVR микроконтроллер при помощи LPT программатора и программы UniРrof.

Сначала обязательно прочитайте , многое станет понятней.
Скачайте программу UniРrof .
- Программатор для AVR. Смотрим avr.nikolaew.org

нажимаем «ОК» (в следующий раз устанавливать не придется – программа запомнит установки). Все — программатор «прописан».

2 Подключаем программатор к LPT порту.

3 Подключаем программатор к плате микроконтроллера, подаем питание на микроконтроллер.

4 Запускаем UniРrof (если уже не запущен), выбираем в поле LPT порт. Синим должно отобразиться . Для проверки надежности связи тыкаем несколько раз в . Если на каком либо этапе выпадает , то связь ненадежна – ставим галочку — и проверяем заново.

5 Нажимаем кнопку загрузить , выбираем нужный . В окошке появятся цифры – наша программа.


P.S. Нужно прошить кроме Flash еще и EEPROM?
Все просто! Сначала ставим галочку EEPROM — появится окошко EEPROM (Галочку «тормоз» нужно поставить до этого!). Далее открываем HEX-файл, автоматически программа найдет и загрузит EEP-файл (заполнятся данными оба окошка PROGRAM и EEPROM). Если юнипроф сам не определил EEP-файл откроется диалог выбора файла. Далее действуем как описано выше. При нажатии кнопки «Prog» программируется и Flash и EEPROM. Вот и все!

(Visited 20 158 times, 6 visits today)

Раздел: Метки: ,

Навигация по записям

027-UniProf-программируем AVR через LPT порт. : 47 комментариев

  1. alexandershahbazov

    Почему-то с миросхемой SN74HC244N не пошло, а с 5 проводками пошло.
    Пишет «МК не откликнулся …» . Только кнопка «Read» заработала. И очень долго шло.
    Правда отладочная плата моя на ATmega8 .
    С обеими программаторами у меня все идет без запинок на CodeVisionAVR и
    avrdude 5.8 .

    Повторюсь, что с 5 проводками работает.


  2. GetChiper Автор записи

    Пробовали ставить галочку «Тормоз»?
    Не нужно привязываться к UniProf. Программа имеет определенные недостатки. Основное ее достоинство — с ней легко начать работать, даже если до этого Вы никогда не прошивали контроллеры. Неизбежно Вы будете расти в профессиональном плане — поменяете программатор, поменяются и программы.
    Avrdude — очень хорошая альтернатива — пользуйтесь ею!

  3. alexandershahbazov

    «027-UniProf – программируем AVR через LPT порт» прочитал внимательно,
    галочку «Тормоз» ставил.
    avrdude 5.8 попробовал одновременно с UniProf и PonyProg v207c .
    Коммандная строка непривычна для меня, хотя свой самый первый светодиод зажег именно с помощью avrdude на Linux-e RHEL 4 AS .

  4. ec

    аха, с буфером не работает, по всей видимости, потому что юнипроф не дружит с STK, для котором на лпт-разъеме замыкаются 3-11 и 2-12 выводы.
    Зато у понипрог есть файл автоматизации — чудная вещь, если не хочется думать, какие куда ставить фьюзы и быстро прошить.


  5. GetChiper Автор записи

    Ну вот — еще плюс в копилку Юнипрофа. Но вот над помехоустойчивостью я бы, на месте автора программы, поработал. Хотя, если скорость не критична, режим «тормоз» решает все проблемы.

  6. ankar

    А мне он просто нравится тем, что не надо выбирать кристалл.Если не видит ищи косяк.В поньке записываешь, а только потом понимаешь, что потратил даром время. Не, если надо с кучей процов работать, то, конечно, берешь другой побыстрее. А если 1 или там 5 штук, то, для меня Унька (спасибо Николаеву) самое то. Кстати на своем аттлоне ХР3 2.2 гига ни разу не ставил «тормоз».LPT кабель длиной 1.5 метра. Безо всяких наворотов.

  7. Николай

    Успешно прошил ATmegu8 через LPT, но вот второй раз прошить не удаётся, программка пишит «МК неоткликнулся». Пожалуйста, подскажите, что нужно сделать чтоб прошить второй раз! кнопку рессет, на плату не вводил.


  8. GetChiper Автор записи

    А фьюзы шили?

  9. Николай

    Фьюзы шил, по инструкции. Везде понажимал Read, а затем Write. Сам галочки не менял. Контроллер работает, светодиод моргает по прошитому hex, но программа не находит его.

  10. Николай

    Проблема решена! Фьюзы в порядке. Проблема в некачественной пайке, оторвался MOSI на плате. Паяйте добротно и не спеша 🙂 !!!


  11. GetChiper Автор записи

    Слушайте Николая — дело говорит! 🙂

  12. NikAndrew

    А когда фиюзы прописываеш отмеченные галочной 0 или 1?

  13. NikAndrew

    все разобрался 0 нет галочки, 1 есть галочка)

  14. zhenya1995

    Здраствуйте, у меня программатор 5 проводков, также у меня не стандартный LPT порт я его докупал к компьютеру, и у этого порта другой адрес (С880) подскажите пожайлуста программу где можно задать именно этот адрес или еще способ какой, чтобы запрограммировать?


  15. GetChiper Автор записи

    Разве винда его не видит?

  16. ankar
  17. Greider

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


  18. GetChiper Автор записи

Перед начинающими вопрос “а чем мы будем прошивать свой контроллер?” встает практически сразу. Эта проблема решается двумя путями – покупаем серийный программатор или собираем свой собственный. Естественно нецелесообразно приобретать какой либо из серийных программаторов на начальном этапе знакомства с микроконтроллерами. Самым простым решением будет так называемый программатор «пять проводков». Это вариант вполне подойдет для разового применения, но существует большая опасность, что рано или поздно ваш LPT- порт в компьютере сгорит. В качестве бюджетного и безопасного варианта программатора для параллельного порта мы используем более совершенную схему.

Представляем простой и безопасный программатор для параллельного порта. Схема программатора достаточно распространена в различных вариациях и основана на использовании микросхемы-буфера 74HC244N. Буфер сохраняет ваш порт принтера в целости и сохранности. Дополнительно в схему включен резистор, задачей которого является защита от статического электричества.

Программатор совместим с Атмеловскими STK200/300 и поддерживается многими популярными компиляторами. Весь небольшой набор деталей для его сборки достаточно распространен и не вызовет трудностей с приобретением. Печатная плата выполнена в одностороннем варианте с несколькими перемычками.

Для подключения программатора к компьютеру удобно использовать кабель – удлинитель LPT-порта.

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

Статьи по теме: