Forum: Mikrocontroller und Digitale Elektronik ATSAMD21G18 - uC meldet sich nicht per SWD


von Ing-Dom (Firma: OpenKNX) (sirsydom)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich hab mir ein kleines Board mit ATSAMD21G18 machen lassen. Biser hatte 
ich nur fertige Boards.
Nun wollte ich einen BL flashen, aber ich bekomme keine Verbindung per 
SWD.
Ich habe eine BMP (umgeflahster ST-Link v2 clone) - auf meine andere 
SAMD21 Boards komme ich drauf.

Bei beiden meiner gefertigten Boards (JLCPCB) bekomme ich "jtag scan 
failed" als Antowrt auf monitor jtag_scan im gdb.

Ich bin jetzt nochmal penibel die Schaltung durch und finde aber keinen 
Fehler.
Hab ich irgendwas vergessen?

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Kannst Du mit dem Oszi schauen, ob die Signale vernueftig sind? Kannst 
Du Blackmagic-hosted (fuer den PC) kompilieren und schauen ob blackmagic 
-t mehr Hinweise bringt?

von Kondensatorverkäufer (Gast)


Lesenswert?

Dom S. schrieb:
> Hab ich irgendwas vergessen?

Ja.

Je einen Abblock-Kondensator 100nF an Pin 6, 17, 36, 44.

Braucht's nicht? Na dann .......... dann eben ohne.
Jeder ist seines eigenen Glückes Schmied.

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Ich probier mal mit dem Oszi.
Wie schnell sind die Signale? Hab nur ein einfaches.

blackmagic hosted bedeutet was? Kompilieren auf Windows? Gibts da keine 
fertigen Binaries?
Muss dafür die bmp umgeflashed werden?

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Angehängte Dateien:

Lesenswert?

Kondensatorverkäufer schrieb:
> Dom S. schrieb:
>> Hab ich irgendwas vergessen?
>
> Ja.
>
> Je einen Abblock-Kondensator 100nF an Pin 6, 17, 36, 44.
>
> Braucht's nicht? Na dann .......... dann eben ohne.
> Jeder ist seines eigenen Glückes Schmied.

Ne die sind da! Siehe Rendering.
In dem Screencapture vom schematic waren die nur nicht dabei...

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Angehängte Dateien:

Lesenswert?

Uwe B. schrieb:
> Kannst Du mit dem Oszi schauen, ob die Signale vernueftig sind?

SWDIO (gelb) und SWCLK (blau)

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Aktualisier mal die Firmware. BMP hatte lange Zeit recht kurze HIGH 
Signale, vielleicht kommt der Sam damit nicht klar Aktuelle Firmware 
wird sowieso fuer Hosted gebraucht, und hat ausgelichenere  SCK Low and 
High Times.

Kompiliere hosted mit "make PROBE_HOST=hosted HOSTED_BMP_ONLY=1", dass 
kommt dann ohne libusb und libftfdi aus und sollte mit gcc auch unter 
Windows gut gehen.

von Dumpfbacke (Gast)


Lesenswert?

Dom S. schrieb:
> In dem Screencapture vom schematic waren die nur nicht dabei...

So so, immer schön das zeigen was nicht Tatsache ist.

Tolle Verarschung!

von Thorsten S. (thosch)


Lesenswert?

Das ist Bestandteil der üblichen Salamitaktik. Der TO zeigt nicht das 
vollständige Projekt, sondern läßt gleich mal das weg, von dem er meint, 
daß es ja daran eh nicht liegen könnte.

von Marco H. (damarco)


Lesenswert?

Also mein Jlink braucht VTref und GND... Dein J3 gibt das nicht her... 
Das Extern an das Board ran zu fummeln, ist keine praktische Idee.

Das dumme am ATSAMD21G18 ist das seine Fuses im Flash sitzen. Wenn da 
Müll drin steht. Um ihn zu löschen braucht man dann auch noch die Reset 
Leitung. Ohne wird es schwierig den Flash zu löschen und Defaultwerte 
wieder rein zu schreiben.

Kurz das Ding kann man unwiederbringlich kaputt programmieren.

: Bearbeitet durch User
von Ing-Dom (Firma: OpenKNX) (sirsydom)


Angehängte Dateien:

Lesenswert?

Thorsten S. schrieb:
> Das ist Bestandteil der üblichen Salamitaktik. Der TO zeigt nicht das
> vollständige Projekt, sondern läßt gleich mal das weg, von dem er meint,
> daß es ja daran eh nicht liegen könnte.

Ach Bitte was soll dieser völlige Off-Topic Bullshit?!
Ich hatte den Screenshot zufällig zur Hand, und dabei ist mir gar nicht 
aufgefallen dass die Cs da fehlen. Mea culpa. Ich geh' mich geißeln, mit 
der zwölfendigen.. 7 Tage und Nächte.
Was hätten Sie nun gerne?

von Dumpfbacke (Gast)


Lesenswert?

Dom S. schrieb:
> Ach Bitte was soll dieser völlige Off-Topic Bullshit?!

Reiss dich am Riemen! Du willst was hier im Forum, nicht wir!

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Komm, geh woanders stänkern, hier unterhalten sich Erwachsene.

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Marco H. schrieb:
> Also mein Jlink braucht VTref und GND... Dein J3 gibt das nicht her...
> Das Extern an das Board ran zu fummeln, ist keine praktische Idee.
>
> Das dumme am ATSAMD21G18 ist das seine Fuses im Flash sitzen. Wenn da
> Müll drin steht. Um ihn zu löschen braucht man dann auch noch die Reset
> Leitung. Ohne wird es schwierig den Flash zu löschen und Defaultwerte
> wieder rein zu schreiben.
>
> Kurz das Ding kann man unwiederbringlich kaputt programmieren.

Ich hab SWDIO, SWCLK, VTREF und GND verbunden.
J3 ? Sagt mir nichts.
Wie gesagt ST-Link V2 clone - der hätte auch noch ein RST.

Der ATSAMD21G18 ist brandneu, Müll sollte da eigentlich nicht 
drinstehen.

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Marco, Danke !! Der Tipp mit dem Reset hats gebracht :)
Nachdem ich die RST Pins verbunden habe, findet der swdp_scan die MCU!

Sobald nun der BL drauf ist gehts dann auch ohne RST.
Kann mir jemand erklären warum das so ist?

An den RST hab ich gar nicht gedacht, weil ich bisher mit der BMP nur 
mit SAMD21 genutzt habe die schon einen BL drauf hatten und da war der 
RST nicht nötig.

von Tom (Gast)


Lesenswert?

Der Reset gehört eh über einen Widerstand an VCC angelegt mit 
Zusatzbestchaltung. So ist das Mist.

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Der RESET Pin vom SAMD hat einen internen Pullup und der externe PullUp 
ist laut Datenblatt explizit "OPTIONAL" !

Warum ist das Mist ?

von Marco H. (damarco)


Lesenswert?

Ich glaube es hängt mit dem NVM Controller zusammen...

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Dom S. schrieb:
> ATSAMD21G18 - uC meldet sich nicht per SWD

Dom S. schrieb:
> Ich hab SWDIO, SWCLK, VTREF und GND verbunden.

Dom S. schrieb:
> bekomme ich "jtag scan failed" als Antowrt

Hast du JTAG mit SWD durcheinander gebracht?

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

CPU Reset Extension:
...The debugger is detected on a RESET release event when SWCLK is 
low....

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Stefan ⛄ F. schrieb:
> Hast du JTAG mit SWD durcheinander gebracht?

Ich dachte, SWD wäre EIN JTAG interface ?

Der "monitor jtag_scan" Befehl im gdb über eine BMP funktioiert auf 
jeden Fall auch mit SWD !

von Stefan F. (Gast)


Lesenswert?

Dom S. schrieb:
> Ich dachte, SWD wäre EIN JTAG interface ?

Nein.

Die Firmat ST verwendet den Begriff "SWJ-Interface" und meint damit 
sowohl SWD als auch JTAG. Vielleicht kommt dein Eindruck daher. Das sind 
aber zwei völlig unterschiedliche Übertragungsprotokolle auf 
unterschiedlich vielen Leitungen.

Mit SWD Sprichst du nur einen Mikrochip mit ARM Kern an.

Mit JTAG kann man hingegen ganze Platinen testen, sofern sie denn dafür 
ausgelegt sind. Bei JTAG kann man ähnlich wie bei SPI mehrere IC's 
verketten. JTAG beschränkt sich nicht nur auf Mikrocontroller.

von Johannes S. (Gast)


Lesenswert?

Dom S. schrieb:
> Der "monitor jtag_scan" Befehl im gdb über eine BMP funktioiert auf
> jeden Fall auch mit SWD !

Es wird beim Scan aber unterschieden zwischen jtag und swd, default ist 
SWD. Ein ‚mon s‘ als Befehl reicht, klappt das damit (auch ohne reset 
Leitung)?

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Johannes S. schrieb:
>  klappt das damit (auch ohne reset
> Leitung)?


Kann ich jetzt leider nicht mehr testen - ich hatte nur 2 
"jungfräuliche" SAMDs und sobald der BL drauf ist geht es ja. ich könnte 
mal ein chip erase probieren...

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

oh man. jetzt hab ich ewig rumprobiert und auf einmal brachte "monitor 
jtag_scan" immer einen Fehler...

Schlussendlich hab ich in Beitrag 1 quatsch geschrieben. Ich hab als 
Kommando immer "monitor swdp_scan" verwendet. Auch das hat nur mit 
Reset-Leitung funktioniert.
Soviel gelesen zu dem Thema dass ich wohl die Kommandos verwechselt hab.

von Marco H. (damarco)


Lesenswert?

Vorsicht beim Erase ! Du darfst auf keinem Fall den Flash komplett 
löschen. Denn dann hast du als Fuses 0xFF... Programmiert und wenn du in 
die Register schaust was das bedeutet ist weiterer Ärger 
vorprogrammiert. Ich kenne das Memorylayout nicht. Aber immer nur die 
Teilbereiche löschen im Flash wo der Code hingehört. Denn der SAM hat 
keinen Default Bootloader ROM.

: Bearbeitet durch User
von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

ohoh.
ich hab con 0x00 bis 0x040000 gelöscht...
Bisher aber noch kein merkwürdiges Verhalten. läuft noch...

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Der Begriff SWJ kommt in der ARM Doku vor. Und bis auf CortexM0(+) kann 
(fast) jeder Cortex JTAG und SWD.

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.