42

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :)

Всем привет! Давненько ничего не писал, даже чувствую себя немного виноватым перед подписчиками, оправдываться не буду, так получилось :)

Вернуться решил с небольшой серией программаторов, из которых у меня готово 2 из 3, и потом планирую забабахать сравнение всех, что у меня есть. Начну сегодня с самого последнего, который я собрал буквально на днях и дожидался разрешения автора на размещение. И да, кстати, про паяльную станцию (если кто-то её еще до сих пор ждет) я не забыл, просто с деталями выходит уже несколько месяцев косяк за косяком. Ну да ладно, об этом я расскажу уже в посте о ней, если все наконец-то сложится.


Вернемся теперь к нашим баранам - программатору STK500. Обычный человек, мало знакомый с микроконтроллерами (дальше буду писать для сокращения м/к), может спросить - а на кой ляд мне ентот ваш высоковольтный программатор сдался? Я вообще своим USBasp программирую и в ус не дую! Все так, читатель, да не так. Приведу небольшую выдержку из документа, великолепно написанного некоим _abk_ c форума radiokot, очень доступно объясняющего, почему такая вещь в хозяйстве всегда пригодится (далее - прямая цитата из документа, который я для интересующихся приложу в архив со всем нужным для сборки, немного длинно, но стоит прочтения):


Что такое «параллельный» программатор, и зачем он нужен.

Следует напомнить, что в целом МК AVR поддерживают 3 режима программирования:


1. режим последовательного программирования по интерфейсу SPI (LVSP) – всем известный и применяемый в подавляющем количестве случаев, и позволяющий программировать впаянный чип прямо в плате (in system, ISP). Режим поддерживают, пожалуй, все существующие программаторы, начиная от «пяти проводков» до фирменного AVR ISP и самых «навороченных».

2. режим последовательного программирования при высоком напряжении (HVSP);

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


Переключение МК во второй и третий режимы требует подачи управляющего «высокого» (+12В) напряжения на вывод Reset МК. Понятно, что в этих режимах программирование МК, уже впаянных в плату, требует принятия дополнительных мер для непопадания напряжения +12В в цепи на плате, присоединенные к выводу сброса. В случае параллельного режима понадобилось бы предусмотреть также подключение относительно большого числа выводов.


Какие режимы поддерживает конкретный МК, можно узнать из даташитов на них. Понятно, например, что МК с небольшим числом выводов (большинство AVR Tiny) не позволяют реализовать режим параллельного программирования.


Когда же нельзя обойтись самым простым и удобным режимом последовательного программирования по интерфейсу SPI ?


Вообще говоря, таких случаев – два.


Первый: модель МК не поддерживает режим. Например, Tiny11 программируется только в режиме 2, а Tiny28 допускает исключительно параллельное программирование (режим 3).


Нас больше интересует случай


Второй, когда в результате ошибочного или умышленного конфигурирования контроллера при установке фьюзов отключается SPI или вывод Reset конфигурируется как вывод порта. После этого последовательное программирование по SPI становится невозможным и микроконтроллер «умирает». Теперь что-то изменить можно только в режимах 2 или 3 в зависимости от модели МК.


Теперь вернемся к самому программатору :)

Если вкратце, то таким программатором можно оживлять некоторые м/к, которые неправильно запрограммированы, и при этом еще и обычный режим он поддерживает на ура. Вот тут, если честно, я не уверен, может ли он починить все неправильно выставленные фьюзы или только те, что указаны в статье, но мои два с отключенным ISP он поднял, так что оставлю этот вопрос более знающим людям.

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :) Ремонт техники, Хобби, Длиннопост, Atmel, Avr, Stk500, Программатор

Тут - принципиальная схема доработанного программатора HVProg от Sema с форума radiokot. Вот именно ее, немного доработанную и измененную MakSVs'ом оттуда же, я и буду собирать. Некоторые доработки по сравнению с оригинальной схемой:

1. Добавлен 10-пиновый ISP разъем для большего удобства и совместимости с обычными качельками, например, или какой-нибудь ардуиной.

