Forum: Mikrocontroller und Digitale Elektronik kleiner/kleinster ARM Cortex-M Debugger onboard


von Frank K. (fchk)


Lesenswert?

Hallo!

Ich überlege, aus Gründen der Wartungsfreundlichkeit einige ARM Cortex-M 
Baugruppen mit einem onboard JTAG-Debugger zu versehen, und suche dafür 
Erfahrungswerte.

Meine Anforderungen:
- soll mit OpenOCD funktionieren
- JTAG, optional SWD/SWO
- Cortex M4 und M7, möglichst herstellerübergreifend
- möglichst geringe BOM und Leiterplattenfläche
- Lizenz geeignet für kommerzielle Nutzung
- gerne noch Debug-UART anbei
- wenn es ein Prozessor ist, wäre es praktisch, wenn der per 
ROM-USB-Bootloader programmiert werden kann, um extra JTAG/SWD-Pins 
einzusparen.

Das erste, was mir da in den Sinn kommt, ist ein FT2232D im TQFP-48 mit 
9mm*9mm Platzbedarf. Vorteil: Ich brauche keine extra Firmware dafür. 
Nachteil: eben die Größe, wobei dann noch ein relativ großer 6MHz Quarz 
und optional ein EEPROM dazukommt.

Ich habe auch ARM-basierte Lösungen z.B. mit einem STM32F103 gesehen. 
Der ist aber auch minimal ein TQFP48, bringt mir also erstmal keinen 
Vorteil.

Was gibt es, was noch kleiner ist - so als SO16 oder TSSOP20 
idealerweise?

fchk

von Johannes S. (Gast)


Lesenswert?


von Uwe Bonnes (Gast)


Lesenswert?

