Forum: Mikrocontroller und Digitale Elektronik TI Evalbot & externes JTAG-Interface


von Robert B. (robertb)


Lesenswert?

Hallo!

Aufgrund der relativ großen Verbreitung des Evalbots im Forum hoffe ich 
auf Hilfe:

Ich würde gerne den ICDI (onboard JTAG) deaktivieren und über den 
separaten 50mil-Header (J4) mit meinem Segger J-Link EDU programmieren. 
Dazu habe ich einen Adapter vom 20-poligen ARM-JTAG-Stecker auf die 
kleine 10-polige Version auf dem Evalbot gebaut. Scheinbar ist dieser 
auch "üblich".

Ich habe verbunden
VTref
GND
TDO
TDI
TMS
TCK
nTRST (also Target-Reset!)

nicht verbunden sind
RTCK
RESET
DBGRQ
5V-Supply

Leider kann ich den uC nicht programmieren. Weiß jemand, ob ich das ICDI 
irgendwie zusätzlich lahmlegen muss? Reicht es generell den System-Reset 
zu verwenden? Bei den anderen Schaltungen ist natürlich der normale 
Reset mit dran, aber der ist am Stecker nicht vorgesehen.

Doku von Segger: 
http://www.segger.com/cms/admin/uploads/productDocs/UM08001_JLinkARM.pdf
Abschnitt 8.1 ist der normale 20-polige JTAG
Abschnitt 8.4 ist der normale 10-polige JTAG

Doku Evalbot:
http://focus.ti.com/lit/ug/spmu167/spmu167.pdf
Seite 20 unten links ist der Stecker

Vielen Dank!

Grüße
Robert

von Remo@ T. (remo)


Lesenswert?

Hi Robert, das Evalbot ist doch eine ziemlich komplexe Kiste.
Die meisten hier im Forum sind sicherlich froh, wenn sie es überhaupt 
mit dem ICD-USB schaffen den uC anzusprechen.
Jemanden zu finden, der sich mit deinem Externen IF UND dem Evalbozt 
auskennt ist nicht sonderlich wahrscheinlich.
Was versprichst du dir denn von dem externen Link, was das ICD nicht 
kann?

Hst du dir schon mal den Evalbot Schaltplan (ist von TI downloadbar) zu 
Gemüte geführt?

so long
Remo

von Robert B. (robertb)


Lesenswert?

Hi Remo,

klar hab ich mir das Schematic schon angesehen. - Ist nämlich der zweite 
Link in meinem Post.

Im Endeffekt habe ich es hinbekommen. Es lag an mehreren Dingen, die ich 
leider nicht einzeln austesten konnte weil ich keine funktionierende 
Referenz hatte um zu schauen ob es am Evalbot oder am Adapter lag:

