Forum: Mikrocontroller und Digitale Elektronik MSP430 JTAG-Adapter Inkompatibilitäten


von Fabian W. (fabianwolter)


Lesenswert?

Hallo,

ich musste gerade feststellen, dass man mit dem MSP-FETP430PIF keine 
MSP430F20xx mehr flashen kann. Das geht laut slau138k nur mit dem 
ez430-F2013.

Wenn ich mir die Schaltpläne, z.B. von Olimex 
(http://www.olimex.com/dev/images/msp430-jtag-d-sch.gif) anschaue, dann 
puffert der JTAG-Adapter die Signale nur und führt eine Pegelwandlung 
durch. Wieso ist da trotzdem eine Inkompatibilität?

Wenn ich mir jetzt den MSP430-JTAG-TINY von Olimex hole, kann ich dann 
damit wirklich alle Controller die SBW können programmieren?

Gruß Fabian

von Stefan (Gast)


Lesenswert?

>ich musste gerade feststellen, dass man mit dem MSP-FETP430PIF keine
>MSP430F20xx mehr flashen kann. Das geht laut slau138k nur mit dem
>ez430-F2013.
Ich glaube, Du wirfst da gerade zwei verschieden Dinge in einen Topf:
JTAG und SBW

Der MSP-FET430PIF kann nur per JTAG flashen (und debuggen), der 
ez430-F2013 kann das selbe nur per SBW.
Die MSP430F20xx-Familie kann aber sehr wohl per JTAG als auch per SBW 
angesprochen werden, das ist lediglich ein Frage der Verdrahtung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Hingegen beherrscht der MSP-FET430UIF genauso wie sein Olimex'scher 
Nachbau MSP430-JTAG-TINY sowohl JTAG als auch SpyBiWire.

von Fabian W. (fabianwolter)


Angehängte Dateien:

Lesenswert?

@Stefan: Ich bin mir über den Unterschied zwischen JTAG und SBW sehr 
wohl im Klaren. Deshalb fragte ich ja, da es mir unlogisch erscheint, 
dass der MSP430F2001 per JTAG programmiert werden kann, jedoch nicht vom 
FETP430PIF.

Aber wenn ich mir die Tabelle unter 1.1 in 
http://focus.ti.com/lit/ug/slau138k/slau138k.pdf nochmal genauer 
anschaue, habe ich da das "X" bei "Supports MSP430F20xx devices only" 
wohl fehlinterpretiert.

Dann liegt es bei meiner Schaltung wohl an etwas anderem, dass der F2001 
nicht erkannt wird. Ich habe mal den Schaltplan angehängt, vielleicht 
fällt ja jemandem etwas auf?

Gruß Fabian

von Jörg S. (joerg-s)


Lesenswert?

Mach mal testweise den 47k vom Testpin weg. Wenn du die JTAG Pins nicht 
anderweitig nutzt, brauchst du den eh nicht.
Oszi vorhanden? Wenn ja kann man sich auch mal anschauen was beim 
Programmierversuch so an den Pins los ist.

von Fabian W. (fabianwolter)


Lesenswert?

Den Test-Widerstand habe ich entfernt. Beim Verbindungsversuch kommen 
für ca. 600µs auf den Signalen TDI, TMS und TCK Daten an. Nur TDO ist 
die ganze Zeit low. Ich habe vom Controller-Pin bis zum JTAG-Adapter die 
Signalleitung erfolgreich durchgemessen, auch liegt kein Schluss zu 
einer Versorgungsleitung vor. Ist evtl. die JTAG-Fuse raus?

Gruß Fabian

von Jörg S. (joerg-s)


Lesenswert?

Wie schauts bei Test und Reset aus?

von Fabian W. (fabianwolter)


Angehängte Dateien:

Lesenswert?

Habe mal ein Screenshot vom Oszi während des Verbindungsaufbaus gemacht.

CH1=RESET
CH2=TDI
CH3=TMS
CH4=TEST

von Stefan (Gast)


Lesenswert?

An Pin4 Deiner JTAG-Stiftleiste muss noch Vcc (3,3V) dran.
(laut slau138k)

von Fabian W. (fabianwolter)


Lesenswert?

Habe ich schon probiert. Auch VCC an Pin 2, ohne externe Versorgung.

von Stefan (Gast)


Lesenswert?

Dann fällt mir nur noch der Bug BCL13 ein:
http://focus.ti.com/lit/er/slaz026i/slaz026i.pdf

von Fabian W. (fabianwolter)


Lesenswert?

Diese Bug-Beschreibung habe ich auch schon gefunden ;-) Vcc wird bei mir 
nach jedem erfolglosen Verbindungsversuch mehrere Sekunden auf low 
gezogen und steigt dann wieder mit 30kV/s an. Also etwas fixer als die 
genannten 10V/s.