2. Добавлена внешняя EEPROM для FT232BL. В целом, ее можно было бы и убрать из схемы, так как она только запоминает различные настройки фт-шки, но стоит она и обвязка на нее копейки, а перелопачивать аккуратно разведенную и готовую схему не хотелось - проще было купить 10 штук за 78 рублей :)

3. Добавлен внешний разъем питания для 5V линии ISP 10 pin. В том варианте, что был представлен на печатной плате, это показалось мне спорным добавлением (особенно на фоне некоторых допилов, которые мне все-таки пришлось провести), но после общения с автором я понял, что сакральный смысл в этом все-таки есть - при большом потреблении тока есть возможность включить питание по внешней линии и спокойно прошивать что-то ресурсоемкое внутрисхемно.

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :) Ремонт техники, Хобби, Длиннопост, Atmel, Avr, Stk500, Программатор

Таким вот переходником и качелькой я пользовался для прошивки сердца этого программатора - ATMEga8535 в корпусе TQFP44. Гуглится переходничок легко, но я все равно добавлю его в архив в конце для тех, кому лень искать/неохота разбираться в засвеченных на фото надписях. Лукавый красный проводок - это одна перебитая моей тяжелой рукой дорожка, вместо которой я напаял прямо к ноге контроллера это чудо :)


Теперь к самой печатной плате! Сейчас я покажу вам, как нарисовать сову что получилось в результате и что мне пришлось допилить.

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :) Ремонт техники, Хобби, Длиннопост, Atmel, Avr, Stk500, Программатор

На фото видно несколько моих колхозов из-за отсутствия некоторых деталей - вместо катушки на 200 мкФ я поставил на 220 мкФ, да еще и смд, припаяв откушенные ножки от светодиодов. Bc857 у меня тоже не оказалось - заменил его на bc557, те же яйца, только в профиль в другом корпусе, ну и вот это махонькое чудо сразу после мини-юсб - это опять же смдшный предохранитель на 0.5А с ножками от тех же самых побитых жизнью светодиодов. Для межслойных переходов я использовал ножки от всего подряд, припаивая ее с одной стороны и придерживая снизу пинцетом, потом переворачивая и запаивая сверху, таких перемычек вышло около 20.

Посмотрим теперь на другую сторону, там тоже есть интересности:

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :) Ремонт техники, Хобби, Длиннопост, Atmel, Avr, Stk500, Программатор

Здоровый красный провод - это решение сразу двух проблем здесь - отсутствие внешнего разъема питания (я банально не узнаю, какой это разъем). А вторая проблема, которую я упоминал ранее, это то, что в данной схеме отсутствует выбор питания извне/с самой схемы. Эту проблему уже на готовой плате я решил такой вот перемычкой, в архиве же, который я упоминаю уже в третий раз, я приложил свой вариант схемы, который я сам пока еще не проверял (не хватает несколько деталей, а с рабочего программатора я доставать не хочу), в котором я решил это проблему, добавив 3 штырька, один межслойный переход и один джампер.

Покажу вам теперь доказательства работы данного чуда:

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :) Ремонт техники, Хобби, Длиннопост, Atmel, Avr, Stk500, Программатор

Шьет он довольно быстро, программа на кое-что, что я постараюсь либо до сессии, либо сразу после нее показать (для самых внимательных любителей читать кучу текста!) зашилась примерно секунды за 3, считая секунду, пока он тупил. Восстанавливал битый чип он чуть дольше, секунд 10, но все равно это не лпт-порты, где можно спокойно сидеть по минуте и в конце получить ошибку. Как настроить и подключить - будет написано в файле. Я лично со всеми программаторами работаю из-под виртуальной машины, что упрощает установку драйверов и работу со старыми программами - из-под моей основной 10 винды столько геморроя, что даже не стоит пробовать. Под семеркой я устанавливать не пробовал, но думаю, что после отключения проверки драйвера должно заработать. По поводу виртуальной машины стоит почитать отдельно, процесс настойки/установки ее очень прост, а этот пост и так выходит слишком длинным.

