Программатор stk500v2 by petka своими руками

ПРОГРАММАТОР STK500 НА ATMEGA8

Недавно решил сделать себе программатор STK500v2. Пользую в основном CodevisionAVR. Старый AVR910 не совсем подходил, да и нужен был внутрисхемный программатор. Долгие поиски в сети и чтение форумов привели меня к “AvrUsb500 by Petka”. Программатор был собран и я получил массу положительных эмоций – эффект примерно такой, как будто пересел с советского автопрома на иномарку! Конечно AVR910 надежен как танк – программная реализация USB в нем таких глюков не имеет. Но на тот момент это все были мелочи, по сравнению с преимуществами работы прямо из CodeVision и высокой скорости. Довольно долгое время эти два программатора служили мне верой и правдой, пока с AVR910 не пришлось расстаться. Вот и решил собирать очередной программатор.

К этому времени убедился, что столь любимая нашими радиолюбителями FT232 не так безгрешна как о ней думают. Было собрано несколько разношерстных устройств на этой микросхеме, все пожелания производителя в даташите были учтены, тонна драйверов перепробована на разном железе. Скажу больше – мой промышленный Chipstar XL имеет в качестве USB конвертера тоже FT232, и хоть и не использует VCP-драйвер но глючит тоже не слабо.

Эти все “выбрыки” за пару лет эксплуатации порядком надоели, потому решил модифицировать оригинальную схему. На глаза попалась CP2102 – USB-UART преобразователь. Простая схема, хорошие отзывы о самом производителе (SiLabs) и главное – доступная цена.

Схема программатора

Обвязка CP2102 выполнена исключительно по даташиту без каких-либо своевольных “художеств”, от себя добавлен лишь второй светодиод, индицирующий наличие питания.

Читайте также:  Шкаф купе своими руками мебельный щит

Программирование контроллера производится внутрисхемно. Пятачки предусмотрены на плате. Установка фузов ATMega8:

  1. Субъективно все стало работать на 20-25% быстрее.
  2. Полностью пропали глюки присущие FT232. Определяется без проблем каждый раз, даже после быстрого “перетыкивания” USB, без проблем заработала со всеми моими шнурками.
  3. Драйвера моя Windows 7 вытянула с сервера обновления и поставила сама.

В дальнейшем коснусь лишь узла CP2102, так как работа самого программатора в сети расписана подробно.

Сразу хочу оговориться – проблемой “курицы и яйца” особо не заморачивался, все цепи самопрограммирования через USB вырезаны в угоду размеру. Эта компиляция программатора рассчитана больше на людей с более-менее приличной подготовкой. Причин тому несколько – корпус CP2102 MLP28 (5×5 мм) с контактными площадками на “пузе” вместо ножек – без определенных навыков не поставить, дорожки 0.25 мм – делал обычным утюгом.

Он стал намного быстрее, чем мой старый AVR910, купленный когда-то в магазине. Еще советую покрыть плату в несколько слоев PLASTIK-71 и обтянуть термоусадкой (по желанию). А все файлы к проекту скачайте на форуме. Сборка и испытание схемы — LED.

Источник

STK500v2 Мой вариант данного программатора

С самого начала, как только я начал заниматься микроконтроллерами, я собрал себе самый простой STK200 программатор и пользовался им до этого момента. Но в последнее время он перестал меня устраивать и я начал искать альтернативу.
Что из этого вышло я и постараюсь рассказать далее.

К программатору у меня были следующие требования:

  • Скорость прошивки
  • Работа с avrstudio, avrdude и другими распространенными программами
  • USB интерфейс (не программный)
  • Возможность прошивки устройств с различными напряжениями питания (1.5v — 5v)

По всем параметрам мне понравился клон Avrisp mkII. Он был собран и опробован на макетке. По скорости прошивки, думаю, он безусловный лидер. Но у него есть один недостаток, из за которого я отказался его собирать, это невозможность работы с avrstudio и с avrdude одновременно. Тип программы, с которой будет работать программатор задается на этапе компиляции прошивки. Меня это не устраивало.