STlInkV3 mit Originalsoftware ( <=> 
https://github.com/blacksphere/blackmagic/pull/818) spricht aber nur mit 
STM32 Bausteinen und braucht in vielen Faellen "connect under reset", 
weil hot-plug nicht geht. Das verhindert Problemem zu debuggen, die erst 
nach einiger Zeitauftreten wenn man nicht die ganze Zeit den Debugger 
mitlaufen laesst.

von 123 (Gast)


Lesenswert?

Gibt es den jLink von Wetter nicht auch als Chip Lösung? Ist ja auf 
vielen der Boards mit drauf.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

123 schrieb:
> Gibt es den jLink von Wetter nicht auch als Chip Lösung?

JLink kostet aber vergleichsweise viel Geld (ich erinnere mich an 
irgendwas um die EUR 100 pro Chip).

Wir haben in der Firma auch den FT2232D verbaut, der zweite Kanal kann 
dann gleich noch für eine UART herhalten, die zum Debuggen immer mal 
praktisch ist.

FT232H müsste auch gehen (hat auch MPSSE), ist aber mit 8x8 kaum eine 
Platzeinsparung.

von Markus M. (adrock)


Lesenswert?

123 schrieb:
> Gibt es den jLink von Wetter nicht auch als Chip Lösung? Ist ja auf
> vielen der Boards mit drauf.

Meinst Du Segger?

https://www.segger.com/products/debug-probes/j-link/models/j-link-ob/

von foobar (Gast)


Lesenswert?

> Was gibt es, was noch kleiner ist - so als SO16 oder TSSOP20
> idealerweise?

Das kleinste, was mir da einfällt, wäre ein SAM-D11C: SOIC-14, mit 
eingebautem USB 2.0 ohne Quarz, 48MHz M0+, 16k Flash, 4k RAM.  Müsstest 
halt die SW selbst schreiben ...

von 123 (Gast)


Lesenswert?

ups ja.
Dumme autokorrektur von Android, ... Ich meine Segger

Wobei 100 Teuronen ist schon heftig, ..
aber ich kann mir nicht vorstellen, das das jeder kunde von denen zahlt.

Die NRF boards sind um die 50 Euro und haben so was mit drauf, ...

Ist sicher alles abhängig von der verhandlung und der abgenommenen 
Menge.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

123 schrieb:
> Ist sicher alles abhängig von der verhandlung und der abgenommenen
> Menge.

Ja, schätzungsweise. War damals bei uns ein Testballon, erstmal mit 
minimaler Stückzahl ins Rennen gegangen.

Wenn du ${großer_Hersteller} heißt und da 10000 davon nimmst, sind die 
sicher eher bei 10 Dollar. Aber immer noch teuer.

von Christopher J. (christopher_j23)


Lesenswert?

Frank K. schrieb:
> Ich habe auch ARM-basierte Lösungen z.B. mit einem STM32F103 gesehen.
> Der ist aber auch minimal ein TQFP48, bringt mir also erstmal keinen
> Vorteil

Mir fallen da spontan zwei Lösungen ein:
Black Magic Probe CMSIS-DAP.

Für erstere gibt es eine OpenOCD-Fork, welche die BMP mittels HLA 
(high-level access) unterstützt, wodurch man (meines Wissens nach) bei 
den Targets nicht auf die Targets beschränkt bleibt, welche durch die 
BMP-Firmware supported werden.

CMSIS-DAP wird von OpenOCD direkt unterstützt und auch hier gilt (mWn), 
dass man durch OpenOCD flexibel wird, was das Target angeht 
(typischerweise wird CMSIS-DAP für ein Target gebaut).

Nun zur eigentlichen Problematik mit dem Platz:
BMP nutzt einen STM32F103CB (erhältlich als QFN48) und CMSIS-DAP einen 
LPC11U35, den es immerhin als "HVQFN33" gibt (7x7mm). In beiden Fällen 
hast du natürlich (dank Open-Source) die Möglichkeit das auf deine 
eigene Hardware zu portieren bzw. portieren zu lassen.
Im Falle der BMP wäre es vermutlich relativ einfach, die auf 
STM32G0/G4/L0/L4 zu portieren. Die gibt es alle jeweils als 4x4mm QFN28 
bzw. 5x5mm QFN32 und das jeweils ohne groß an der eigentlichen Firmware 
herumzufrickeln (die braucht aktuell >64kB Flash).

Wenn dir das selbst zu viel Arbeit ist, könnte ich mir auch gut 
vorstellen, dass einer der BMP-Entwickler das gerne als Auftrag 
entgegennimmt.

von Uwe Bonnes (Gast)


Lesenswert?

Ich hatte schon erwaehnt, dass STLINK-V3 (MODS) ein guter Kandidat ist 
und out-of-the-branch schon unterstuetzt ist. Er kostet ~ 10 Euro und 
ist ~ 32x16 mm gross. it Tricks bekommt man BMP auch auf den Chip, auch 
wenn er aufgrund neuer ST Firmware RDP2 gesetzt hat. Und fuer STM32 geht 
er mit den ST-Firmware einschraenkungen auch so.

von Frank K. (fchk)


Lesenswert?

Alle Modullösungen werden größer als der FT2232D, sind also 
uninteressant. Und die STLinks werden wahrscheinlich nicht mit meinen TI 
Tiva TM4C funktionieren, sind also auch schon mal gleich gestrichen.

Ich schau mir das BMP mal an.

fchk

von Johannes S. (Gast)


Lesenswert?

Wenn der STLink mit OpenOCD betrieben wird könnte es trotzdem klappen, 
aber der V3 ist ja recht neu und ich weiß nicht ob der mit OpenOCD 
spielt.
Auf dem Modul ist ja alles nötige drauf, incl. USB Buchse. Zum FTDI 
gehört ja auch noch Hühnerfutter.
Laut BMP FAQ wird der TM4C unterstützt, über die BMP hosted Variante 
lässt sich das leicht (wenn man Linux benutzt) mit STLink oder anderen 
Adaptern testen.
https://github.com/blacksphere/blackmagic/wiki/Frequently-Asked-Questions

von Uwe Bonnes (Gast)


Lesenswert?

Mit Original ST Firmware geht JTAG mit allen StLink Adaptern nur mit 
STM32 Teilen. StlinkV3 arbeitet auch bei SWD nur mit STM32 zusammen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uwe Bonnes schrieb:
> Mit Original ST Firmware geht JTAG mit allen StLink Adaptern nur mit
> STM32 Teilen.

Bist du dir da sicher?

Ich glaube mich dran zu erinnern, dass ich mit einem STlink (und OpenOCD 
natürlich) auch schon einen SAM4E debuggt habe. Weiß nicht mehr ganz 
genau, welcher STlink das war, ist schon 'ne Weile her.

Auf jeden Fall habe ich es ausgiebig umgekehrt gemacht, AtmelICE an 
STM32F4 / STM32F7.

von Uwe Bonnes (Gast)


Lesenswert?

Jörg W. schrieb:
> Ich glaube mich dran zu erinnern, dass ich mit einem STlink (und OpenOCD
> natürlich) auch schon einen SAM4E debuggt habe. Weiß nicht mehr ganz
> genau, welcher STlink das war, ist schon 'ne Weile her

Per JTAG? Meist debuggt man CortexM per SWD.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uwe Bonnes schrieb:
> Per JTAG?

Nee, SWD natürlich.

OK, das JTAG hatte ich nicht beachtet.

von Christopher J. (christopher_j23)


Lesenswert?

Jörg W. schrieb:
> Ich glaube mich dran zu erinnern, dass ich mit einem STlink (und OpenOCD
> natürlich) auch schon einen SAM4E debuggt habe. Weiß nicht mehr ganz
> genau, welcher STlink das war, ist schon 'ne Weile her.

Mit ST-Link V2 ging das auch aber den V3 haben sie wohl mittels Firmware 
kastriert.

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.