Прошивка PinboardProg для превращения демоплаты PinBoard 1.0 в ISP программатор

Хай Pinboard сообщество! Помнится я обещал, что будет прошивка позволяющая превратить демоплату Pinboard 1.0 в программатор для прошивки других МК. Пацан сказал — пацан сделал :)
 

Итак, вот две прошивки. Для плат на базе Atmega16 и Atmega32. Тактовая 8 МГц (дефолтная настройка).
16_PinboardPROG.hex
32_PinboardPROG.hex

 

Далее как обычно в картинках.
Вначале стандартно, пинаем бутлодыря. И через AVRProg заливаем в память прошивку:

Прога сама определила что у нас бутлоадер, поэтому процессор выбрать нельзя.
 

После сего экшена закрываем AVRProg и перегружаем процессор платы. После отработки бута LED2 должен погаснуть (а на Мега32 они так не горит), но начнут перемигиваться диоды LED2 и LED1, чтобы это увидеть не забудь накинуть два джампера на выводы:

Если все замигало, значит теперь наша плата может шить. Но нам потребуется шнурок. Почти стандартный ISP кабелек. Отрубай от куска психоделичного радужного шлейфа сколько не жалко и насаживай IDC разьемы. Стрелочка показывает на метку первого контакта:
 

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

Тут надо вычленить пятый проводок от метки. Метка на IDC возле ключевого язычка и обозначается треугольником. Пятый проводок это Reset.
 

Нам ведь не нужно обьединять RESET шьющего и прошиваемого контроллеров, а надо снять его сигнал с вывода PB4 — он будет контроллировать прошивку. Соединяем так:

А вот тут лажа, IDC шки то я в комплекте не предусмотрел :( Хорошо, в дальнейших поставках учту. Впрочем, стоят они копейки и довольно часто встречаются. Но если нету, то ничего, можно и обычными контактами, что шли в комплекте. Соединяешь PinBoard с прошиваемым в целевой плате МК таким образом: MISO-MISO, MOSI-MOSI, SCK-SCK, GND-GND, RESET-PB4. Питание на Vcc берешь либо откуда нибудь извне, либо с шины Power, что над процессором. По идее оно может и по шлейфу на целевую плату уползти, но вот только защитный диод (возле тумблера который, на фотке стрелочкой показан) не даст. Но ведь никто не мешает его коротнуть на время ;) , главное не забыть поставить перемычки ISP и USBH одновременно (или от чего ты там плату запитал), чтобы собрать цепь питания.
 

Врубаешь питание. Ждешь пять секунд пока бут отработает, погаснет LED2 и зажгется LED1. Снова запускай AVRProg, как обычно. Но на этот раз его встретит не AVRBOOT, а AVR ISP =)

 

Видишь, можно выбирать тип МК, а также доступны всякие Fuse биты под кнопочкой адвансед. Выбираешь нужный тебе тип МК, выбираешь нужную прошивку. Шьешь!
 

По быстрому проверял, вроде фурчит. Шил мегу32, мегу16 и мегу8. Других не оказалось под рукой. Тестим! Да, с фузами пока осторожней играйтесь, кто его знает как оно себя поведет. Я вроде косяков не обнаружил, но мало ли.
 

Если вдруг не заработает, то проверять программатор так же как и бутлоадер. Т.е. коннектишься в терминалке. Вначале, пока работает бут, скармливаешь ему на скорости 19200 букву S должен ответить AVRBOOT. Потом сбрасываешь, ждешь пока бут загрузит основную программу и на той же скорости говоришь ему S, должен уже отозваться как AVR ISP
 


Прошива собрана на базе древнего, но тем не менее не забытого немецкого проекта. Я просто переписал прошивку с AT90S2313 на Mega16/Mega32, да избавился от внешних кварцев.
Вот оригинальный сырок.

 

Для Pinboard 1.1 или Pinboard II данная статья не особо актуальная, т.к. эти демоплаты уже содержат на борту мощный FTBB программатор, способный прошивать AVR быстро и в любой операционный системе.