Позже был найден проект AvrUsb500v2, на основе которого я и сделал себе программатор.
Этот проект был мной доработан программно и схемотехнически. Главная программная доработка, пожалуй, это замена программного spi интерфейса на аппаратный, что дало значительный прирост скорости прошивки. (Полностью atmega8 зашивается за 2 секунды, с верификацией 3 секунды) Теперь скорость isp соответствует выбранной в avrstudio и может меняться от 4kHz до 1.845 MHz. Скорость и другие настройки сохраняются в eeprom.
Также было исправлено несколько багов, переработан местами алгоритм работы программы, добавлена возможность просмотра напряжения питания программируемой схемы в avrstudio. Добавлена возможность генерации внешнего тактового сигнала на 3 ножке 10-пинового isp коннектора. Частота сигнала устанавливается из окна настроек avrstudio и может менятся от 112.5 Hz до 3.686 MHz, либо генерация сигнала вообще может быть отключена.
Добавлена возможность обновления прошивки программатора через bootloader.

В схему я добавил буферы на все линии, для возможности программирования схем с различным напряжением питания (1.5-5v) На линии reset тоже стоит буфер. Это дает возможность программирования нескольких поддерживаемых AT89S* микроконтроллеров, которые сбрасываются плюсом. Если поддержка их не нужна, можно сэкономить на буфере и поставить транзистор (схема и прошивка такого варианта в архиве ниже).
После того, как прошивка зашита в целевое устройство, все буферы, кроме буфера в линии Ex. Clock переводятся в Hi-Z состояние. Буфер в линии Ex. Clock переводится в Hi-Z состояние если выключена генерация внешнего тактового сигнала.
Если не подключено целевое устройство, все буферы, включая Ex. Clock, переводятся в Hi-Z состояние.
В спящем режиме программатора (см. ниже.) все буферы переводятся в Hi-Z состояние.
В качестве usb-uart преобразователя используется CP2102.
Три светодиода индицируют работу программатора.
LED1 — горит, если связь с компьютером установлена, мигает если связи с компьютером нет (компьютер в спящем режиме, компьютер выключен и т.д.).
LED2 — горит при подключении программируемой схемы.
LED3 — обмен данными с компьютером.
Кнопка S1 — режим обновления прошивки, я её не выводил. При необходимости обновления просто замыкаю пинцетом 2 и 3 ножки атмеги (либо 1 и 2 в данной прошивке). Чтобы войти в bootloader необходимо на подключенном к компьютеру программаторе просто замкнуть эти ножки (пинцетом например), при этом никаких переподключений не требуется. Пока мы в бутлоадере горят все три светодиода. Прошивка обновляется средствами avrstudio программой avrprog.
На транзисторе VT1 собрана защита входа VCC от переплюсовки без падения напряжения.
В схеме использована Atmega88. Т.к. SPI теперь используется аппаратный, для достижения минимальных скоростей isp используется программный делитель частоты. В Atmega8, например, его просто нет.

Схема в формате pdf в архиве ниже.

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



Под этот корпус делалась плата, корпус вообще без всяких отверстий.

Такая получилась плата.


На заводской плате:

Спичечный коробок для масштаба

В корпусе были вырезаны все необходимые отверстия, распечатаны наклейки.






В режиме бутлоадера

Программатор в работе

Во вложении схема в pdf, прошивки (bootloader и основная), печатная плата в формате sprint layout 6.0.

UPD.
Обновил прошивку. Теперь минимальная скорость ISP не 14 а 4KHz, что дает возможность программировать контроллеры с низкочастотным кварцем, например часовым.
Такой низкой скорости удалось достигнуть использованием программого spi, на остальных частотах задействован аппартный spi модуль.

UPD1. от 30.03.2013
Обновил прошивку и бутлоадер.
— Изменена работа с бутлоадером, теперь при включении программатора работа начинается не с него, а с разу с основной программы. Чтобы войти в бутлоадер, необходимо на подключенном к компьютеру программаторе замкнуть 1 и 2 либо 2 и 3 ножки микроконтроллера.
— Для исключения дребезга при работе со схемами на граничном напряжении 1.6в введен небольшой гистерезис.
— Мелкие исправления.
! Данная версия прошивки и бутлоадера не совместима с предыдущей! Если хоте обновить, делайте, как написано ниже.

