Angenehmes Wochenende wünsche ich - habe hier ein Problem bislang ohne
Lösung: da ich keinen JTAG Adapter für MSP habe, versuche ich über den
integrierten seriellen Bootloader (boot strap loader, BSL) einen F449 zu
flashen. Das Problem ist, dass beide Leitungen vom Target nahe GND
gezogen werden (aber keine Masseverbindung auf der Hardware zu finden
ist, d.h. 13 MOhm zu GND), und der CP2102 nicht dagegen ankommt (Noname
mit Status-LEDs an RX&TX, die bei Verbindung beide leuchten, obwohl TX
Ruhepegel 3.3 V ist ). Das ist auch unmittelbar nach Anlegen der
Versorgungsspannung so.
Es geht um diese Pins:
P1.1/TA0/MCLK General-purpose digital I/O / .. / BSL receive
P1.0/TA0 General-purpose digital I/O / .. / BSL transmit
Diodentest
Pin -> GND 1.6 V ?
GND -> Pin 0.5 V
Pin -> VCC 0.7 V
VCC -> Pin 1.8 V ?
Ist für andere Pins auch so.
Meine Frage nun: gibt es da irgendwas zu übersehen? Ein GPIO sollte nach
/ bei Reset doch immer floating sein (PDIR bei Reset auf 0)? Soweit ich
weiß, lassen sich diese Ports nicht deaktivieren.
Info:
Produktseite http://www.ti.com/product/MSP430F449
Datenblatt http://www.ti.com/lit/gpn/msp430f449
Family Guide http://www.ti.com/lit/pdf/slau056
SLAA096D - Application of Bootstrap Loader in MSP430
SLAA089F -> SLAU319K MSP430 Programming With the Bootloader (BSL)
H4ck3r :-) schrieb:> da ich keinen JTAG Adapter für MSP habe
Sofern Du einen PC mit Frickelport* hast, kannst Du Dir so etwas leicht
selberbauen; TI hat die simple Schaltung, die im MSP-FET430PIF verwendet
wird, veröffentlicht:
http://www.ti.com/lit/pdf/slau278, Seite 178
Ansonsten hast Du nichts darüber geschrieben, wie Du den BSL aktivieren
willst -- laut slaa89 musst Du mindestens zwei fallende Flanken an TCK
anlegen solange /RST low ist und TCK low halten, wenn /RST auf High
geht.
(Beschrieben in Abschnitt 2.2 "Flash Devices with dedicated JTAG pins")
Machst Du das?
*) Parallelport. War ursprünglich mal für Drucker gedacht, wurde danach
für viele viele Probleme bereitende Frickeleien wie Programmieradapter
etc. missbraucht.
Rufus Τ. F. schrieb:> Machst Du das?
Das hatte ich versucht, und dann nach
Mass Erase...
ERROR: Synchronization failed!
Device with boot loader connected?
bemerkt, dass die TX/RX Pins auch im Reset LOW sind, so dass das 0x08
(?) Sync-Byte gar nicht übertragen werden kann. Bringt also nichts!?
Falls jemand die Möglichkeit hat, wär's natürlich super, ein
Oszillogramm oder Trace aller BSL-Signale eines funktionierenden
Transfers zu veröffentlichen.
Vor Jahren hatte ich mit dem BSL schonmal Erfolg bei dem
MSP430-Launchpad Debuginterface - die BSL-Sequenz hatte ich damals von
Hand ausgeführt.
(Es gibt übrigens auch eine MSP430-Launchpad-Firmware, die es zum
BSL-Adapter macht: SLAA535A)
Was kann's noch sein?
Hardware
- Richtige Pins erwischt? Ja. Vorsicht: Marking um 90° auf dem Package
gedreht, irreführende "Kreise" sind nicht die Pin-1-Markierung!
- Target-Hardware zieht die Pins auf GND (ich finde dazu nichts /
Messung spricht dagegen)
- Versorgungsspannung stabil
- Pins per JTAG o.Ä. deaktiviert
- CP2102 Adapter zu hochohmig
- Pegel falsch / invertiert
- Custom IC (Marking entspricht allerdings dem Datenblatt)
- IC defekt
Rufus Τ. F. schrieb:> leicht selberbauen
Danke für den Hinweis, aber das ist mir zu aufwändig. Eher würde ich es
mit Beitrag "Use your STMxx-Discoveryboard as JTAG (SWD)" probieren, aber das
Projekt ist offenbar tot.
H4ck3r :-) schrieb:> bemerkt, dass die TX/RX Pins auch im Reset LOW sind
Währen des Resets sind alle Pins hochohmig. Die Pins werden erst vom BSL
konfiguriert. Falls der BSL überhaupt läuft.
> Target-Hardware zieht die Pins auf GND
Du hast uns bisher verheimlicht, was für eine Target-Hardware du
benutzt.
H4ck3r :-) schrieb:> Eher würde ich es mit Beitrag "Use your STMxx-Discoveryboard as JTAG> (SWD)" probieren
Das wird problematisch, denn JTAG != JTAG. Oder gibt es etwa 'ne
Softwareunterstützung, um das Ding mit 'nem MSP430 zu nutzen?
Das G2-Launchpad verwendet übrigens (ebenso wie der ältere EZ430)
praktisch die gleiche Hardware wie der MSP-FET430UIF, nur die
Treiberbausteine für das 4-Draht-JTAG-Interface fehlen. Wenn man in den
'F1612 auf dem Launchpad/EZ430 die Firmware des MSP-FET430UIF lädt und
die nötigen Treiberbausteine dranbastelt, sollte man damit dann auch
"korrektes" 4-Draht-JTAG betreiben können.
Die Schaltung des MSP-FET430UIF ist im selben Dokument enthalten wie die
des Frickelportadapters (ab Seite 172 von slau278), die des EZ430 findet
sich hier:
http://www.ti.com/lit/ug/slau176d/slau176d.pdf ab Seite 9.
Und der Debugteil des G2-Launchpads ist dem der beiden vorgenannten sehr
ähnlich (http://www.ti.com/lit/ug/slau318f/slau318f.pdf, ab Seite 14).
Rufus Τ. F. schrieb:> Wenn man in den> 'F1612 auf dem Launchpad/EZ430 die Firmware des MSP-FET430UIF lädt und> die nötigen Treiberbausteine dranbastelt, sollte man damit dann auch> "korrektes" 4-Draht-JTAG betreiben können.
Die Treiber/Schutzbeschaltung könnten evtl. entfallen, wenn alles mit
derselben Spannung betrieben wird. Dann müsste man nur eine handvoll
Leitungen hinzufügen bzw. ändern (Pull-Ups).
Aber wo gibt es die Firmware?
Sowohl die "embedded workbench" von IAR als auch der CodeComposer führen
ein Firmwareupdate durch - also dürften sie diese Firmware irgendwie
enthalten.
Ja, auf den 2. Blick habe ich es nun für CCS 5.5 gefunden:
C:\Program Files\ti\ccsv5\ccs_base\DebugServer\drivers
Uifv3Downgrader.txt enthält möglicherweise Firmware, UpdateTool.exe ist
dort auch.
Ich werde jetzt erstmal ein anderes Target mit BSL testen, an dem die
Leitungen erwartungsgemäß floaten..
Am anderen Target hat es mit BSL funktioniert.
Die o.g. Updates scheinen zu klein zu sein für vollständige Images, eher
wohl Patches. Der Rest (komplette Firmware) ist vielleicht in der DLL
versteckt?
Läuft aber evtl. schon dieselbe Software darauf? Mein MSP-EXP430G2 Rev
1.4 EMULATION meldet sich als MSP-FET430UIF mit VID 0451 und PID f432
an.
http://www.linux-usb.org/usb.ids
...
0451 Texas Instruments, Inc.
..
f430 MSP-FET430UIF JTAG Tool
f432 eZ430 Development Tool
...
Wie könnte man das prüfen?
Ja: offenbar laeuft dort ein auto-detect und das SBW ist der fallback.
Zumindest habe ich im Netz keine offizielle Moeglichkeit gefunden, den
Uebertragungstyp in CCS einzustellen. Evtl. reicht es ja schon, mal
einen LA anzuschliessen um zu sehen, ob die Leitungen angesprochen
werden.
H4ck3r :-) schrieb:> Zumindest habe ich im Netz keine offizielle Moeglichkeit gefunden, den> Uebertragungstyp in CCS einzustellen.
Das lässt darauf schließen, daß die Identifikation des verwendeten
Adapters an doch mehr als der VID/PID-Kombination liegt. Tja. Würdest Du
keinen so völlig antiquierten Controller verwenden, könntest Du SBW
nutzen, was von TI mit spottbilligen Launchpads & Co. fleißig
unterstützt wird ...