Forum: Mikrocontroller und Digitale Elektronik JTAG-Interface selbstgebaut


von Axel Rühl (Gast)


Lesenswert?

Hi Leute,
habe gerade im Bereich Markt gelesen, dass jemand auf der suche nach
Mega16 ist, weil er sich das JTAG-Interface selber bauen will.
Will ich jetzt auch! Wo find' ich was darüber?
Gruß
Axel

von Axel Rühl (Gast)


Lesenswert?

Ach, falsches Forum, sorry
axel

von mthomas (Gast)


Lesenswert?

warum falsches Forum? - na egal. Man "google" nach "bootice" fuer
den Anfang. Und gleich noch etwas "Prosa" zum Thema fuer die
Foren-Suchfunktion, weil selbst grade damit zugange: Einige
Nachbau-Schaltungen funktionieren mehr schlecht als Recht, es gibt
einige "Versionen". JTAG programming/debugging funktinoniert
tatsaechlich mit einem solchen Nachbau aus wenig mehr Bauteilen als
ATmega16(L) und MAX(3)232. Weniger aufwendig und anfangs frustfreier:
www.olimex.com. Zur Aktualisierung der Firmware im (Olimex-)Nachbau bei
neuem AVRstuidio sollte man die ersten AVR-"Anfaengerhuerden"
allerdings genommen haben. Wenn recht erinnert, gab/gibt es auch ein
paar Threads zum Thema JTAGICE-Nachbau und Update in den Foren hier.

von Stephan (Gast)


Lesenswert?

Hallo zusammen

@mthomas
Hst du mit den selbsbau teilen etwa schon Erfahrung gemacht, weil du
schreibtst "funktionieren mehr schlecht als Recht"? Wenn ja, dann
berichte bitte mal.

@Axel Rühl
Also es gibt hier im Forum folgende Threads:
http://www.mikrocontroller.net/forum/read-1-25739.html#25905
http://www.mikrocontroller.net/forum/read-1-59308.html#59523

Ich hab eigentlich auch vor so ein Teil zu bauen, jedoch bisher ist es
immer an Zeitmagel gescheitert.
ATMEGA16l gibt es glaub ich bei Segor.

MfG Stephan

von Stephan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Also ich hab mir nun mal zeitgenommen, und einen Schaltplan gezeichnet.
Könnte den vielleicht mal jemand anschauen, ob er noch irgendwelche
Fehler findet?
Also ich dachte, ich nehme nen ATmega16l und nen MAX3232.
Bin für weitere Änderungen offen.

MfG Stephan

von Axel Rühl (Gast)


Lesenswert?

Hallo Stephan.
Sieht doch gut aus, male selber auch gerade drann...
Den PortA.2 hart auf VCC, PORTD.3 widerum mit 4.7K nach masse? Würd'
ich dem anderen Portpin auch spendieren. Sicher ist sicher.
Naj sonst die üblichen Nörgeleien, wie man sie überall hört und liest.
Blockkondensator 100nF/10uF VCC<->GND...
Mach jut
Axel

von Stephan (Gast)


Lesenswert?

Hallo zusammen

@Axel Rühl

Danke für die Infos. Werde ich natürlich sofort umsetzen.
Wo hättest Du denn überall Kondensatoren hingesetzt? Also ich habe
gedacht, an jeden jeden VCC Eingang vom Atmgea und vom MAX, und ein 10µ
sollte doch reichen?

Was für eine "Variante" baust Du gerade 5V oder 3,3V? Also mit nem
MAX3232 und dem Atmega16l sollten doch beide Spannungen möglich sein,
oder nicht?

Also dann noch viel Spaß beim malen ;-))

MfG Stephan

von Axel Rühl (Gast)


Lesenswert?

Hallo Stephan
Ja genau,
an jeden VCC dicht am avr 100nF gegen GND und einen Elko 10uF reicht
aus.
Axel

von Jörg Wunsch (Gast)


Lesenswert?