Порядок первой прошивки программатора после сборки:
— Зашейте bootloader.hex и установите фьюзы сторонним программатором. (Прошивка и фьюзы в архиве ниже).
— Подключите программатиор к компьютеру (светодиоды гореть не будут), убедитесь, что номер определившегося com порта не превышает 4.
— Откройте Avr Studio 4 версии, запусти Tools -> AVR Prog., Если все сделали правильно, откроется окошко AVRprog.
— Зашейте по очереди файлы STK500.hex во влеш и STK500.eep в еепром. Нажмите Exit.
— Загорится зеленый светодиод — программатор готов к работе.

UPD2. от 30.03.2013
Конфигурация CP2102.
Скачайте и установите последнюю версию драйвера CP210x, если у вас его ещё нет.
Подключите программатор к компьютеру, запустите программу CP210xSetIDs.exe (скачать), в выпадающем списке выберите подключеннный программатор, заполните поля Max power, Serial Number* и Product String, как показано на скриншоте, не забудьте установить галочки. Нажмите «Program Device».
* Поле Serial Number заполните произвольным набором букв и/или цифр, это нужно для того, чтобы программатор не конфликтовал с другими устройствами на CP2102.
(Кликните для увеличения)

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

Для корректной работы программатора необходимо на вкладке «Управление электропитанием» снять галочку.

UPD3. от 04.06.2013
Добавил в архив схему и прошивку (файлы с префиксом RSTINVERT_) с транзистором вместо буфера на линии reset. Таким образом можно сэкономить один буфер, но теряется поддержка нескольких (старых и экзотических) микроконтроллеров, с инвертированным reset.

Источник

STK500v2 — new edition.

STK500v2 — new edition.

Мир полон чужих мыслей, и все они могут стать твоими.(И.Карпов)

Сразу хочу выразить свою благодарность Bonio за его разработку (STK500v2 Мой вариант данного программатора), а так же помощь которую он предоставил мне при повторении его устройства.

Эра материнских плат с LPT & RS-232 портами потихоньку завершается и уже все реже и реже видишь машины с вышеупомянутыми портами, не говоря уже о ноутбуках.
– Прогресс йопте.
И в век USB 3.0 мой STK200/300 на старенькой машинке не прекращал строчить камни один за другим. Неоднократно пытался перейти на более новые, и как мне казалось более быстрые, программаторы типа AVR910 (Protoss), FT232 без вспомогательного контроллера. Все они работали но далеко не так как мне хотелось. Естественно было обращено внимание на устройства имеющие usb интерфейс, быструю скорость прошивки, широкий диапазон питающих напряжений ведомых МК плюс ко всему софт с которым работает. И вот однажды копаясь по сообществу наткнулся на программатор от Bonio. Судя из описания меня все устраивало, так что можно было смело повторять. Но в силу своего прагматизма было выбрано несколько разновидностей программаторов, а именно: AvrUsb500 by Petka, Программатор для AVR — аналог AVRISP (Хлюпин Н. П.) и AVRISP mk2 Lufa clone Ukraine edition. Программатор Хлюпина вообще хотел немного доработать и сделать usb’образным – но все же пришлось отказаться от этой затеи, так как хотелось соорудить вещь с более менее адекватными затратами времени, денег (хотя все это затянулась на много дольше чем я ожидал). После всех сравнений, подсчета затрат и эффективности, был выбран именно этот вариант.

Так как сам не люблю повторять различные конструкции один в один, пришлось внести изменения, которые на мой взгляд благоприятно повлияют на возможность повторения устройства. Изменениями я называю только переход на компонентную базу 1206 и в добавок перетрасировка ПП для более менее доступного корпуса Z-64. В силу того что устройство является копией оригинала, то я не буду описывать конкретику работы. О параметрах и функционировании устройства можно прочитать в посте автора. Теперь не буду заниматься писаниной, а просто покажу что из этого вышло.



Как на зло не оказалось всего 2-х резисторов, так что пришлось влепить совковые.


Установка драйверов (ОС Windows 7 Ultimate SP1)

Прошивка ATtiny13 (стробоскоп).

Файл ПП и принципиальная схема в архиве, просмоторщик файлов P-CAD 2006.

Источник

Оцените статью