JTAG-, SWD-, EDBG-, ICSP-, ISP-Begriffe

JTAG, SWD, EDBG, ICSP, ISP.

Kann jemand einfach ihre Unterschiede erklären.

Wenn zum Beispiel der EDBG-Debugger AUCH Flash programmieren kann, warum haben Arduino-Boards sowohl ISP als auch EDBG?

http://www.armlearning.com/wp-content/uploads/2017/10/4c10034e18f9380ff03a140a4835faff.jpg

Und im Bild, warum haben sie "SWD (EDBG)" geschrieben?

Was ist der Sinn, EDBG zu schreiben und es in Klammern zu schreiben?

Warum haben ISP und ICSP die gleiche Bedeutung? Warum nicht nur eine Abkürzung?

Und schließlich, was ist die Beziehung von JTAG zu all dem?

Antworten (2)

Chiphersteller haben unterschiedliche Namen für Programmierschnittstellen, die im Grunde alle dasselbe tun:

  • ISP - Programmierschnittstelle für AVRs von Atmel (jetzt Microchip). SPI-ähnlich (MISO, MOSI, SCK, Reset). Es kann für Flash-Programmierung und Debugging verwendet werden.
  • PDI - neuere Programmierschnittstelle für Atmel AVRs (zB Xmega). Verwendet zwei Drähte (Daten und Uhr). Kann dasselbe tun wie ISP.
  • DebugWire - noch eine weitere Schnittstelle von Atmel (diese verwendet nur einen einzigen Draht)
  • ICSP - Programmierschnittstelle für Microchip PIC-Reihe von MCUs
  • SWD - Serial Wire Debug - Programmierschnittstelle für MCUs mit ARM Cortex-M-Kernen (verwendet zwei Drähte - Daten und Takt)
  • JTAG – sehr allgemeiner Begriff, SPI-ähnliche Schnittstelle, die für Boundary Scan verwendet wird, kann auch zum Programmieren/Debuggen von MCUs verwendet werden (fast jeder Anbieter hat sein eigenes Protokoll, daher ist Cortex-M JTAG nicht dasselbe wie AVR JTAG oder Blackfin JTAG)
  • Spy-Bi-Wire – noch eine weitere Zwei-Draht-Programmierschnittstelle, diese ist für die MSP430-MCUs von TI

Schließlich ist EDBG, das hier erklärt wird, höchstwahrscheinlich eine Debugger-Firmware, die auf einer MCU (mit USB) laufen und eine andere MCU debuggen kann (so dass es tatsächlich zwei MCUs auf einer Entwicklungsplatine gibt). Wie Sie im verlinkten Dokument sehen können, unterstützt es mehrere Atmel-Programmierschnittstellenstandards.

Das Schöne an JTAG ist jedoch, dass Sie Komponenten verschiedener Anbieter verketten können, sodass ein einziger Anschluss verwendet werden kann, um alle zu programmieren (da die Software normalerweise nicht kompatibel ist, jedoch nicht gleichzeitig).

Und schließlich, was ist die Beziehung von JTAG zu all dem?

Die Atmega328P-basierten Arduino-Boards unterstützen kein JTAG. Dafür müssen Sie zu den größeren Chips (z. B. '1284P, 2560) wechseln.