- an den NRST muss auch der Reset vom J-Link dran
- ein Pullup an TDO hilft
- die "Dioden" D6 und D7 müssen bestückt werden um den Bot über den 
Stecker "USB-Device" versorgen zu können und gleichzeitig das ICDI 
ausgeschaltet zu lassen. Ab Werk ist meist D6 gebrückt, was dazu führt 
dass der Bot nur über ICDI mit Strom versorgt werden kann und das ICDI 
immer versorgt wird. Gewarnt wird vor der Modifikation da der 
Anlaufstrom der Motoren wohl dafür sorgen kann dass die Spannung vom USB 
aufgrund der Dioden zu stark einbrechen kann (ich messe nach den 
Schottkys die ich genommen habe noch 4,52V - unter Last hab ich es nicht 
getestet da ich die Motoren eh nicht verwende.

Warum ich das ganze mit dem L-Link betreiben will? - Weil der 
Flash-Vorgang mit dem ICDI schnarch-langsam ist. Zum Löschen braucht es 
ca. 20s, zum Schreiben weitere 20s. Der Takt wird auf maximal 800kHz 
gestellt (aufgrund des 16MHz Quarzes?). Zudem ist uVision während des 
Programmierens nicht "responsive" (keine Rückmeldung von Applikation), 
ein Verhalten, was ich vorher auch nicht kannte und irgendwie scheinbar 
mit dem Target zusammen hängt (oder der langen Programmierdauer).

Einen 128kB großen STM32F107RBT6 flashe ich hingegen mit dem J-Link mit 
10MHz innerhalb von ca. 2-3s! Bedauerlicherweise scheint sich der Bot 
aber mit dem J-Link auch nicht schneller als mit dem ICDI flashen zu 
lassen (auch insgesamt 40s - hab mitgezählt)... Der Takt wird scheinbar 
auf 9,6MHz eingestellt.

Nebenbei: Ich empfinde den Evalbot als nicht so "komplex". Sicher, er 
ist vollgestopft mit Features, aber jede einzelne Komponente für sich 
ist schön einzeln verständlich. Lustig wird nur alles gleichzeitig 
sinnvoll zu nutzen.

Grüße
Robert

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Hi,

Robert, kannst du mal n Schaltplan von dem Adapter Posten?
Was du jetzt genau da machen musstest, das mit dem dioden bestücken habe 
ich auch schon mal gelesen.

Hintergrund, Ich habe für meinen J-Link, Eclipse eingerichtet, und 
wollte mir jetzt nicht die mühe machen das alles über das TI ICDI zu 
machen, zumal
ich gerade nicht wüsste wo ich n GDB der für herbekomme außer vllt das 
geht mit OpenOCD. Aber selbst das will ich mir nicht antun.

Danke

MfG

Tec

von Robert B. (robertb)


Lesenswert?

Hi Tec,

einen Schaltplan gibts nicht. Ich habe mir einfach ein Programmierkabel 
gebastelt (100mil-Seite gecrimpt, 50mil-Seite gelötet). Die Kabel gibts 
ja auch bei Farnell, Digikey & Co zu kaufen. Die Verbindungen sind

VCC <-> VTref
GND
TDO
TDI
TMS
TCK
nRST <-> Reset

Aus einer alten CF-Karte oder PCMCIA-Karte bekommt man gut die 
50mil-Buchse. Zudem sind die mit einer Platine verlötet und eignen sich 
dadurch mechanisch besser zum Anlöten von Kabeln als eine nackte Buchse.

Die Dioden die ich genommen habe sind MBRS140 im SMB Gehäuse. Die hatte 
ich halt gerade da (1A, schon etwas üppig dimensioniert aber so hält 
sich der Spannungsabfall auch unter Last in Grenzen).

Einfach den 0-Ohm von D6 entfernen (nen Klumpen Lötzinn um beide 
Kontakte gleichzeitig zu lösen oder halt ne Zange) und dann die 
Schottkys einlöten.

Grüße
Robert

von Remo@ T. (remo)


Lesenswert?

@Tec: im Evalbot Schaltplan und in der Bestückungszeichnung sind die 
beiden Dioden enthalten. Da kannst du die richtige Polarität der Dioden 
nachsehen. Nur der Vollständigleit halber: Die Bestückungszeichnung 
gehört zu einer älteren Version und stimmt nicht in allen Punkten mit 
dem aktuellen Evalbot überein. Bei den Dioden ist sie aber zumindest 
richtig.

Wenn man das USB Unterspannungsproblem vermeiden möchte, dann kann man 
auch Stiftleisten auflöten und mit normalen Jumpern auswählen welche 
Versorgungsrichtung man gerade haben möchte.

Auf der Embedded World in Nürnberg hatte TI auf dem Stand ein evalbot 
mit den Dioden und eines ohne im Einsatz. Beide schienen problemlos zu 
funktionieren. Weiss jemand ob das USBuntersopannungsproblem dazu führt, 
dass das ganze Evalbot einen reset ausführt, oder ob nur die USB 
Schnittstelle betroffen ist? Denn das gleichzeitige anfahren des Motors 
und das Nutzen des USB Anschlusses ist ja ein eher unwahrscheinlicher 
Betriebszustand, dann könnte man das ganze Problem ignorieren.

so long
Remo

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

HI

Danke, ich dachte du hattest ne Platine gemacht, da du was von nem 
Pullup an
TDO sagtest, Ich dachte jetzt der wäre, auf dem Board an dem ICDI nicht 
dran
Im Plan ist ja nur n Treiber drauf. Aber gut, werde das bei gelegenheit 
mal Prüfen.

@Robert, Grundsätzlich finde ich die Idem mit dem Evalbot I-Net Radio 
super.
Bei mir wird noch die Wecker Implementation wichtig sein. hab dazu aber 
gerade keine Zeit.

MfG

Tec

von Robert B. (robertb)


Lesenswert?

@Tec:

Der TDO-Pullup ist eben auch nicht auf dem Board. Ich hatte den einfach 
am 100-mil Stecker testweise in die Steckplätze von VTref und TDO 
gesteckt.

Wecker im Sinne einer Eieruhr ist noch eine gute Idee für ein 
Küchenradio.

Dazu sollten wir aber hier Beitrag "Projekt: Internetradio/mp3-Player mit TI Evalbot / ARM-WebRadio von Watterott" 
weitermachen.

Grüße
Robert

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.