mikrocontroller.net

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


Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Fabian Wolter (fabianwolter)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schauts bei Test und Reset aus?

Autor: Fabian Wolter (fabianwolter)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe mal ein Screenshot vom Oszi während des Verbindungsaufbaus gemacht.

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

Autor: Stefan (Gast)
Datum:

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

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich schon probiert. Auch VCC an Pin 2, ohne externe Versorgung.

Autor: Stefan (Gast)
Datum:

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

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....... ???

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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."

Autor: Fabian Wolter (fabianwolter)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.