von Stefan (Gast)


Lesenswert?

>...und steigt dann wieder mit 30kV/s an.
Vielleicht ist das nun wieder zuviel? ;-)

Nee, im ernst, dann weiß ich auch nicht mehr weiter.
Ich hab zwar auch den Parallel-FET aber nur mit F1xx im Einsatz.
Den F2013 malträtier ich mit dem ez430 USB-Stick.

Die JTGA-Fuse wäre zwar eine Möglichkeit, aber so ganz von alleine 
brennt die auch nicht durch. Anderen µC zum Testen mit dem P-FET zur 
Hand?
Oder anderes FET zum testen mit dem F2001 ausleihbar?

Viel Erfolg noch...

von Fabian W. (fabianwolter)


Lesenswert?

Auf http://www.embeddedrelated.com/groups/msp430/show/11540.php ist 
beschrieben, wie man prüft, ob die Security-Fuse "blown" ist:

> - Connect TMS-pin to GND
> - Apply VCC (= 3V)
> - Connect a amp-meter between the TEST-pin and VCC :
>   I ~= 1,5mA @Vcc=3V: Fuse intact
>   I ~= 25uA @Vcc=3V: Fuse blown

Mein Messgerät zeigt bei allen drei Controllern (frisch von Reichelt) 
ca. 45µA an. Kann doch eigentlich nicht sein, dass bei allen die 
Sicherung durch ist? Allerdings wäre das ein recht großer Messfehler, 
1,5mA zu 45µA ... (Zumindest den letzten Controller habe ich beim 
Einsetzen in den Sockel nicht mit den Fingern berührt, von wegen ESD...)

Ein MSP430F449, F435 und F1232 funktionieren an dem FET. An einen 
anderen FET komme ich so im Moment nicht dran.

Gruß Fabian

von Stefan (Gast)


Lesenswert?

Das Thema ist mir jetzt fremd, ich habe noch nie Fuses "gemessen".
ABER: TI sagt da (glaube ich) was anderes:
Siehe SLAA149D, Kap 3.1.2:
http://focus.ti.com/lit/an/slaa149d/slaa149d.pdf

Da steht was von 2x TMS toggeln mit jeweils mind. 5µs low, dann müssen 
ca. 2mA fliessen, falls die Fuse OK ist. TMS einfach nur auf low reicht 
nicht!
Ausserdem kann es wohl manchmal fälschlicherweise zu einer 
blown-fuse-Meldung kommen, die gar nicht stimmt...

von Jörg S. (joerg-s)


Lesenswert?

>Ausserdem kann es wohl manchmal fälschlicherweise zu einer
>blown-fuse-Meldung kommen, die gar nicht stimmt...
Sehr richtig, hab ich schon tausend mal gehabt.

>Ich hab zwar auch den Parallel-FET aber nur mit F1xx im Einsatz.
>Den F2013 malträtier ich mit dem ez430 USB-Stick.
Also ich hab mit einem parallel-FET auch schon diverse MSP430F20xx und 
MSP430F22xx problemlos programmiert.

von Fabian W. (fabianwolter)


Lesenswert?

@Stefan: Obige Info stammt von TI selbst. TMS wird in SLAA149D nur 
getoggelt, um sicher zu gehen, dass der JTAG-Automat in einem 
definierten Zustand ist. Ist er in einem anderen Zustand fließt, 
zumindest bei meinem F1232, gar kein Strom.

Bevor ich noch weiter herumstochere, werde ich mir mal einen MSP430F2011 
von Reichelt besorgen. Vielleicht ist ja wirklich bei allen drei die 
Fuse durch.

Gruß Fabian

von Christian R. (supachris)


Lesenswert?