73 thoughts on “Прошивка PinboardProg для превращения демоплаты PinBoard 1.0 в ISP программатор”

    1. Ну дык. ФТшка на борту есть. Контроллер с бутом есть. Что еще надо для сча.. программатора :) СТК уже морально устарел, хрен где найдешь щас LPT у мну вот только в ноуте остался. Да и не понятно что там с вистами семерками. Баспу нужно чем то МК прошить, вот этим можно его и прошить :)

        1. Можно допер попробовать вкорячить. Но смысл? FTDI она понадежней будет в плане работы. Как никак честный хардверный усб.

          1. Нахрена допер-то? Там же FTDI есть, а STK500 — компортовый.
            А прошить можно открытой прошивкой STK500, ее можно думаю и под мега16 модифицировать. Заодно если собрать конвертер в 12В — будет HV-программирование.

            1. Насчет модифицировать я уже думал. Там бинарик, вот попробовать его дизасмнуть… тока надо таблицу прерываний сравнить, если что так там даже править ничего не придется. Зальется как есть в мегу16.

              1. Прошивка STK500v2 под мегу8:
                http://tuxgraphics.org/common/src2/article07052/avrusb500v2-1.2.tar.gz

                Также спецификация протокола STK500v2:
                http://tuxgraphics.org/common/src2/article07052/stk500_spec_AVR069.pdf
                http://tuxgraphics.org/common/src2/article07052/stk500_spec_AVR068.pdf

                Честно сказать код я даже не смотрел, но программатор работает стабильно и быстро!

                    1. А вот это уже любопытно. Спасибо за наводку. Попробую портировать его прошивку на мегу16/32.

        2. Опять же для него надо кварц на основной проц ставить. Т.к. на 8мгц рс внутренних ты его не раскачаешь, а это портит всю идею :)

        3. Хм, так там же мега8535. В принципе, ее родным ебнком прошить и воткнуть сюда. Делов то. Только кварц надо будет подоткнуть специфичный да адаптер на крышу сделать. Надо будет озаботиться. Черт, это не демоплата а монстр трансформер получается :)

  1. У вас там все так тяжко с поставками? Найди знакомого проводника поездного, из Питера можно хоть подкованную вошь поставить в течении недели:-)

    1. В течении недели я сам достану почти все что угодно. Проблема в том, что сейчас новый год на носу и народ упорно не желает работать. А после нового года и подавно. Это уже пройденные грабли.

  2. Ну вот почему люди до сих пор лепят здоровенный 10 пиновый ISP разъём? Весь цивилизованный мир давно перешёл на 6 пин.

    1. А я так вообще предпочитаю использовать контроллеры в DIP и прошивать на программаторе. Не вижу смысла мельчить без нужды. Странно и неуместно выглядят десяток компонентов SMD на плате, на которой и простым не тесно. Особенно SMD резисторы, к которым идут дорожки длиной сантиметров по 10. Нелогично и необьяснимо. Ведь они разрабатыватись для автоматизированного монтажа.

      1. Сверлить уж больно надоедает…по мне лучше с десяток SMD компонентов запаять, чем полсотни отверстий сверлить :)

        1. Сверлить уж больно надоедает…
          ——————————
          Сейчас с этим нет проблем. В продаже полно довольно удобных ручных сверлилок с цангами для сверл от 0,5 до 3мм, ценой 10-20баксов, а также просто наборчики — отдельно цанговые патроны на вал 2, 3, 4 мм с четырьмя цангами под те же сверла от 0,5 до 3мм, (по 1-2$), также наборы мелких сверл и сверла поштучно малых диаметров (1-2$ за десяток). Просверлить в среднем полсотни дырок на плате — минутное дело. Заточку сверла время от времени подправляю алмазным надфилем под лупой (достаточно чиркнуть 2-3 раза под правильным углом).
          Сверлю обычно сверлом 0,6-0,7мм, затем, где нужно, рассверливаю большим диаметром.
          Для самодельного изготовления лучше брать моторчики продолговатые (часто со срезанными боками) — они удобнее, мощнее, и лучше лежат в руке. И обязательно чтобы под одним из пальцев был микрик для включения — когда сверло вертится, попасть в нужное место сложнее. А так ставишь куда нужно, включаешь, сверлишь, выдергиваешь, выключаешь. Быстро и удобно.

            1. «А с SMD вообще моторчик не нужен. Так зачем плодить сущности?»
              —————
              Совсем без дырок вам все равно не обойтись. Всегда останется необходимость использования и деталей с выводами, и отверстий под них. Разьемы, например, сокеты, провода, кнопки, тумблера, индикаторы, переключатели, и много чего другого. Далеко не все из них можно припаять внакладку. Не век же вам конструкции с одной микросхемой и парой резисторов лепить. Да и с дырками монтаж прочнее, меньше риска повредить его, случайно дернув за провода, или еще чего. И без переходов на другую сторону часто тоже не обойтись. Опять же, крепежные отверстия. Не гвоздем же их пробивать. Так что без сверлилки все равно не обойтись.

              1. Ну это само собой. Но вот только ручное сверление нескольки сотен отверстий отнимает кучу времени. Особенно это я на своей отладочной плате ощутил когда делал прототипы. Там дырок штук 400. И это при том, что в осноном все компоненты планарные, будь они выводные плата бы стала в полтора раза больше и сверлить ее еще дольше. нафиг нафиг. Опять же цветовая маркировка резисторов… ну ее нафиг, там порой такие оттенки что я со своим дальтонизмом не могу понять желтый это или оранжевый. Приходится замерять, а на смд все подписано сразу же. Даже на мелочи. Опять же когда много смдшек их можно запаять пастой и феном, получается феерично быстрей. Я сейчас креативлю установку из галогенового прожектора для массовой запайки смд деталей.

                1. Я сделал просто. Когда несколько лет назад я полностью обновлял свою элементную базу, я купил под резисторы хреновины размерами 21х16х9см с 20-ю выдвижными коробочками 4,5×2,5×8см, и разложил сразу в них резисторы, как новые (они были каждый номинал в своем подписанном пакетике), так и имевшиеся ранее, контролируя номиналы по таблице и тестером. По 5% ряду E24, от 1 ом до 1МОм, и от 1МОм до 10МОм — по Е12. На коробочках подписал номиналы маркером. Собирался потом напечатать шильдики на бумаге с липким слоем (есть у меня пачка для Эпсона), да руки не дошли. Один раз потратил время, зато теперь сразу и быстро беру из нужных коробочек, не глядя на код, на всякий случай проверяю тестером (был на работе случай, когда на резисторах МЛТ-0,5 было четко написано 390К 5%, а при поиске причин неправильной работы схемы оказалось, что все они на 390 ОМ!). Проверить перед запайкой десяток резисторов — это не то, что перемерять всю коробку. Конденсаторы и другие детали разложил в плоские полиэтиленовые коробки с ячейками и защелками на крышках. Теперь нет проблем с обозначениями, и поддерживать порядок проще, чем каждый раз копаться в большой куче. Цветное зрение у меня хорошее (с детства занимался цветной фотографией, коррекцию в 5% ловил без проблем), да краски у китайцев такие, что красный от коричневого или серый от голубого хрен отличишь. А на мелких конденсаторах иногда вообще ничего не пишут.
                  Кстати, SMD конденсаторы керамические тоже идут без надписей…
                  Детали с выводами для меня удобны тем, что я сразу навтыкаю в плату резисторы, потом, откусив у них по одной ноге, пропаиваю сразу все, откусываю другую ногу, и тоже пропаиваю. Затем ставлю микросхемы или панельки, и все остальное. Плату держу всегда в руках, почти вертикально, придерживая иногда деталь пальцем с другой стороны. Так удобнее контролировать заливку площадок припоем и сливать лишний на жало. А с SMD пришлось бы класть горизонтально, что создает некоторые неудобства.

          1. >Заточку сверла время от времени подправляю алмазным надфилем под лупой (достаточно чиркнуть 2-3 раза под правильным углом).
            А подробнее можно? Какой угол правильный и все такое.

            1. «Какой угол правильный и все такое.»
              —————
              На словах обьяснить — долго, проще показать или посмотреть в книжках. Обычно рекомендуют основной угол 115 градусов (немного меняется в зависимости от твердости обрабатываемых материалов), а вот угол наклона плоскостей, образующих режущую кромку, и замерить, и обьяснить сложнее. На заводах были заточные станки, которые позволяли точно выставлять углы режущего инструмента. Вручную же, тем более для сверл 0,6-0,7мм, сложнее. Обычно вырабатывается определенное чутье, как держать надфиль. Ну, а если получилось не совсем хорошо — просто придется чиркнуть еще раз — другой, пока не получится. Плохо, что сейчас и новые сверла продают плохо или даже неправильно заточенными. Более — менее нормально заточены те, что с напылением нитрида титана (желтого или золотистого цвета). Можете посмотреть углы правильной заточки на них.

      2. При единичном экземпляре смд монтаж проще и быстрей. Не тратишь время на сверловку, не тратишь время на формовку выводов, не тратишь время на засовывание выводов и откусывание концов. Берешь и припаиваешь. У меня на запайку одного смд резистора уходит около 8-10 секунд. Это с учетом доставания его из ленты.

        1. За 8-10 сек я и резистор с выводами облужу, отформую, воткну, обрежу и запаяю. Нет проблем. Да и если даже за 12сек получится — все равно в суммарном времени изготовления платы это не играет роли. Больше времени уходит на подготовительные операции, подбор и проверку деталей, а также чесание репы и носа.

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

      1. Ну если руки из попы — тут и ключ не поможет, доказано.
        К тому же есть IDC (или как их правильно, запамятовал) на 6 пин. И ответка к ним с бортиком и ключом.

  3. А зайди и посмотри)))
    Там цена указана, и она различна по причине комплектации.
    1800 + 200р почта, это готовая пинбоард, 1700 + 200р почта — как бы набор для самостоятельной сборки Мастер Кит)))
    Ну и помоему одна плата — 300р +200 почта, а чисто простая документация и разводка платы в лайоуте, не помню, толи 150р…
    Да, я тоже хотел бы заказать платку, только вот теперь средствами не располагаю.
    Ди Халт, а летом будешь ими торговать?

  4. А как собственно заказать PinBoard? Отправил несколько писем — и ответа нет…

    Слал на сервер yandex.ru, аккаунт clihlt, слал на di_halt@jabber.ru — письмо вернулось — джаббер не юзаю.

    Вроде сто лет в инете, но больше контактов не нашел.

    А можно ли на платке подключить I2C память типа 24с256?
    С уваженем, Omul.

  5. интересный способ!

    P.S. Нас уже 100 человек! те 99 счастливчиков, кто имеет свои наработки с платой? пожалуйста кидайте на форум если не жалко ;)
    а то: плата есть, желание есть, а вот пример в комплекте один да ещё и с RTOS! пробую расковырять дисплей так уже вторая неделя а инициализировать его не могу :( (даже тему на форуме создал — пишут код вроде рабочий а у меня никак :( символ на экран не выводит)

  6. DI, я в форуме писал на счёт «косяка» в исходнике RTOSa, хотелось бы получить не только комент, что копипаст зло, а и исправленный исходник.

  7. у меня есть один глупый вопрос:

    судя по «Соединяешь PinBoard с прошиваемым в целевой плате МК таким образом: MISO-MISO, MOSI-MOSI, SCK-SCK, GND-GND, RESET-PB4» соединить надо пять контактов, а проводов — 10. Оставшиеся 5 куда цеплять если просто проводами соединяешь, а не через IDC?

    1. В разьеме 10 выводов. Одного нет в принципе — его место как ключ. Один под питание (в данном случае питать прошиваемый МК надо извне, либо диод закоротить) Четыре провода это собственно сигнал прошивки, а остальные четыре земля. В принципе на целевую плату достаточно подать только те 5 проводов и все. Просто IDC-10 это стандарт атмеловский на разьем.

  8. Неподскажите если возможно подключение AVR910 прогамматора к РIC контролерам если возможно то как.
    Заранее благодарю за ответ.

    1. Берешь и пишешь свою софтину на комп. Которая управляя программатором по протоколу AVR910 сформирует шьющую последовательность для PIC. Хотя может и это не выйдет и надо будет подправить прошивочку. =)

  9. Прошил пинбоард в isр. прошилось вроде бы нормально. Но в аврпрог не нашел девайса тини2313. Установил at90s2313. Но при прошивке выскакивает окно с надписью «address:0x0000,expected:0xed0f,received:0xffff». Подскажите что не так.

    1. Да с Тини2313 есть такая проблема. родной AVRISP ее не поддерживает. Но есть решение (кривое, правда, но рабочее)

      Посредством аврдуды подключиться как к программатору AVR109 (они совместимы по командам) Например, из SinaProg просто выбрав там программатор AVR109 и порт со скоростью 19200. Тогда можно свободно прошить флеш.

      Однако авр109 почему то некорректно прошивает фузы (точнее вообще багу дает). Для прошивки фузов катит AVROSP http://easyelectronics.ru/files/soft/avrosp.zip (настроить его на протокол 911 порт со скоростью 19200)
      Он корректно обрабатывает фузы, но лажает при попытке прошить флеш — пишет туда какую то херню :(

      1. я вот на те же грабли наступил. Прошу помощи, а именно по подробней: что это за аврдуда, как ее запустить,
        Спасибо.

      2. при этом прошивающий контроллер подключать к ПК так как описано вверху (т.е.: перепрошить пинбоард, подключить плату, и вместо студии пользоваться аврдудом)? Я правильно понял?

  10. Пытаюсь прошить USBASP через PINBOARD.
    Прошивку программатора для Меги 16 залил. Только почему-то у меня не перемаргиваются диоды 1 и 2, а тухнет 2 после бута и постоянно горит 1.
    Питание подал, ресет к РВ4 подключил.
    Шью через avrdude. Указываю чип m8, вроде все заливается и даже проверяется.
    Отключаю от пинборды шлейф, втыкаю усб — и тишина. Светодиоды не горят, комп чип не видит.
    Наверное потому, что я не зашил в мой чип фьюзы.
    И вот теперь непосредственно вопрос: Как задать команду дудке чтобы фьюзы зашились?

    1. Ну да, без фузов не прокатит. А для дудки команда выглядит примерно так:

      avrdude.exe -p m8 -c avrisp -P COM1 -b 9600 -U hfuse:w:201:m -U lfuse:w:239:m

      201 и 239 это значение FUSE байтов в десятичной системе. Прям побитно, причем биты прямые, т.е. 0 это включено :)

      А вообще, для дудки, заюзал бы синапрог или еще какую оболочку.

      1. А я его пытаюсь записать -U hfuse:w:0xC9:h так он говорит, что нет такого файла… Создал файл, записал 0хС9 туда, но все равно не брал, гад… :)

        Я работаю под Линухом :)

        1. Ну так 0хс9 она вроде бы не понимает, ей в десятичной нада. И не «h», а «m» где ты параметр h увидел? h — это хекс. Вот она у тебя файл и ищет.

          А с файла ты хер знает чо загнал щас туда :) Под линух должна быть как минимум одна. Burn-o-matt например.

      2. Чета не шьются фьюзы. Говорит типа верхний будет изменен. И на пинборде тухнет LED1 и загорается LED2. Такое ощущение, что она уходит в перезагрузко. Только ресет помогает ее вывести из этого транса.
        Естественно, до нижнего фьюза не доходит.
        Что может быть?

      3. А вообще, кстати, почему-то не проходит верификация прошивки. Сейчас поменял мегу 8, но ситуация та же.

    1. AVRProg 168ю мегу не поддерживает (он слишком стар), но в принципе, используя другие программы, работающие по протоколам AVR109 могут прошить. Например AVRDUDE должна поддерживать.

      Для Pinboard версии 1.1 для прошивки других контроллеров лучше использовать встроенный FTBB программатор.

Добавить комментарий

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha