Fun Electronic

Электронные поделки, программирование микроконтроллеров, и прочая белиберда|Electronic Basteleien, Mikrokontroller Programmierung und anderes Quatsch

RSS
people

Мои инструменты: программаторы для AVR'ок|Meine Werkzeuge: AVR Programmers

[lang_ru]И так — продолжаем разговор.[/lang_ru]

[lang_de] So, weiter gehts![/lang_de]

[lang_ru]Сегодня речь пойдет об очередных, хотя я бы сказал, о первоочередных интсрументах, без которых необходится ни один мой проект, в котором есть хоть какой то намек на микроконтроллер и на его программу.[/lang_ru]

[lang_de]Heute werde ich über die Werkzeuge, ich würde sagen, über die wichtigste Werkzeuge, sprechen. Da ohne die würde ganze Basteleien, die man auf der Seite, und vor allem in Fotogalerie, sieht, nicht geben. [/lang_de]

[lang_ru]Как вы уже догадались (ну да, в заголовке — то написано) , речь пойдет сегодня об программаторах, которыми мы будем прошивать наши поделки.[/lang_ru]

[lang_de] Als Sie schon erraten habem (es steht doch in dem Titel), die Geschigte wird über die Programmers, mit deren Hilfe programmiert man, oder flasht man, die Mikrokontrollers[/lang_de]

[lang_ru]Начнем по порядку, в которм я их собирал.[/lang_ru]

[lang_de] Fangen wir in der Reihenfolge, als och die gebastelt habe.[/lang_de]

[lang_ru]Первым был у меня ISP программатор, собранный по схеме, взятой с сайта www.lancOS.com, там, где я скачал саму программу для прошивок — PonyProg.[/lang_ru]

[lang_de] Als erster war der ISP — Programmer, die Schaltung davon habe ich auf der Seite www.lancOS.com, genommen. Da habe ich auch das Programm zum Programmieren runtergeladen, das heisst PonyProg[/lang_de]

Схема ISP программатора от LancOS - avrisp-siprog

[lang_ru]Собрал, я его, значит и не нарадовался. Контроллеры программируются, поделки работают. Но не всегда. Иногда работают не так, как хотелось. Значит надо отлаживать программы. А как? Можно, конечно, симулятором сначала их погонять. Благо, AVR Studio позволяет. Но у меня в поделках валом всякого навесного оборудования иногда бывает, которое особо то не посимулируешь. А отладка с помощью printf, это, как бы сказать, каменный век. Хотя я знаю одну фирму, здесь, в Гермашке, которая выпускает некое оборудование числом около 80000 единиц в год по цене около 5000 евро за единицу, в которой софт отлаживают до сих пор с помощью printf. [/lang_ru]

[lang_de]So. Ich habe den gebastelt, und war, eigentlich damit zufrieden. Kontrollers werden geflasht, die Basteleien funktionieren. Aber nich immer. Ab und zu machen die komische Dinge. Dass heisst, man muss die debuggen! Und wie? Man kann, naturlich, zuerst mit einen Simulator laufen lassen. Aber meine Basteleien habem viel Periferie, die im Simulator nicht so leicht zu simulieren! Zweite möglichkeit — printf's, was mir aber nicht so gefählt. Und vor allem — dass ist nich mein Method. [/lang_de]

[lang_ru]Но это не наш метод! Захотелось мне иметь нормальный отладчик, что бы и по коду побегать с Break-поинтами, и переменные поглядеть. И начал я исследовать интернет на эту тему. Нашел много всяческих схем, одну из которых я повторил. Называется — JTAG-ICE. Платку от нее я засунул в тот же корпус, в котором у меня был уже ISP программатор, и вышел вот такой вот девайс:[/lang_ru]

[lang_de] Ich bekam ein Wunsch, einen normalen Debuger nutzen zu könenn, Break Points setzten zu können, Variablen anschauen, und s.w. Und dann habe ich angefangen Internet durchsuchen. Ich habe viele Schaltungen gefunden, eine von denen habe ich nachgemacht. Heisst JTAG-ICE. Die Platine davon habe ich ins Gehäuse von dem ISP-Programmer reingesteckt, da genug Platz dafür war.[/lang_de]

JTAG ICE и ISP программатор в сборе

[lang_ru]Внутри выглядит немного страшнее, потому что, как всегда, я перепутал, по не опытности (тогда я был еще молодой и зеленый) стороны у коннетора SUB-D, и еще пару проводочков — RX и TX (вечная моя проблема).[/lang_ru]

[lang_de] Von Innen sieht es ein bisschen schrecklicher aus, weil ich, wie immer (damals war ich noch grün und unerfahren), habe die Seiten des SUB-D Stecker verwechselt, und noch RX und TX Leitungen (mein lieblings Fehler).  [/lang_de]

Внутренности JTAG ICE и ISP программатора

Внутренности JTAG ICE и ISP программатора

Внутренности JTAG ICE и ISP программатора

[lang_ru]И наступило мне счастье. Теперь я мог отлаживать свои программки, находить баги в самых неожиданных местах, и смотреть значения переменных.[/lang_ru]

[lang_de] Emdlich habe ich ein Glück! Ich konnte debugen! Ich konnte Break Points setzen, und Variablen anschauen.[/lang_de]

[lang_ru]Но тут на днях, около 2-х месяцев назад, случилось у меня крупное приобретение автомобиля, в котором небыло MP3 плеера. Недолго думая, решил я себе таковой собрать, благо наработки уже были, осталось только воткнуть все в машину, и вот тут то вот подкрался один недостаток сего программатора.[/lang_ru]

[lang_de]Eines Tages, habe ich ein Auto gekauft, in dem es keinen MP3 Player gab. Unschön. Korregieren! Und so hat in meinem Kopf die Gedanke geboren, den Player zu basteln. Aber es gibt ein Problemchen. [/lang_de]

[lang_ru]Во первых — он на  COM порте. Найдите мне сейчас ноутбук, у которого хоть один COM порт есть на борту. Сплошные USB. В принципе, можно использовать переходник. С ним программатор тоже работает. [/lang_ru]

[lang_de]Erstens, der Programmer ist an den Com-Port anzuschließen. Bitte, finden Sie mir jetzt einen Notebook, der COM-Port hat. Nur USB. Im Prinzip, man kan den USB — Seriel Adapter nehmen. Mit dem der funktioniert auch. [/lang_de]

[lang_ru]Но есть другая проблема — питание программатора — это блок питания на 7 — 30 вольт. Его надо втыкать в розетку. В гараже (у нас подвальные гаражи, и наше место на втором, вниз, уровне) розеток нет в принципе.[/lang_ru]

[lang_de] Aber es gibt ein anderes Problem, Stromversorgnung. Man brauch 7 bis 30 Volt, oder eine Steckdose für den Netzteil. Im Auto gibt zwar 12 Volt, aber dann muss man einen Adapter bauen. [/lang_de]

[lang_ru]И предвидя такую проблему в проекте плеера, я решил доработать программатор портом USB. И обе проблемы решились сами собой. Глядим на схему и видим, что основная часть с контроллером почти что один в один осталась та же, но добавилась пара страничек с USB контроллером от FTDI FT232BM, которым я заменил RS232-TTL конвертор и выкинул преобразователь напряжения на 5 вольт, так как теперь мы питаемся от USB. [/lang_ru]

[lang_de] Und weil ich schon die Problemme vorgesehen habe, habe ich einen weiteren Programmer gebaut, aber dies Mal mit USB. Und beide Probleme wurde gelöst. Aus dem Schaltplan sieht man, dass haupt Teil des Programmers ist gleich geblieben, im Vergleich zu anderen. Aber es ist nocht eine Seite dazu gekommen, mit USB Kontrollern von FTDI FT232BM, die ersätzt RS232-TTL Konverter. Stromversorgnung ist jetzt über USB Port.  [/lang_de]