Also einen F1122 hab ich mit dem Parallel-Port-Debugger einwandfrei 
ansprechen können. Eine ganze Packung Samples vom F2274 allerdings hab 
weder mit SBW noch mit JTAG über den USB Progger zum laufen bekommen. 
Sehr komisch.

von Stefan (Gast)


Lesenswert?

>TMS wird in SLAA149D nur getoggelt, um sicher zu gehen,
>dass der JTAG-Automat in einem definierten Zustand ist.
Da lese ich aber was anderes:
"...a fuse check must be done before JTAG access is granted.
Toggling of the TMS signal twice performs the check."

Der JTAG-Reset erfolgt danach:
"It is recommended that a minimum of six TCK clocks be sent to the 
target
device while TMS is high followed by setting TMS low for at least one 
TCK
clock. This sets the JTAG state machine (TAP controller) to a defined
starting point: the Run-Test/Idle state."

Aber ist ja wurscht, ob man damit was herausbekommt halte ich eh' für 
fragwürdig.

Einen allerletzten Erklärungsversuch habe ich noch!
Ebenfalls in SLAA149D wird erklärt, wie man den 4-wire JTAG-Modus 
aktiviert (s. Kap 3.1.1).
Darin wird zwischen reinen JTAG-Devices und zwischen SBW/JTAG-Devices 
unterschieden. Die Entry-Sequenz ist dabei unterschiedlich.
Der P-FET mag zwar hardwaremäßig in der Lage sein, beide Sequenzen 
auszugeben, jedoch muss diese Sequenz aber letztendlich von der 
Tool-Software generiert werden. Vielleicht ist also der Fehler in der 
Software zu suchen....... ???

von Fabian W. (fabianwolter)


Lesenswert?

@Christian: Hast du herausgefunden woran es lag oder konntest du sie nur 
noch wegschmeißen?

@Stefan: Dort steht, dass TEST nach Vcc gezogen werden muss, um die 
JTAG-Funktionalität an den shared Pins zu aktivieren. Laut meinem 
Oszi-Screenshot, ist das bei mir der Fall...

von Christian R. (supachris)


Lesenswert?

Fabian Wolter wrote:
> @Christian: Hast du herausgefunden woran es lag oder konntest du sie nur
> noch wegschmeißen?

Nein hab ich nicht. Alle 5 aus der Sample-Charge gingen nicht. Ich hab 
da schon verschiedene Controller als Samples bestellt, gingen alle bis 
auf den 2274.
Der F1122 klappte problemlos, TEST auf Vcc und die 4 JTAG-Leitungen 
dran, fertig. programmiert mit dem billigen LPT-Debugger von Steven 
Wetzel. Genau die gleiche Schaltung funktionierte am F2274 nicht. Hab 
auf Arbeit ja mehrere der original USB FET von TI, war kein raufkommen 
auf den Chip. Weder SBW noch JTAG. verbindung 100%ig so wie angegeben, 
ging nix.
Hab dann die Schaltung auf den F149 umgebaut, der klappt immer.

von Stefan (Gast)


Lesenswert?

>@Stefan: Dort steht, dass TEST nach Vcc gezogen werden muss, um die
>JTAG-Funktionalität an den shared Pins zu aktivieren.
Nö, eben nicht!
Dort steht, dass bei Devices die sowohl SBW als auch 4-wire JTAG 
unterstützen, folgende Entry-Sequenz durchlaufen werden muss, um den 
4-wire JTAG zu aktivieren:

"Devices with SBW also support the standard 4-wire interface. The 4-wire 
JTAG interface access is enabled by pulling the SBWTDIO line low and 
then applying a clock on SBWTCK. The 4-wire JTAG mode is exited by 
holding the TEST/SWBCLK low for more than 100 ms."

von Fabian W. (fabianwolter)


Lesenswert?

Ich habe mir mal einen USB-TINY von Olimex besorgt, und siehe da ... es 
funktioniert! Sowohl per JTAG, als auch per SBW kann ich den F2001 
flashen und debuggen. Die Schaltung ist dieselbe.

Unter http://tech.groups.yahoo.com/group/msp430/message/25721 wird ein 
TI-Mitarbeiter zitiert, der meint, dass der parallele FET zu langsam 
sei...

Gruß Fabian

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.