PA2 liegt mit einem Spannungsteiler 4:5 (z. B. 14k / 56k, parallel ein
paar nF) an Vtarget, damit wird die Spannung des Targets gemessen
(gegen die 5 V des JTAG ICE).

PD3 wird original auf Low gezogen, wenn die Spannungsversorgung des
Targets aktiv ist.  Die Firmware weigert sich loszulaufen, wenn das
nicht der Fall ist.

PD2 dient normalerweise als RESET-Erkennung für das Target, wobei im
Original über PB4 ein Reset ausgelöst werden kann.  Diese
Funktionalität hat das BootICE meiner Meinung nach weggelassen, was
allerdings bedeutet, daß man eine Applikation, die sofort das JTD-Bit
in MCUCSR setzt (um die Portpins des JTAG-Interfaces für die
Applikation freizubekommen), damit nicht debuggen kann.  Das würde
sonst so funktionieren, daß das JTAG ICE zuerst /RESET aktiviert und
dann sofort nach dem Loslassen den JTAG-Dialog, damit die Applikation
noch keine Chance hat, JTD zu setzen.

PC0..3 lesen die Hardware-ID des JTAG ICE.  Sie sollten für
Kompatibilität mit dem Atmel ICE auf 0xc stehen.  Insbesondere
aktiviert die Atmel-Firmware hier nicht die Pullups, d. h. das
Offenlassen der Eingänge (wie im BootICE) verursacht zufällige Werte.
Offenbar interessiert sich aber außer der Statusausgabe erstmal keiner
dafür, was da steht. ;-)

PB3 hat mit Widerstand nach Vcc die `JTAG comm' LED.

von mthomas (Gast)


Lesenswert?

Insbes. die Funktionalitaet die Joerg im Abschnitt "Reset-Erkennung"
beschreibt, meinte ich mit dem "mehr schlecht als recht" bei
zumindest einem der BOOTICE-Designs. Der Hardware-ID scheint wirklich
wenig relevant, die letzeten drei Firmware-Versionen funktionieren auch
ohne die ID-Pullups/Pulldowns. Den Ausfuehrungen von Joerg bleibt von
meiner Seite nichts inzuzufuegen.

von Stephan (Gast)


Lesenswert?

Hallo zusammen

Ich hoffe, dass die Target Spg nicht irgendwo ausgewertet wird, denn
ich würde dann PA2 und PD3 vernachlässigen, da ich den ICE aus dem
Target versorge. Wißt ihr zufällig, wo die Target Spg LED angeschlossen
wird?

Das mit dem Reset sehe ich jedoch für wichtig an, und ich denke man
sollte dies realisieren. Wenn ich dies richtig sehe ist dieser auf PIN6
am Stecker gelegt. D.h. mit PD2 gehe ich eventuell über einen
Serienwiderstand auf PIN6. Und mit einem Transistor als Open Collector,
gesteuert von PB4 löse ich an PIN6 einen Reset aus. Ich glaube, dies
muß ich mir erst mal aufzeichnen, ob dies so funktioniert wie ich das
verstanden habe.

MfG Stephan

von Jörg Wunsch (Gast)


Lesenswert?

PB4 nicht negiert über einen Widerstand (100 Ohm oder so) und mit
einem Pullup gegen Vtarget auf Pin 6 des JTAG-Steckers.  Von dort
rückwärts ebenfalls nichtnegiert nach PD2.  Damit darfst Du auch auf
dem Target die Reset-Taste drücken, es wird dann nur der Pullup
kurzgeschlossen und die Logik in Richtung PD2 bemerkt den Reset (wenn
sie will).

Nein, die Target-Spannung wird meiner Meinung nach bestenfalls
irgendwo angezeigt (kann nicht AVR Studio sowas?  weiß nicht, ich habe
kein Windows und benutze es daher nicht), aber nicht wirklich benutzt.
Bei der Hardware-Revision ist das im Moment auch so, aber hier wäre
ich vorsichtig: das nächste ICE ist ja schon im Gespräch (mkICE II
oder sowas), und ich halte es durchaus für möglich, daß in einer
künftigen Version von avrprog.exe die Hardware-ID mal mit ausgewertet
wird.  Die 0xc an PC0..3 würde ich also schon noch mit verdrahten.
Wenn Du mal ins Atmel JTAG ICE guckst, wirst Du sehen, daß die für die
ID sogar Widerstandsbrücken zur alternativen Bestückung haben.  Damit
war es auch kein Problem, das Platinendesign vom AT90S8535 + AT90S1200
(als Bootloader) einfach für einen ATmega163 bzw. nun ATmega16
weiterzubenutzen: die haben die nicht mehr nötigen Teile nicht
bestückt und eine andere Hardware-ID verlötet.

von Stephan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

@Jörg
Also wenn ich dich jetzt richtig verstanden habe, dann sollte es wie im
Anhang aussehen.
Verwendest du auch ein selbstbau ICE, oder warum weißt du soviel
darüber?
Mit was für einer Software betreibst du den ICE?

MfG Stephan

von Jörg Wunsch (Gast)


Lesenswert?

> Also wenn ich dich jetzt richtig verstanden habe, dann sollte es wie
> im Anhang aussehen.

PC0..1 sollten noch auf GND, sonst sind sie `floating'.

Ohne jetzt alles bis ins letzte Detail verifiziert zu haben, müßte der
Rest so passen, ja.  /RESET sollte aus EMV-Gründen einen kleinen
Kondensator bekommen (die Atmel-Appnote nennt glaub ich 10 nF), sowie
eine Diode, die positive Überspannung nach Vcc ableitet (der
Reset-Eingang hat keine positive Schutzdiode, da er 12V-fähig sein
muß).

> Verwendest du auch ein selbstbau ICE, oder warum weißt du soviel
> darüber?

Ich habe ein Eigenbau-ICE, hatte mir sogar mal vorgenommen, da
Pegelwandler reinzubauen, so daß man das 5 V JTAG ICE mit Targets
verbinden kann, die eine andere Spannung benutzen.  Allerdings waren
da einige Ungereimtheiten drin (bis dahin, daß ich die TTL und RS232
Seite am MAX232 vertauscht hatte hüstel), so daß ich den einstmals
veröffentlichten Schaltplan davon dann lieber zurückgezogen habe. ;-)
Eigentlich wollte ich das Ganze nochmal mit paar Maxim-Pegelwandlern
aufbauen, aber die haben mir trotz meines Gehäusewunsches für TSSOP
dann welche im UCSP-,,Gehäuse'' geliefert... da habe ich bis heute
noch keine rechte Idee, wie ich die wirklich anlöten soll. :-o  Sie
werben nicht umsonst damit, die kleinsten Pegelwandler der Welt zu
haben. ;-)

Außerdem bin ich in der glücklichen Lage, noch ein Atmel ICE daliegen
zu haben, das mir mal jemand geliehen hat, so daß ich einen guten
Blick auf deren Schaltung werfen konnte...

> Mit was für einer Software betreibst du den ICE?

AVaRICE (+ GDB, unter FreeBSD)

von Axel Rühl (Gast)


Lesenswert?

Hallo Jörg,
welche Pegelwandler sind Dir ins Haus geflogen?

Ich habe MAX3375 und MAX3373 in SOT23/6
Vielleicht können wir tauschen?
Axel

von Stephan (Gast)


Lesenswert?

Hallo zusammen

Da ich nun alle "Fehler" aus meinem Schaltplan entfernt habe, kann
ich nun mit dem Layouten anfang.
Ich wollte mich nur kurz für die Hilfe von mthomas und ganz besonders
Jörg bedanken.

MfG Stephan

von Axel Rühl (Gast)


Lesenswert?

@Stefan
Ich werde einen Mega16L-8MI verwenden, und als pegelwandler einen
MAX3221CUE. Einen Quarz hab' ich noch. Mal sehn, wo ich das ganze
einbaue...
Ich hatte ja schon ein JTAG-Interface beim letzten Atmel-Seminar in der
Hand, habe dann aber doch ein STK500 genommen, weil meins kaputt war,
ich habe damals die vorzüge eines JATG-Interfaces unterschätzt.
schandeübermich Nun brauch ich eins!
Gruß
Axel

von Jörg Wunsch (Gast)


Lesenswert?

Naja, ein STK500 hättest Du Dir nicht so schnell selbst zusammenlöten
können. ;-)

von Jens Meyer (Gast)


Lesenswert?

@Joerg
>Ich habe ein Eigenbau-ICE, hatte mir sogar mal vorgenommen,
>da Pegelwandler reinzubauen, so daß man das 5 V JTAG ICE
>mit Targets verbinden kann, die eine andere Spannung benutzen.
...und ich hab die Schaltung zusammen mit einigen Kollegen
genommen und daraus ein JTAG-Interface gebaut, das dann
auch nach eingen Stunden der Fehlersuche lief (RS232..).
Leider hat bisher noch niemand die Funktion der Pegelwandler
getestet, alle bisherigen Targets liefen mit 5V. Ich werd
bei Gelegenheit mal den letzten Schaltplan und evtl. auch
das PCB hier posten.

Jens

von Axel Rühl (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Jörg
 - Naja, ein STK500 hättest Du Dir nicht so schnell selbst
 - zusammenlöten können. ;-)
stimmt!, mein JTAG-Dingens habe ich fertig...Board ist in Auftrag
gegeben
Gruß
axel

von Axel Rühl (Gast)


Lesenswert?

jetzt habe ich die Pegelwandler garnicht drinne... sch
der meag16L läuft doch bis runter 2.7V, brauch man da welche, eher
nich, oder?
Axel

von Jörg Wunsch (Gast)


Lesenswert?

Naja, der ursprüngliche AT90S8535 und dann ATmega163 laufen nicht mehr
garantiert mit 7,3... MHz bei 3 V.  Außerdem geht das Atmel-JTAG ICE
noch bis 1,8 V runter.  Ist natürlich nur interessant, wenn Du sowas
auch debuggen willst (ATmega169V oder sowas).

von Stephan (Gast)


Lesenswert?

Hallo zusammen

@Axel
Könntest Du mal bitte deinen Schaltplan posten?
Dies ist aber kein QFP Gehäuse, oder?
Wo hast du deinen mega16l, und MAX3221 gekauft?

MfG Stephan

von Axel Rühl (Gast)


Lesenswert?

Hi,

@Stephan
wie, versteh' ich jetzt nich - Schaltplan posten ? Hast Du doch schon
gemacht... Ich habe deinen genommen, neu gezeichnet ( mein Eagle kann
keine png-schematics importieren) und schnell das Board gemacht.
Die Mega16L stammen aus meinem GPS/GSM-Projekt, der MAX auch.
Den MEga16L haben wir bei MCS in Berlin geordert, den MAX von
SPOERLE-DIRECT aus Leipzig bekommen.
Das Gehäuse ist ein MLF-Gehäuse. Für die RS232-Pegelwandler habe ich
zwei übereinander gelegt, einen TSOP und einen TSSOP. So passt der
eine, als auch der andere. habe hier schon böse Überraschungen erlebt.

@all
wenn ich's richtig verstanden habe:
Man baut also die Hardware vom original nach und lädt die original
Firmware hinein. Ziemlich "frech", oder?
Ich hätte was dagegen, wenn das mein Zeuchs wäre...

Naja, jedenfalls bin ich vom Forum wiedermal angenehm überrascht:
am 09.05. habe ich gefragt, und nu iss schon(fast) fertig. Daanke.
MfG
Axel

von Jörg Wunsch (Gast)


Lesenswert?

> Man baut also die Hardware vom original nach und lädt die original
> Firmware hinein.

So ist es.  Das heißt, das Atmel-Tool erledigt das freiwillig für
Dich. ;-)

> Ziemlich "frech", oder?

Ein bißchen.  Aber Atmel hätte das JTAG ICE ja auch zu einem
günstigeren Preis bauen können.  Bei den EUR 50 für den AVRISP kommen
deutlich weniger Leute auf die Idee, einen Clone zu zimmern, als bei
den >= EUR 300 das JTAG ICE (und so sehr viel aufwendiger ist das ICE
auch nicht).

Der Preis ist wohl eher politisch motiviert, weil das JTAG ICE ja
letztlich ,,mehr kann'' als dessen kleinere Geschwister ohne JTAG,
diese aber wiederum sind schaltungstechnisch recht aufwendig und daher
teuer.

Formal hast Du bei der beschriebenen Vorgehensweise nicht gegen deren
Lizenzbestimmungen verstoßen.

> Ich hätte was dagegen, wenn das mein Zeuchs wäre...

Atmel sollte sich drauf konzentrieren, Chips zu produzieren und zu
verkaufen, nicht Hardware.  (Tun sie ja auch.  Das einzige, wo sie
letztlich was dagegen unternommen haben war, daß mal jemand einen
PDF-Schaltplan eines alten JTAG ICE online hatte, weil ein solcher
früher mal auf einer Ressourcen-CD-ROM mit dabei lag.)

Selbst gegen den Olimex-Nachbau haben sie ja wohl nichts unternommen,
davor gab's auch schon einen aus Fernost, der kommerziell vertrieben
worden ist.

von Stefan Seegel (Gast)


Lesenswert?

Tach!
Nach langem googeln hab ich nun hier im Forum endlich das
Selbstbau-JTAG-Interface gefunden! :-) Feine Sache. Noch ein paar
Fragen dazu:

Wo bekomme ich das .hex für den mega 16 nun her ? hab mich in dem
inzwischen langem thread zeimlich verhedert :-)

Wie funktioniert das eigentlich mit dem AVR-Studio ? Es war mal zu
lesen dass das Studio das JTAG Interface selbst flashed ? Warum
eigentlich das ganze, ist für jeden zu debuggenden µC wohl eine andere
JTAG-Firmware nötig ?

Wegen JTAG Platinchen: Kann mir vorstellen dass diese noch mehr Leute
haben wollen, besteht da vielleicht Interesse mehrere davon machen zu
lassen ? Würde das notfalls auch übernehmen...

MfG
Stefan

von Bronstein (Gast)


Angehängte Dateien:

Lesenswert?

Kann mir jemand den Schaltplan und die Stückliste für die benötigten
Bauteile schicken. Ist das das JTAG-ICE das es auch bei Conrad zu
kaufen gibt(siehe Anlage)?
Und wo kaufe ich am besten(günstigsten) die Bauteile für das JTAG.

mfg Bronstein

von Cybertdk.. (Gast)


Lesenswert?

1,
JTANG udn BOOtICE eine Hackerproduckt ,,, mehr oder wehniger,,,
Der grund ide von Amtel " EINE 1000 füsler und programm ""
Was intern losgeht ..sollte keine wissen... Über 100 freigegebenen
Befehle und minimum 60-70 nicht freigegebenen befele sind
vorhanden.ALLE ICE greift auf noch nicht freigegebenen befehle
zurück..
Sonst es ist nich möglich Interne Laufprozesse Kontrolieren..
2.
WIe ist wenn du mit eine, 2 andere Chip steuer willst oder müssen.??
Seine Interne ISP kannst du vergessen.. Bleibt nur I/O Port ...
Mit zwei AVR könntest du eine flotte  Grafik MATRIX BIlden , wenn die
helfte I/O Port nicht für übertragung verloren gehen würde..
Ich hoffe das AVR bringt eine neue SCHaltkreis raus mitwem flotte
übertragung aufbauen kannst.

von AxelR. (Gast)


Lesenswert?

Nabend,
was sagt uns das?

von JoachimS (Gast)


Lesenswert?

Hi leute,
habe mir die "Mühe" angetan und das Board von Evertool (das Light
Board) nachgebaut. Soweit alles fein, aber die dann darum ging, mit
AvrStudio die neue Firmware einzuspielen, war plötzlich schluss.

Wenn ich nicht ganz blind bin / war, sollte layoutmäßig und so alles
passen.

Hat jemand ne idee was da schief laufen könnte?

THX

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.