[lang_ru]И, я сделал свой плеер именно с помощью этого программатора, сидя в машине, в гараже (соседи очень удивлялись, видя меня там).[/lang_ru]

[lang_ru]Так он выглядит с наружи:[/lang_ru]

[lang_de] So siecht der von Aussen:[/lang_de]

JTAG ICE USB программатор в сборе

[lang_ru]А так выглядят внутренности. Уже не так страшно. Но опять же я умудрился перепутать RX и TX сигналы.[/lang_ru]

[lang_de] Und do sieht es von Innen. Schon nicht mer so erschrocken, aber ich habe geschafft dies Mal auch RX und TX Leitunge zu verwechseln. [/lang_de]

Внутренности JTAG ICE USB программатора

Внутренности JTAG ICE USB программатора

[lang_ru]Значит так. Когда вы соберете один из выше показанных программаторов, то обнаружите, что контроллер-то надо чем-то тоже запрограммить. Перед нами нарисовалась проблема «Яйцо-Курица, кто первый?». Ну мне было легче, у меня был уже ISP программатор. Так что вы знаете, что делать.[/lang_ru]

[lang_de] Also. Sie haben geschafft, einen der oben genannten Programmers zusammen basteln. Jetzt haben wir so genante Problem «Hühner — Eier». Weil der Prozessor auf dem Programmer muss man auch flashen. Na ja. Mir ist es leichter, ich habe schon ISP-Programmer. Also, Sie wissen was zu tun ist.[/lang_de]

[lang_ru]Подсоединяем ISP-программатор к новому JTAG программатору к штекеру JP1, если смотреть на схему. Ставим перемычки JP2, 3, 4 в нижнее, по схеме, положение, подключаем к USB порту компьютера, и запускаем BAT-файл из этого архива — bootld163.rar, сначала bootwrite.BAT, затем, когда он завершит работу без ошибок — upgr352write.BAT. Основная ошибка, которая может возникнуть вовремя запуска батников, это невозможность подключится к порту LPT, т.е. не загруженая библиотека DLPORTIO.dll. Она находится в этом же архиве. Я эту проблему решил просто — стартанул PonyProg и закрыл его. Этого достаточно, чтобы библиотека загрузилась в память. Закрыть PonyProg надо обязательно, иначе порт LPT будет заблокирован. Затем запустил подряд оба батника.[/lang_ru]

[lang_de]Man ghet volgendermassen vor. Den ISP-Programmer and den neue gebauten JTAG-ICE Programmer an JP1 Stecker anschlisen. Jumpers JP2, 3, 4 in unterste am Schaltplan Position setzen. Den JTAG-ICE an USB Port anschliessen. Und eine .BAT Datei aus diesem Archiv — bootld163.rar starten. Zuerst bootwrite.BAT, danach, wenn erste Datei ohne Fehler abgearbeitet wird - upgr352write.BAT. Der heufigste Fehler ist der, dass das Programm kann nicht einen Zugriff an den LPT Port zu bekommen, da es dem DLPORTIO.dll fehlt. Die Bibliothek befindet sich auch in dem Archiv. Ich habe das Problem einfach mit dem Start und Schliessen des PonyProgs gelösst. Nich fergessen PonyProg zu schliessen, da es LPT-Port nicht freigegeben wird.  [/lang_de]

[lang_ru]Далее, когда второй  батник закончит работу — выдергиваем USB шнур, и втыкаем снова. Если вы делали JTAG-ICE-USB, то лезем в свойства нашего компьютера, в менеджер устройств и смотрим, какой порт система назначила нашему USB<->Serial конвертеру. Выставляем в пределах COM 1-4, так как AVR Studio, почему-то переваривает только первые 4 порта. Запускаем AVR Studio, и пытаемся соединиться с JTAG ICE отладчиком. Для этой цели я, в помошнике (Wisard) создания нового проекта открываю .elf файл, который генерится компилятором AvrGCC, выбираю из предложенного AVR Studio списка целевой контроллер, и жму «Готово». [/lang_ru]