STK500 - высоковольтный программатор для м/к Atmel. Возвращений пост :) Ремонт техники, Хобби, Длиннопост, Atmel, Avr, Stk500, Программатор

Решил показать последнюю картинку программатора поближе, но до перемычки, чтобы последний абзац не загромождал страничку :) Вот ссылка на множество уже раз упомянутый архив - https://yadi.sk/d/1LcSzgli3J2DVr. Там вы сможете найти все нужное для сборки - драйвера, мануал по HVProg, который я цитировал в начале поста, переходник для прошивки в макетке/качельке, .hex или .ebn файл для прошивки программатора, картинки с нужными фьюзами для некоторых программ (если у вас другая, ориентируйтесь по spien) и даже набросанный мною список нужных вам для сборки деталей :)


Чуть подробнее по поводу .ebn и .hex.

Дело в том, что файлы формата .ebn может зашивать только AVR Studio и, соотвественно, совместимые с ним программаторы. Но чтобы собрать такой программатор нужно его сначала запрограммировать. Перед пользователем встает проблема курицы и яйца, и из нее есть несколько выходов:

1. Купить самый простой программатор (USBasp, цена около 60 рублей, я брал за 90 со шнурком сразу), который не работает с AVR Studio, прошить файл .hex и получить программатор, умеющий прошивать .ebn. В таком раскладе нужно быть очень аккуратным с фьюзами, потому что если они будут неправильно прошиты, то м/к, скорее всего, не заработает или заработает неправильно

2. Собрать/купить программатор, работающий с AVR Studio. С покупкой все понятно - берешь то, на что хватает денег, а вот со сборкой опять же проблемы - м/к для такого программатора опять же чем-то нужно прошивать. Тут опять приходит на помощь USBasp, как самый дешевый и распространенный программатор, но вариантов множество - начиная от простейшего программатора Громова и заканчивая всякими AVR2353467574 отладочными платами с кучей свистоперделок.


Пару заключительных слов: высоковольтный программатор, возможно, и не самая простая вещь для первоначальной сборки, но крайне полезная. Цена всех деталей для одного программатора по отдельности равняется, наверное, не более 500 рублей, другое дело, что все детали продаются пачками, а не по одной :) Если никаких особых изысков в прошивании не требуется, возможно, стоит обратить внимание на более простой программатор, например AVR910 в usb варианте. Как раз про него я и попробую рассказать в следующий раз, надеюсь, что не через четыре месяца :) Всем удачи в сборке и успехов!


P.S. Надеюсь увидеть у кого-нибудь собранную мою версию печатки программатора до того, как до нее доберусь я :)

Дубликаты не найдены

0

вопрос тупой, но все же - примерную разводку платы для высоковольтного параллельного программирования где найти?

раскрыть ветку 5
0

А эта в спринте чем плоха? :)

Из нее вроде нужны блок на мс34063, блок коммутации с основным контроллером ну и общую разводку от этого всего посмотреть

раскрыть ветку 4
0

ааа блин, не так спросил... плату расширения для 20 пинового разъема имел виду...

раскрыть ветку 3
0

Я рад за Валентина Владимировича. Он теперь не спотыкается и книги читает,тв смотрит.

0
Давно ль конденсаторы стали катушками?
раскрыть ветку 1
0
Действительно, мкГн должно быть, спасибо за внимательность, но исправить я уже (вроде бы) не могу
0
А я как то собрался духом и купил avrdragon. Мне правда на тот момент по debugwire шить нужно было
раскрыть ветку 4
+1
Драгон крутой, я на него заглядывался некоторое время, но дороговат, зараза
раскрыть ветку 2
0

а что примерно по себестоимости этот зверь вышел? понимаю что делалось просто в кайф, но всё же)

раскрыть ветку 1
0

Я успел купить еще с половинной скидкой в эфо.

Еще первой версии, у которого нужно перемычку паять.

Так большее время лежит без дела, копеечного avrisp'а достаточно.

Также лежит фитоновский чип-прог лптшный, нафиг не нужный...

Похожие посты
Возможно, вас заинтересуют другие посты по тегам: