Microkontroller - JTAG

Started by asgard, 09. Jan 2008, 17:15

previous topic - next topic
Go Down

Schneeleopard

#45
24. Mar 2008, 15:01 Last Edit: 24. Mar 2008, 15:25 by Schneeleopard
So, hab mal die neue Version fertig gemacht.

Aenderungen:
-MACRO-Defines fuer JTAG-Clock-Verzoegerung und Patchzeitpunkt.
-Standard JTAG-Clock-Verzoegerung auf 15 erhoeht.
-Zusaetzlich hex und bin files fuer ATMEGA16 und 32.
-Kleinere Optimierung der USART-Ausgabe die die Codegroesse ein paar hundert Bytes reduzierte.
-README etwas erweitert und Bilder fuer Anschluss des Resetkabels beigefuegt.

Schneeleopard

Hier ist noch eine neue Version mit geaenderten port pins um das problem mit dem JTAG-Port auf ATMEGA16 und 32 MCUs zu umgehen.

Aenderungen:
-Die Pins fuer die JTAG-Verbindung zum x30Xt sind nun PD3, PD4, PD5 und PD6.
-Die Jumper fuer LX.BIN und YA.BIN liegen nun auf PB1 und PB2.

Ansonsten wurden keine Aenderungen gemacht.

Schneeleopard

Wieso sollte ich etwas dagegen haben? :)

Ich bin im Moment gerade noch mit einem anderen Projekt beschaeftigt, werde wohl auch die naechsten paar Tage nicht dazu kommen da etwas neues zu implementieren.

asgard

Hey Peterfido,

super sache :)

Kannst du vielleicht noch ein paar fotos machen...dann fällt es mir/allen deutlich leichter alles nachzubauen   ::)

Grüße und Danke
Asgard

smplasma

Klasse wie schnell das voran geht.Respekt
Eine Liste der Bauteile bei Reichelt, oder Conrad wäre für die
nicht so Hardwarekundigen auch bestimmt von Vorteil.

Schneeleopard

#50
26. Mar 2008, 13:20 Last Edit: 24. May 2008, 12:41 by Schneeleopard
Ich habe mal schnell eine Bauteilliste für Reichelt zusammengestellt.
Sollte alles drauf verzeichnet sein, hoffe ich mal.

Die wichtigsten Teile (Angenommen die Gründausstattung Lötstation oder geeigneter Lötkolben und einiges an dünner Litzenleitung sind vorhanden):

Der unbedingt nötige Teil (Reicht wenn Möglichkeit zum Programmieren vorhanden):
Der ATMEGA8 selbst in der 3.3V-Version:     Artikel-Nr.: ATMEGA 8L8 DIP          1,85 €
IC-Sockel für die MCU:                             Artikel-Nr.: GS 28P-S                    0,36 €
100nF Kondensator:                                 Artikel-Nr.: Z5U-5 100N                0,070 €

Wenn noch ein paar Funktionen zusätzlich angebaut werden sollen (RS-232 Interface, LEDs) empfielt sich
der Aufbau auf einer Lochrasterplatine, dann kommen noch dazu:
Lochrasterplatine 50x100mm:                     Artikel-Nr.: H25PR050                   0,63 €
Silberdraht 0.6mm (Wenn nicht vorhanden): Artikel-Nr.: SILBER 0,6MM              1,80 €
Zweiter 100nF Kondensator:                      Artikel-Nr.: Z5U-5 100N                0,070 €
Stiftleiste für YA.BIN, LX.BIN jumper            Artikel-Nr.: LU 2,5 MS 3                0,23 €
Jumper (Wenn nicht vorhanden)                 Artikel-Nr.: JUMPER 2,54 SW          0,041 €

Serielles Interface (Wenn gewünscht):
(Der RS232-USB Umsetzer unten auf dieser Seite http://www.t-hack.com/wiki/index.php/UART0
sollte anstelledessen auch funktionieren)
RS232-Pegelumsetzer 3.3V fähig:               Artikel-Nr.: MAX 3232 CPE             3,50 €
4x 100nF Kondensator:                            Artikel-Nr.: Z5U-5 100N                0,070 € (Stück)
8MHz Quartz für ATMEGA                                 Artikel-Nr.: 8,0000-HC18               0,24 €
(Um stabilen Clock für RS232 zu gewährleisten)
2x Keramik-Kondensator 22P                     Artikel-Nr.: KERKO 22P                  0,041 € (Stück)
(Für Quartz Schwingstabilisierung nötig)
Sockel für RS232-Umsetzer:                      Artikel-Nr.: GS 16                        0,041 €
SUB-D 9 Stecker (Serieller Port):                Artikel-Nr.: D-SUB ST 09              0,083 €
Kappe für Stecker:                                  Artikel-Nr.: KAPPE CG9G               0,092 €
Kabel zur Verbindung mit dem PC
(Wenn nicht vorhanden)                           Artikel-Nr.: AK 143                      1,40 €

LED-Anzeige (Wenn gewünscht):
Low-Current LED Gelb                               Artikel-Nr.: LED 5MM 2MA GE        0,092 €
Low-Current LED Grün                               Artikel-Nr.: LED 5MM 2MA GN        0,092 €
Low-Current LED Rot                                 Artikel-Nr.: LED 5MM 2MA RT        0,092 €
3x Vorwiderstände für LEDs                        Artikel-Nr.: METALL 750               0,082 € (Stück)

Ein einfacher Programmieradapter lässt sich mit einem subD25-Stecker (Parallelport) und 4 100Ohm Widerständen aufbauen:
Stecker:                                                Artikel-Nr.: D-SUB ST 25              0,10 €
4x Widerstände:                                      Artikel-Nr.: METALL 100               0,082 € (Stück)
Kappe für Stecker:                                  Artikel-Nr.: KAPPE CG25G              0,13 €
Kabel zur Verbindung mit dem PC
(Wenn nicht vorhanden)                           Artikel-Nr.: AK 404                      1,65 €

Wenn man das Ganze sauber aufbauen will ohne fliegende Verdrahtung würde es sich
empfehlen Stiftwannen und Pfostenstecker mit Flachbandkabel zu verwenden.

Ich werde demnächst noch ein Schaltbild für den Aufbau anhängen.
Irgendwann auch die fertig aufgebaute Version, wenn ich mal dazu kommen sie zu bauen :)

Beim Aufbau empfielt es sich zum Schutz vor elektrostatischer Aufladung erst die Schaltung Komplett an den Sockel zu löten und erst danach die ICs in die Sockel zu stecken.

EDIT: Habe mal einen Quartz und entsprechende Kondensatoren dazugeschrieben in der RS232 Sektion.
Ein Quartz zur Frequenzgenerierung wird empfohlen, da der RS232-Port recht genaue Frequenzeinhaltung erfordert (Und ich letztens zum ersten Mal einen ATMEGA erwicht habe bei dem der interne Clock so weit abwich, das am RS232 nur Hieroglyphen herauskamen).

Schneeleopard

#51
26. Mar 2008, 14:02 Last Edit: 24. May 2008, 12:50 by Schneeleopard
Ich habe mal schnell einen Schaltplan dafür gemacht

Kleiner Fehler im Plan, man denke sich +3.3V wo +5V steht :)

EDIT: Die resetsource hatte ich auch vergessen einzuzeichnen :/
Habe mal den korregierten Plan angehängt, nun auch mit 3.3V.

Ausserdem noch ein Plan, wie der Minimalaufbau aussieht der zum reinen Betrieb des Chips nötig ist.
Wenn man nur den Signaturpatch braucht und kein Linux oder Yamon booten will kann man sogar den Jumper noch weglassen.

EDIT: Quartz für RS232 in Schaltplan eingefügt.

smplasma

klasse, danke für die schnelle antwort.

Schneeleopard

Hier ist auch noch ein Schaltbild für den simplen PonyProg kompatiblen Programmieradapter zu finden:

http://www.blafusel.de/bilder/misc/upc/atmega8_isp_sp2.gif

Schneeleopard

#54
26. Mar 2008, 23:03 Last Edit: 26. Mar 2008, 23:08 by Schneeleopard
Netter Aufbau :)

Zum Thema Vorwiderstand... Mir ist gerade aufgefallen dass ich die Vorwiderstände der LEDs auf meinem Plan aus purer Gewohnheit für 5V statt für 3.3V berechnet habe, für 3.3V sollten es 750Ohm sein und nicht 1,6kiloohm.

Sorry, falls jemand schon die Teile bestellt hat, es sollte auch mit den 1k6 Widerständen funktionieren, die LEDs werden aber wohl deutlich dunkler sein.

Ich ändere das gerade mal in der Teilelisteun dem Plan.

plenkk

Ich bin wieder da! ;)

Sorry, war im Umzugsstress... aber wie ich sehe, seid ihr ja auch glänzend ohne mich klargekommen :)

Ich bin jetzt auch endlich mal dazu gekommen, an meinem Modchip weiterzuarbeiten. Es gibt zwar inzwischen auch andere, aber wo ich schonmal damit angefangen habe...
AVR und SMP8634 sprechen auch schon miteinander. Ich muss nur noch ein bisschen bugfixen.

Mein Code ist übrigens komplett in Assembler. Warum? Weil es mir so mehr Spaß macht! ;D Ein wirklichen Vorteil hat man davon in der Praxis wohl eher nicht. Höchstens, dass man einen kleineren, günstigeren Controller nehmen kann.

Schneeleopard

#56
24. May 2008, 13:05 Last Edit: 24. May 2008, 13:07 by Schneeleopard
Hut ab davor so ein recht komplexes Teil (Inkl. 32Bit dwords) in Assembler zu coden.
Assembler ist nett, nur leider später etwas schwer zu lesen wenn man kein Profi darin ist :)

Habe an meinem Projekt auch noch etwas geändert, in Bautteilliste und Schaltplan sind jetzt ein 8MHz Quartz und 2 22pF Kerkos dazugekommen sofern man das RS232-Interface nutzen will.
Ich hatte letztens das erste mal einen AVR bei dem der interne Oszillator so weit abwich, dass am RS232 nur Hieroglyphen kamen.
Das kann man zwar mit dem OSCCAL register etwas abmildern, aber optimal ist es nur mit externem Quartz.

In dem Fall müssen die Fuses dann auf "External Crystal/Ceramic Resonator slowly rising" (CKOPT - 1, CKSEL 3..0 - 1111, SUT 1..0 - 11) gestellt werden.
Aber bitte NUR den externen Oszillatormodus wählen, wenn tatsächlich ein Quartz angeschlossen ist, sonst reagiert der AVR nicht mehr.

Fuse bits für den Internen Oszillator (Funktioniert immer, aber evtl. zu ungenau für RS232): (CKOPT - 0, CKSEL 3..0 - 0100, SUT 1..0 - 10)
Für den internen Oszillator sollte man eigentlich noch das Oscillator Calibration Byte für 8MHz mit dem Programmiergerät auslesen und am Anfang der main() routine ins OSCCAL register schreiben.
Das werde ich in der nächsten SW-Version vorsehen.

Schneeleopard

Ich habe mal ein sourceforge Projekt für den Modchip-Code gemacht, damit ich kleinere Änderungen einfügen kann ohne damit gleich das Forum zuzuspammen.

Zu finden ist es unter: http://mramc.sourceforge.net/

MatrixOne

#58
12. Jul 2008, 08:31 Last Edit: 12. Jul 2008, 19:05 by MatrixOne
Wo greift ihr am besten die 3.3V spannung für den modchip ab ab?

nach etlichen versuchen habs nach der hier vorgegebenen anleitung gebaut, bekomme ich im ponyprog imemr die meldung das es nicht angeschlossen sei. ich habe 3.3v pin 14 angewand vll ist da bei mri kein 3.3V mehr wie bei älteren boards. auf jeden fall habe ich alles nach anleitung angeschlossen.

proplem gelöst :)

problem war ponyprog irgend wie sponn es rum hab nun Yaap benutzt damit konte ich den mega8 beschreiben.

jedoch hab ich entweder selber oder es ist im schlatplan irgend was durcheinander was ich bezweifle. auf jeden fall, hab ich nun alles so gemacht wie Schneeleopard es in seiner explosions zeichnung hat. jedoch sobald ich die NK.bin austausche mit der wo die gepatchte BooterCe drine ist und die platte wieder einbaue. macht er sofort nen firmware update ich weiss im moment auch nicht weiter vll habt ihr ne idee ggf werde ich morgen mal die platine komplett neu machen als einfachen chip ohne RS232 ind ISP vll hab ich irgend wo einen fehler.

MatrixOne

so mitlerweile ist mein Atmega8 geflasht, und auch das auslesen geht. somit sollte der chip funktionieren,

habe sehr sehr kurze AWG32 kabel alles richitg verbunden und egal wie hab jetzt meinen 3. chip auf bau hab erst komplet mit RS232 und ISP und allem gehabt dan hab ich nur einen mit ISP und nun nen reine chiplösung per jtag lässt sich das ding problemlos patchen nur irgend wie will das teil nicht mit dem chip hab jetzt alle versuche hinter mir ohne erfolg einzigste könnte die 3.3v sein die normaler weise hja an Pin 14 liegt. ansonsten ist alles richitg eingebaut.sonst noch einer eine idee woran es liegen kann?

Go Up