[lang_de] Danach, wenn zweite .BAT Datei ohne Fehlern abgearbeitet wird, schalten wir JTAG-ICE ab und wieder an. Und starten AVR-Studio. Wenn Sie den JTAG-ICE-USB Programmer nachgemacht haben, dann währe es nicht schlecht festzustellen, zu welchem COM Port unser USB <-> Serielle Adapter zugeordnet ist. Und man muss dazu sorgen dass der Port in Berech von 1 bis 4 befindet, da AVR-Studio kann nur mit ersten 4 arbeiten.

Jetz kann man versuchen mit unserem JTAG-ICE Programmer in Kontakt zu setzen.[/lang_de]

[lang_ru]В этот момент AVR Studio должна определить наш программатор... но почему то нифига не находит! А все потому, что мы забыли переставить перемычки JP2, 3, 4 в верхнее по схеме положение! Теперь, AVR Studio должна найти программатор и ругнуться, что версия прошивки старая, и будет запущен программатор (уже программный) для обновления. Жмите Ок. Обновляйте прошивку. Затем незабудте выдернуть USB шнур и обратно вставить, чтобы сбросить контроллер. И теперь, повторив маневр соединения с программатором, можно насладиться моментами работы отладчика.[/lang_ru]

[lang_de] In dem Moment muss AVR-Studio uns sagen, dass die den Programmer gefunden hat, der aber alte Firmwareversion drauf hat, und es wird ein Updatevorgang ausgeführt. Nach dem Update muss man den JTAG-ICE aus- und wieder einschalten und einen Spass beim Debugging haben[/lang_de]

[lang_ru]Ниже список файлов, необходимых для повторения данных программаторов:[/lang_ru]

[lang_de] Da unten habe ich noch Mal die Links auf alle wichtigste Dateien gesammelt: [/lang_de]

  • [lang_ru]JTAG ICE на COM порту — jtag_ice_my.pdf[/lang_ru]
  • [lang_de]JTAG ICE auf COM Port- jtag_ice_my.pdf[/lang_de]
  • [lang_ru]JTAG ICE на USB порту — jtag_ice_usb.pdf[/lang_ru]
  • [lang_de]JTAG ICE auf USB Port- jtag_ice_usb.pdf[/lang_de]
  • [lang_ru]Прошивки загрузчика и старой версии программатора  - bootld163.rar[/lang_ru]
  • [lang_de]Bootloader und alte Version des Programmers  - bootld163.rar[/lang_de]

[lang_ru]В архиве с прошивкаим еще раз описаны все эти действия, но уже от лица составителя этого архива, как и одной из версий программатора JTAG ICE, коих в интернете довольно много. Печатную плату не выкладываю, так как она все равно с ошибкой. Но если сильно понадобится — дайте знать, я ее конвертану в BMP как нибудь и положу.[/lang_ru]

[lang_de] Das PCB Board habe ich extra nicht veröffentlicht, da es so wie so mit dem Fehler. Aber wenn jemand möchte, schreibt einfach in Komments, und ich werde es in BMP Datei konvertieren und ausgeben.[/lang_de]

[lang_ru]Приятного кодинга и дебагинга![/lang_ru]

[lang_de] Viel Spaß beim Kodieren und Debuggen![/lang_de]

Один комментарий to “Мои инструменты: программаторы для AVR'ок|Meine Werkzeuge: AVR Programmers”

  1. voventus Says:

    В AVR Studio можно настроить пул сканирования COM-портов:

    Tools -> General -> Number of COM-ports to try

Leave a Reply

You must be logged in to post a comment.