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

Распечатать

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

Итак, вот две прошивки. Для плат на базе 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, да избавился от внешних кварцев.
Вот оригинальный сырок.

Запись опубликована в рубрике AVR. Учебный курс, Готовые устройства с метками , , . Добавьте в закладки постоянную ссылку.

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

  1. _riko_ говорит:

    Хорошая штука! для тех, кто не осилил усбасп или стк…
    может выручить на первых парАх ))

  2. kry-love говорит:

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

    • DI HALT говорит:

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

  3. Flextro говорит:

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

    • SWG говорит:

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

      • Roi говорит:

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

        • SWG говорит:

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

          • DI HALT говорит:

            А с SMD вообще моторчик не нужен. Так зачем плодить сущности?

          • SWG говорит:

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

          • DI HALT говорит:

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

          • Желтый/оранжевый еще несложно разобрать. А вот оранжевый и коричневый на синеньких MF под люминисцентной лампой — вообще одинаковые.

          • SWG говорит:

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

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

          • SWG говорит:

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

      • DI HALT говорит:

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

        • SWG говорит:

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

    • DI HALT говорит:

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

    • DI HALT говорит:

      А еще он нормально обжимается в IDC разьем а шестипиновый приходится паять.

  4. alexmorphy говорит:

    Сколько стоит PinboardProg?

  5. Stalker46 говорит:

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

  6. Stalker46 говорит:

    А Сколько времени занимает прошивка кондтроллера (пусть любого авр, ваш пример) баспом?

  7. orekhov-av говорит:

    А при помощи avrdude можно шить? какой тип программатора выбирать?

  8. Omul говорит:

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

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

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

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

  9. SergeyDon говорит:

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

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

  10. Volldemar говорит:

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

  11. penzet говорит:

    Здравствуйте. По поводу покупки платы отправил письмо на shop@easyelectronics.ru но ответа нет.

  12. orekhov-av говорит:

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

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

    • DI HALT говорит:

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

  13. Igor говорит:

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

    • DI HALT говорит:

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

  14. garyk7 говорит:

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

    • DI HALT говорит:

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

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

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

  15. BigLeha говорит:

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

    • DI HALT говорит:

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

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

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

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

      • BigLeha говорит:

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

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

        • DI HALT говорит:

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

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

      • BigLeha говорит:

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

      • BigLeha говорит:

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

      • BigLeha говорит:

        Почему-то на avrisp выдает ошибку «stk500_getsync(): not in sync: resp=0xe0″ и закрывается.

  16. Electronik говорит:

    Можно ли с помощью этого программатора прошить ATmega168?

    • DI HALT говорит:

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

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

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