Atmel-LogoICE-Debugger-Programmierer
BenutzerhandbuchDie Atmel-ICE-Debugger-Programmierer Programmierer und Debugger
Atmel-ICE
BENUTZERHANDBUCH

Der Atmel-ICE-Debugger

Atmel-ICE ist ein leistungsstarkes Entwicklungstool zum Debuggen und Programmieren von ARM® Cortex®-M-basierten Atmel®SAM- und Atmel AVR-Mikrocontrollern mit ® On-Chip-Debug-Fähigkeit.
Es unterstützt:

  • Programmierung und On-Chip-Debugging aller Atmel AVR 32-Bit-Mikrocontroller auf JTAG und aWire-Schnittstellen
  • Programmierung und On-Chip-Debugging aller Geräte der Atmel AVR XMEGA®-Familie auf JTAG und PDI 2-Draht-Schnittstellen
  • Programmieren (JTAG, SPI, UPDI) und Debugging aller Atmel AVR 8-Bit-Mikrocontroller mit OCD-Unterstützung auf JTAG, debugWIRE oder UPDI-Schnittstellen
  • Programmierung und Debugging aller Atmel SAM ARM Cortex-M basierten Mikrocontroller auf SWD und JTAG Schnittstellen
  • Programmierung (TPI) aller Atmel tinyAVR® 8-bit Mikrocontroller mit Unterstützung für diese Schnittstelle

Eine vollständige Liste der von dieser Firmware-Version unterstützten Geräte und Schnittstellen finden Sie in der Liste der unterstützten Geräte im Atmel Studio-Benutzerhandbuch.

Einführung

1.1. Einführung in das Atmel-ICE
Atmel-ICE ist ein leistungsstarkes Entwicklungstool zum Debuggen und Programmieren von ARM Cortex-M-basierten Atmel SAM- und Atmel AVR-Mikrocontrollern mit On-Chip-Debug-Fähigkeit.
Es unterstützt:

  • Programmierung und On-Chip-Debugging aller Atmel AVR UC3 Mikrocontroller auf JTAG und aWire-Schnittstellen
  • Programmierung und On-Chip-Debugging aller Geräte der AVR XMEGA-Familie auf JTAG und PDI 2wire Schnittstellen
  • Programmieren (JTAG und SPI) und Debugging aller AVR 8-Bit-Mikrocontroller mit OCD-Unterstützung sowohl auf JTAG oder debugWIRE-Schnittstellen
  • Programmierung und Debugging aller Atmel SAM ARM Cortex-M basierten Mikrocontroller auf SWD und JTAG Schnittstellen
  • Programmierung (TPI) aller Atmel tinyAVR 8-bit Mikrocontroller mit Unterstützung für diese Schnittstelle

1.2. Atmel-ICE-Funktionen

  • Voll kompatibel mit Atmel Studio
  • Unterstützt die Programmierung und das Debugging aller Atmel AVR UC3 32-Bit-Mikrocontroller
  • Unterstützt das Programmieren und Debuggen aller 8-Bit-AVR-XMEGA-Geräte
  • Unterstützt Programmierung und Debugging aller 8-Bit Atmel megaAVR® und tinyAVR Geräte mit OCD
  • Unterstützt das Programmieren und Debuggen aller SAM ARM Cortex-M-basierten Mikrocontroller
  • Soll-BetriebsvoltagDer Bereich von 1.62V bis 5.5V
  • Zieht weniger als 3 mA von der Ziel-VTref, wenn die debugWIRE-Schnittstelle verwendet wird, und weniger als 1 mA für alle anderen Schnittstellen
  • Unterstützt JTAG Taktfrequenzen von 32 kHz bis 7.5 MHz
  • Unterstützt PDI-Taktfrequenzen von 32 kHz bis 7.5 MHz
  • Unterstützt debugWIRE-Baudraten von 4 kbit/s bis 0.5 Mbit/s
  • Unterstützt aWire-Baudraten von 7.5 kbit/s bis 7 Mbit/s
  • Unterstützt SPI-Taktfrequenzen von 8 kHz bis 5 MHz
  • Unterstützt UPDI-Baudraten von bis zu 750 kbit/s
  • Unterstützt SWD-Taktfrequenzen von 32 kHz bis 10 MHz
  • USB 2.0 Hochgeschwindigkeits-Host-Schnittstelle
  • ITM Serial Trace Capture mit bis zu 3 MB/s
  • Unterstützt DGI SPI- und USART-Schnittstellen, wenn nicht debuggt oder programmiert wird
  • Unterstützt 10-Pin-50-mil-JTAG Stecker mit AVR- und Cortex-Pinbelegung. Das Standardsondenkabel unterstützt AVR 6-polige ISP/PDI/TPI 100-mil-Header sowie 10-polige 50-mil. Ein Adapter zur Unterstützung von 6-poligen 50-mil-, 10-poligen 100-mil- und 20-poligen 100-mil-Stiftleisten ist verfügbar. Es sind mehrere Kit-Optionen mit unterschiedlichen Kabeln und Adaptern erhältlich.

1.3. Systemanforderungen
Die Atmel-ICE-Einheit erfordert, dass eine Front-End-Debugging-Umgebung Atmel Studio Version 6.2 oder höher auf Ihrem Computer installiert ist.
Der Atmel-ICE sollte mit dem mitgelieferten USB-Kabel oder einem zertifizierten Micro-USB-Kabel mit dem Host-Computer verbunden werden.

Erste Schritte mit dem Atmel-ICE

2.1. Inhalt des vollständigen Kits
Das vollständige Atmel-ICE-Kit enthält diese Artikel:

  • Atmel-ICE-Einheit
  • USB-Kabel (1.8 m, Hochgeschwindigkeit, Micro-B)
  • Adapterplatine mit 50-mil-AVR-, 100-mil-AVR/SAM- und 100-mil-20-Pin-SAM-Adaptern
  • IDC-Flachkabel mit 10-poligem 50-mil-Stecker und 6-poligem 100-mil-Stecker
  • 50-mil 10-poliges Mini-Squid-Kabel mit 10 x 100-mil-Buchsen

Abbildung 2-1. Inhalt des vollständigen Atmel-ICE-KitsDie Atmel-ICE-Debugger-Programmierer – Abbildung 12.2. Inhalt des Basiskits
Das Atmel-ICE-Basiskit enthält diese Artikel:

  • Atmel-ICE-Einheit
  • USB-Kabel (1.8 m, Hochgeschwindigkeit, Micro-B)
  • IDC-Flachkabel mit 10-poligem 50-mil-Stecker und 6-poligem 100-mil-Stecker

Abbildung 2-2. Inhalt des Atmel-ICE Basic KitsDie Atmel-ICE-Debugger-Programmierer – Abbildung 22.3. Inhalt des PCBA-Kits
Das Atmel-ICE PCBA-Kit enthält folgende Elemente:

  • Atmel-ICE-Einheit ohne Kunststoffkapselung

Abbildung 2-3. Inhalt des Atmel-ICE PCBA-KitsDie Atmel-ICE-Debugger-Programmierer – Abbildung 32.4. Ersatzteil-Kits
Folgende Ersatzteilkits sind erhältlich:

  • Adapter-Kit
  • Kabelsatz

Abbildung 2-4. Inhalt des Atmel-ICE-AdapterkitsDie Atmel-ICE-Debugger-Programmierer – Abbildung 42.5. Kit vorbeiview
Die Atmel-ICE-Kit-Optionen sind hier schematisch dargestellt:
Abbildung 2-6. Atmel-ICE-Kit vorbeiviewDie Atmel-ICE-Debugger-Programmierer – Abbildung 52.6. Zusammenbau des Atmel-ICE
Die Atmel-ICE-Einheit wird ohne angeschlossene Kabel geliefert. Zwei Kabeloptionen sind im vollständigen Kit enthalten:

  • 50 mil 10-Pin-IDC-Flachkabel mit 6-Pin-ISP- und 10-Pin-Anschlüssen
  • 50-mil-10-poliges Mini-Squid-Kabel mit 10 x 100-mil-Buchsen

Abbildung 2-7. Atmel-ICE-KabelDie Atmel-ICE-Debugger-Programmierer – Abbildung 6Für die meisten Zwecke kann das 50-mil-10-Pin-IDC-Flachkabel verwendet werden, das entweder nativ an seine 10-Pin- oder 6-Pin-Anschlüsse oder über die Adapterplatine angeschlossen wird. Drei Adapter werden auf einer kleinen PCBA bereitgestellt. Folgende Adapter sind im Lieferumfang enthalten:

  • 100-mil-10-Pin-JTAG/SWD-Adapter
  • 100-mil-20-Pin-SAM-JTAG/SWD-Adapter
  • 50-mil-6-Pin-SPI/debugWIRE/PDI/aWire-Adapter

Abbildung 2-8. Atmel-ICE-AdapterDie Atmel-ICE-Debugger-Programmierer – Abbildung 7Notiz: 
Ein 50-mil-JTAG Adapter wurde nicht mitgeliefert – das liegt daran, dass das 50-mil 10-polige IDC-Kabel verwendet werden kann, um direkt an ein 50-mil JTAG Header. Die Teilenummer der Komponente, die für den 50-mil-10-Pin-Anschluss verwendet wird, finden Sie unter Atmel-ICE Target Connectors Part Numbers.
Der 6-polige ISP/PDI-Header ist Teil des 10-poligen IDC-Kabels. Diese Terminierung kann abgeschnitten werden, wenn sie nicht benötigt wird.
Um Ihren Atmel-ICE in seiner Standardkonfiguration zusammenzubauen, schließen Sie das 10-polige 50-mil-IDC-Kabel wie unten gezeigt an das Gerät an. Achten Sie darauf, das Kabel so auszurichten, dass der rote Draht (Stift 1) am Kabel mit der dreieckigen Markierung am blauen Gürtel des Gehäuses ausgerichtet ist. Das Kabel sollte vom Gerät nach oben angeschlossen werden. Stellen Sie sicher, dass Sie eine Verbindung mit dem Port herstellen, der der Pinbelegung Ihres Ziels entspricht – AVR oder SAM.
Abbildung 2-9. Atmel-ICE-KabelverbindungDie Atmel-ICE-Debugger-Programmierer – Abbildung 8Abbildung 2-10. Atmel-ICE AVR-Sondenverbindung
Die Atmel-ICE-Debugger-Programmierer – Abbildung 9Abbildung 2-11. Atmel-ICE-SAM-SondenverbindungDie Atmel-ICE-Debugger-Programmierer – Abbildung 102.7. Öffnen des Atmel-ICE
Notiz: 
Für den normalen Betrieb darf die Atmel-ICE-Einheit nicht geöffnet werden. Das Öffnen des Gerätes erfolgt auf eigene Gefahr.
Antistatische Vorkehrungen sollten getroffen werden.
Das Atmel-ICE-Gehäuse besteht aus drei separaten Kunststoffkomponenten – obere Abdeckung, untere Abdeckung und blauer Gürtel – die während der Montage zusammengesteckt werden. Um das Gerät zu öffnen, stecken Sie einfach einen großen flachen Schraubendreher in die Öffnungen im blauen Riemen, üben Sie etwas Druck nach innen aus und drehen Sie ihn vorsichtig. Wiederholen Sie den Vorgang an den anderen Schnapperlöchern, und die obere Abdeckung springt ab.
Abbildung 2-12. Öffnen des Atmel-ICE (1)
Die Atmel-ICE-Debugger-Programmierer – Abbildung 11Abbildung 2-13. Öffnen des Atmel-ICE (2)
Die Atmel-ICE-Debugger-Programmierer – Abbildung 12Abbildung 2-14. Öffnen des Atmel-ICE(3)Die Atmel-ICE-Debugger-Programmierer – Abbildung 13Um das Gerät wieder zu schließen, richten Sie einfach die obere und untere Abdeckung richtig aus und drücken Sie sie fest zusammen.
2.8. Stromversorgung des Atmel-ICE
Der Atmel-ICE wird über den USB-Bus voltage. Es benötigt weniger als 100 mA für den Betrieb und kann daher über einen USB-Hub mit Strom versorgt werden. Die Power-LED leuchtet auf, wenn das Gerät angeschlossen ist. Wenn es nicht in einer aktiven Programmier- oder Debugging-Sitzung angeschlossen ist, wechselt das Gerät in den Energiesparmodus, um die Batterie Ihres Computers zu schonen. Der Atmel-ICE kann nicht ausgeschaltet werden – er sollte ausgesteckt werden, wenn er nicht verwendet wird.
2.9. Verbinden mit dem Host-Computer
Der Atmel-ICE kommuniziert hauptsächlich über eine Standard-HID-Schnittstelle und benötigt keinen speziellen Treiber auf dem Host-Computer. Um die erweiterte Data Gateway-Funktionalität des Atmel-ICE zu verwenden, müssen Sie den USB-Treiber auf dem Host-Computer installieren. Dies geschieht automatisch bei der Installation der von Atmel kostenlos zur Verfügung gestellten Frontend-Software. Sehen www.atmel.com um weitere Informationen zu erhalten oder um die neueste Frontend-Software herunterzuladen.
Der Atmel-ICE muss mit dem mitgelieferten USB-Kabel oder einem geeigneten USB-zertifizierten Mikrokabel an einen verfügbaren USB-Port des Host-Computers angeschlossen werden. Der Atmel-ICE enthält einen USB 2.0-kompatiblen Controller und kann sowohl im Full-Speed- als auch im High-Speed-Modus betrieben werden. Um optimale Ergebnisse zu erzielen, schließen Sie den Atmel-ICE mit dem mitgelieferten Kabel direkt an einen USB 2.0-kompatiblen Hochgeschwindigkeits-Hub auf dem Host-Computer an.
2.10. USB-Treiberinstallation
2.10.1. Windows
Bei der Installation des Atmel-ICE auf einem Computer mit Microsoft® Windows® wird der USB-Treiber geladen, wenn der Atmel-ICE zum ersten Mal angeschlossen wird.
Notiz: 
Achten Sie darauf, die Front-End-Softwarepakete zu installieren, bevor Sie das Gerät zum ersten Mal anschließen.
Nach erfolgreicher Installation erscheint der Atmel-ICE im Gerätemanager als „Human Interface Device“.

Anschließen des Atmel-ICE

3.1. Verbindung zu AVR- und SAM-Zielgeräten
Der Atmel-ICE ist mit zwei 50-mil-10-Pin-JTAG Anschlüsse. Beide Anschlüsse sind direkt elektrisch verbunden, entsprechen jedoch zwei unterschiedlichen Pinbelegungen; der AVR JTAG -Header und den ARM-Cortex-Debug-Header. Der Anschluss sollte basierend auf der Pinbelegung der Zielplatine ausgewählt werden und nicht auf dem Ziel-MCU-Typ – zample ein SAM-Gerät, das in einem AVR STK® 600-Stack montiert ist, sollte den AVR-Header verwenden.
Verschiedene Kabel und Adapter sind in den verschiedenen Atmel-ICE-Kits verfügbar. Ein vorbeiview der Anschlussmöglichkeiten angezeigt.
Abbildung 3-1. Atmel-ICE-VerbindungsoptionenDie Atmel-ICE-Debugger-Programmierer – Abbildung 14Der rote Draht markiert Pin 1 des 10-poligen 50-mil-Steckers. Pin 1 des 6-poligen 100-mil-Steckers befindet sich rechts von der Codierung, wenn der Stecker vom Kabel aus gesehen wird. Pin 1 jedes Steckers am Adapter ist mit einem weißen Punkt markiert. Die folgende Abbildung zeigt die Pinbelegung des Debug-Kabels. Der mit A gekennzeichnete Stecker wird in den Debugger gesteckt, während die B-Seite in die Zielplatine gesteckt wird.
Abbildung 3-2. Pinbelegung des Debug-Kabels
Die Atmel-ICE-Debugger-Programmierer – Abbildung 153.2. Verbindung zu einem JTAG Ziel
Der Atmel-ICE ist mit zwei 50-mil-10-Pin-JTAG Anschlüsse. Beide Anschlüsse sind direkt elektrisch verbunden, entsprechen jedoch zwei unterschiedlichen Pinbelegungen; der AVR JTAG -Header und den ARM-Cortex-Debug-Header. Der Anschluss sollte basierend auf der Pinbelegung der Zielplatine ausgewählt werden und nicht auf dem Ziel-MCU-Typ – zampie ein SAM-Gerät, das in einem AVR STK600-Stack montiert ist, sollte den AVR-Header verwenden.
Die empfohlene Pinbelegung für den 10-poligen AVR JTAG Anschluss ist in Abbildung 4-6 dargestellt. Die empfohlene Pinbelegung für den 10-poligen ARM-Cortex-Debug-Anschluss ist in Abbildung 4-2 dargestellt.
Direkter Anschluss an einen standardmäßigen 10-poligen 50-mil-Header
Verwenden Sie das 50-mil-10-Pin-Flachkabel (in einigen Kits enthalten), um eine direkte Verbindung zu einer Platine herzustellen, die diesen Header-Typ unterstützt. Verwenden Sie den AVR-Anschlussport auf dem Atmel-ICE für Header mit der AVR-Pinbelegung und den SAM-Anschlussport für Header, die der ARM-Cortex-Debug-Header-Pinbelegung entsprechen.
Die Pinbelegungen für beide 10-Pin-Anschlussports sind unten dargestellt.
Anschluss an einen standardmäßigen 10-poligen 100-mil-Header 
Verwenden Sie einen standardmäßigen 50-mil-auf-100-mil-Adapter, um eine Verbindung zu 100-mil-Stiftleisten herzustellen. Dazu kann eine Adapterplatine (in manchen Kits enthalten) oder alternativ die JTAGICE3-Adapter kann für AVR-Ziele verwendet werden.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig: 
Der JTAGDer ICE3 100-mil-Adapter kann nicht mit dem SAM-Anschlussport verwendet werden, da die Pins 2 und 10 (AVR GND) am Adapter verbunden sind.
Anschluss an einen benutzerdefinierten 100-mil-Header
Wenn Ihre Zielplatine keinen konformen 10-poligen JTAG Header in 50- oder 100-mil, können Sie mit dem 10-poligen „Mini-Squid“-Kabel (in einigen Kits enthalten) eine benutzerdefinierte Pinbelegung zuordnen, das Zugriff auf zehn einzelne 100-mil-Buchsen bietet.
Anschluss an einen 20-poligen 100-mil-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu Zielen mit einem 20-poligen 100-mil-Header herzustellen.
Tabelle 3-1. Atmel-ICE JTAG Pin Beschreibung

Name AVR Anschlussstift SAM Anschlussstift Beschreibung
TCK 1 4 Test Clock (Taktsignal vom Atmel-ICE in das Zielgerät).
TMS 5 2 Test Mode Select (Steuersignal vom Atmel-ICE in das Zielgerät).
TDI 9 8 Test Data In (Daten, die vom Atmel-ICE in das Zielgerät übertragen werden).
TDO 3 6 Test Data Out (Daten, die vom Zielgerät in das Atmel-ICE übertragen werden).
nTRST 8 Test-Reset (optional, nur bei einigen AVR-Geräten). Zum Zurücksetzen des JTAG TAP-Controller.
nSRST 6 10 Zurücksetzen (optional). Wird zum Zurücksetzen des Zielgeräts verwendet. Das Anschließen dieses Pins wird empfohlen, da es dem Atmel-ICE ermöglicht, das Zielgerät in einem Reset-Zustand zu halten, was für das Debuggen in bestimmten Szenarien unerlässlich sein kann.
VTG 4 1 ZielvoltagDie Referenz. Die Atmel-ICEsamples das Zielvoltage auf diesen Pin, um die Pegelwandler korrekt mit Strom zu versorgen. Der Atmel-ICE zieht weniger als 3 mA von diesem Pin im debugWIRE-Modus und weniger als 1 mA in anderen Modi.
Masse 2, 10 3, 5, 9 Boden. Alle müssen verbunden werden, um sicherzustellen, dass der Atmel-ICE und das Zielgerät dieselbe Bezugsmasse haben.

3.3. Verbinden mit einem aWire-Ziel
Die aWire-Schnittstelle benötigt neben VCC und GND nur eine Datenleitung. Auf dem Ziel ist diese Zeile die nRESET-Zeile, obwohl der Debugger die JTAG TDO-Leitung als Datenleitung.
Die empfohlene Pinbelegung für den 6-poligen aWire-Anschluss ist in Abbildung 4-8 dargestellt.
Anschluss an einen 6-poligen 100-mil-aWire-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-aWire-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-aWire-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-aWire-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind drei Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 3-2. Atmel-ICE aWire-Pin-Mapping

Atmel-ICE AVR-Port-Pins

Zielstifte Mini-Tintenfisch-Stift

aKabelbelegung

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) 6
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

3.4. Verbinden mit einem PDI-Ziel
Die empfohlene Pinbelegung für den 6-poligen PDI-Anschluss ist in Abbildung 4-11 dargestellt.
Anschluss an einen 6-poligen 100-mil-PDI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-PDI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-PDI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-PDI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind vier Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig: 
Die erforderliche Pinbelegung unterscheidet sich von der JTAGICE mkII JTAG Sonde, wobei PDI_DATA mit Pin 9 verbunden ist. Der Atmel-ICE ist mit der Pinbelegung kompatibel, die vom Atmel-ICE verwendet wird, JTAGICE3-, AVR ONE!- und AVR Dragon™-Produkte.
Tabelle 3-3. Atmel-ICE PDI-Pin-Mapping

Atmel-ICE AVR-Port-Pins Zielstifte Mini-Tintenfisch-Stift

aKabelbelegung

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) 6
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

3.4 Verbinden mit einem PDI-Ziel
Die empfohlene Pinbelegung für den 6-poligen PDI-Anschluss ist in Abbildung 4-11 dargestellt.
Anschluss an einen 6-poligen 100-mil-PDI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-PDI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-PDI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-PDI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind vier Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Die erforderliche Pinbelegung unterscheidet sich von der JTAGICE mkII JTAG Sonde, wobei PDI_DATA mit Pin 9 verbunden ist. Der Atmel-ICE ist mit der Pinbelegung kompatibel, die vom Atmel-ICE verwendet wird, JTAGICE3, AVR ONE! und AVR Dragon Produkte.
Tabelle 3-3. Atmel-ICE PDI-Pin-Mapping

Atmel-ICE AVR-Anschlussstift Zielstifte Mini-Tintenfisch-Stift Atmel STK600 PDI Pinbelegung
Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) PDI_DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) PDI_CLK 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

3.5 Verbinden mit einem UPDI-Ziel
Die empfohlene Pinbelegung für den 6-poligen UPDI-Anschluss ist in Abbildung 4-12 dargestellt.
Anschluss an einen 6-poligen 100-mil-UPDI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-UPDI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-UPDI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-UPDI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind drei Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 3-4. Atmel-ICE UPDI-Pin-Mapping

Atmel-ICE AVR-Anschlussstift Zielstifte Mini-Tintenfisch-Stift

Atmel STK600 UPDI Pinbelegung

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) UPDI_DATA 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) [/RESET Sinn] 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

3.6 Verbinden mit einem debugWIRE-Target
Die empfohlene Pinbelegung für den 6-poligen debugWIRE (SPI)-Anschluss ist in Tabelle 3-6 dargestellt.
Anschluss an einen 6-poligen 100-mil-SPI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-SPI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-SPI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-SPI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind drei Verbindungen erforderlich, wie in Tabelle 3-5 beschrieben.
Obwohl die debugWIRE-Schnittstelle nur eine Signalleitung (RESET) benötigt, kann VCC und GND korrekt funktionieren, wird empfohlen, Zugriff auf den vollständigen SPI-Anschluss zu haben, damit die debugWIRE-Schnittstelle mithilfe der SPI-Programmierung aktiviert und deaktiviert werden kann.
Wenn die DWEN-Sicherung aktiviert ist, wird die SPI-Schnittstelle intern außer Kraft gesetzt, damit das OCD-Modul die Kontrolle über den RESET-Pin hat. Der debugWIRE OCD kann sich vorübergehend selbst deaktivieren (über die Schaltfläche auf der Registerkarte Debugging im Eigenschaftendialog in Atmel Studio), wodurch die Kontrolle über die RESET-Leitung freigegeben wird. Die SPI-Schnittstelle ist dann wieder verfügbar (nur wenn die SPIEN-Sicherung programmiert ist), wodurch die DWEN-Sicherung unter Verwendung der SPI-Schnittstelle deprogrammiert werden kann. Wenn die Stromversorgung umgeschaltet wird, bevor die DWEN-Sicherung unprogrammiert ist, übernimmt das debugWIRE-Modul wieder die Kontrolle über den RESET-Pin.
Notiz:
Es wird dringend empfohlen, Atmel Studio das Setzen und Löschen der DWEN-Sicherung einfach überlassen zu lassen.
Es ist nicht möglich, die debugWIRE-Schnittstelle zu verwenden, wenn die Lockbits auf dem Ziel-AVR-Gerät programmiert sind. Stellen Sie immer sicher, dass die Lockbits gelöscht sind, bevor Sie die DWEN-Sicherung programmieren, und setzen Sie niemals die Lockbits, während die DWEN-Sicherung programmiert wird. Wenn sowohl die debugWIRE-Freigabesicherung (DWEN) als auch die Lockbits gesetzt sind, kann man High Vol verwendentage Programmieren, um einen Chip zu löschen und damit die Lockbits zu löschen.
Wenn die Lockbits gelöscht werden, wird die debugWIRE-Schnittstelle wieder aktiviert. Die SPI-Schnittstelle ist nur in der Lage, Sicherungen zu lesen, Signaturen zu lesen und einen Chip-Löschvorgang durchzuführen, wenn die DWEN-Sicherung nicht programmiert ist.
Tabelle 3-5. Atmel-ICE debugWIRE Pin-Zuordnung

Atmel-ICE AVR-Anschlussstift Zielstifte

Mini-Tintenfisch-Stift

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2
Stift 3 (TDO) 3
Pin 4 (VTG) VTG 4
Stift 5 (TMS) 5
Stift 6 (nSRST) ZURÜCKSETZEN 6
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

3.7 Verbinden mit einem SPI-Ziel
Die empfohlene Pinbelegung für den 6-poligen SPI-Anschluss ist in Abbildung 4-10 dargestellt.
Anschluss an einen 6-poligen 100-mil-SPI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-SPI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-SPI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-SPI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind sechs Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Die SPI-Schnittstelle wird effektiv deaktiviert, wenn die debugWIRE-Freigabesicherung (DWEN) programmiert ist, selbst wenn die SPIEN-Sicherung ebenfalls programmiert ist. Um die SPI-Schnittstelle wieder zu aktivieren, muss der Befehl „disable debugWIRE“ während einer debugWIRE-Debugging-Sitzung ausgegeben werden. Das Deaktivieren von debugWIRE auf diese Weise erfordert, dass die SPIEN-Sicherung bereits programmiert ist. Wenn Atmel Studio debugWIRE nicht deaktivieren kann, liegt dies wahrscheinlich daran, dass die SPIEN-Sicherung NICHT programmiert ist. Wenn dies der Fall ist, muss ein hochvolumiger verwendet werdentagDie Programmierschnittstelle zum Programmieren der SPIEN-Sicherung.
Die Atmel-ICE-Debugger-Programmierer - Symbol Info:
Die SPI-Schnittstelle wird oft als „ISP“ bezeichnet, da sie die erste In-System-Programming-Schnittstelle für Atmel AVR-Produkte war. Für die In-System-Programmierung stehen nun weitere Schnittstellen zur Verfügung.
Tabelle 3-6. Atmel-ICE-SPI-Pin-Mapping

Atmel-ICE AVR-Port-Pins Zielstifte Mini-Tintenfisch-Stift

SPI-Pinbelegung

Stift 1 (TCK) SCK 1 3
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) MISO 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) /ZURÜCKSETZEN 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) MOSI 9 4
Pin 10 (GND) 0

3.8 Verbinden mit einem TPI-Ziel
Die empfohlene Pinbelegung für den 6-poligen TPI-Anschluss ist in Abbildung 4-13 dargestellt.
Anschluss an einen 6-poligen 100-mil-TPI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-TPI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-TPI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-TPI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind sechs Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 3-7. Atmel-ICE TPI-Pin-Mapping

Atmel-ICE AVR-Port-Pins Zielstifte Mini-Tintenfisch-Stift

TPI-Pinbelegung

Stift 1 (TCK) UHR 1 3
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) /ZURÜCKSETZEN 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

3.9 Verbinden mit einem SWD-Ziel
Die ARM-SWD-Schnittstelle ist eine Teilmenge des JTAG Schnittstelle unter Verwendung der TCK- und TMS-Pins, was bedeutet, dass beim Anschluss an ein SWD-Gerät der 10-polige JTAG Stecker kann technisch verwendet werden. Der ARMJTAG und AVRJTAG Steckverbinder sind jedoch nicht pinkompatibel, dies hängt also vom Layout der verwendeten Zielplatine ab. Bei Verwendung eines STK600 oder eines Boards mit AVR JTAG Pinbelegung muss der AVR-Anschlussport am Atmel-ICE verwendet werden. Beim Anschluss an ein Board, das den ARM JTAG Pinbelegung muss der SAM-Anschlussport am Atmel-ICE verwendet werden.
Die empfohlene Pinbelegung für den 10-poligen Cortex-Debug-Anschluss ist in Abbildung 4-4 ​​dargestellt.
Anschluss an einen 10-poligen 50-mil-Cortex-Header
Verwenden Sie das Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-Cortex-Header herzustellen.
Anschluss an einen 10-poligen 100-mil-Cortex-Layout-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem 100-mil-Cortex-Pinout-Header herzustellen.
Anschluss an einen 20-poligen 100-mil-SAM-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem 20-poligen 100-mil-SAM-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR- oder SAM-Anschluss und der Zielplatine herzustellen. Es sind sechs Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 3-8. Atmel-ICE SWD-Pin-Mapping

Name AVR  Anschlussstift SAM Anschlussstift Beschreibung
SWDC LK 1 4 Debug-Uhr für serielle Leitungen.
SWDIO 5 2 Debug-Dateneingabe/-ausgabe über serielle Leitung.
SWO 3 6 Serial Wire Output (optional – nicht auf allen Geräten implementiert).
nSRST 6 10 Zurücksetzen.
VTG 4 1 ZielvoltagDie Referenz.
Masse 2, 10 3, 5, 9 Boden.

3.10 Verbinden mit der Daten-Gateway-Schnittstelle
Das Atmel-ICE unterstützt eine begrenzte Data Gateway Interface (DGI), wenn Debugging und Programmierung nicht verwendet werden. Die Funktionalität ist identisch mit der von Atmel Xplained Pro-Kits, die vom Atmel EDBG-Gerät angetrieben werden.
Die Data Gateway Interface ist eine Schnittstelle zum Streamen von Daten vom Zielgerät auf einen Computer. Dies ist als Hilfe beim Debuggen von Anwendungen sowie zum Demonstrieren von Funktionen in der Anwendung gedacht, die auf dem Zielgerät ausgeführt wird.
DGI besteht aus mehreren Kanälen für das Datenstreaming. Der Atmel-ICE unterstützt die folgenden Modi:

  • USART
  • SPI

Tabelle 3-9. Atmel-ICE DGI USART Pinbelegung

AVR-Port

SAM-Port DGI USART-Stift

Beschreibung

3 6 TX Pin von Atmel-ICE an das Zielgerät übertragen
4 1 VTG Zielvoltage (Referenzbdtage)
8 7 RX Pin vom Zielgerät an Atmel-ICE erhalten
9 8 CLK USART-Uhr
2, 10 3, 5, 9 Masse Boden

Tabelle 3-10. Atmel-ICE DGI SPI Pinbelegung

AVR-Port

SAM-Port DGI-SPI-Pin

Beschreibung

1 4 SCK SPI-Uhr
3 6 MISO Meister rein, Sklave raus
4 1 VTG Zielvoltage (Referenzbdtage)
5 2 nCS Chipauswahl aktiv niedrig
9 8 MOSI Master raus, Sklave rein
2, 10 3, 5, 9 Masse Boden

Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:  SPI- und USART-Schnittstellen können nicht gleichzeitig verwendet werden.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:  DGI und Programmierung oder Debugging können nicht gleichzeitig verwendet werden.

On-Chip-Debugging

4.1 Einleitung
On-Chip-Debugging
Ein On-Chip-Debug-Modul ist ein System, das es einem Entwickler ermöglicht, die Ausführung auf einem Gerät von einer externen Entwicklungsplattform aus zu überwachen und zu steuern, normalerweise über ein Gerät, das als Debugger oder Debug-Adapter bekannt ist.
Mit einem OCD-System kann die Anwendung ausgeführt werden, während die genauen elektrischen und zeitlichen Eigenschaften im Zielsystem beibehalten werden, während die Ausführung bedingt oder manuell gestoppt und der Programmfluss und der Speicher überprüft werden können.
Ausführungsmodus
Im Run-Modus ist die Ausführung von Code völlig unabhängig vom Atmel-ICE. Das Atmel-ICE überwacht das Zielgerät kontinuierlich, um festzustellen, ob eine Unterbrechungsbedingung aufgetreten ist. Wenn dies geschieht, fragt das OCD-System das Gerät über seine Debug-Schnittstelle ab und ermöglicht dem Benutzer dies view der interne Zustand des Geräts.
Gestoppter Modus
Wenn ein Haltepunkt erreicht wird, wird die Programmausführung angehalten, aber einige E/A-Vorgänge werden möglicherweise weiter ausgeführt, als ob kein Haltepunkt aufgetreten wäre. Zum BspampNehmen Sie beispielsweise an, dass eine USART-Übertragung gerade initiiert wurde, wenn ein Haltepunkt erreicht wird. In diesem Fall läuft der USART mit voller Geschwindigkeit weiter und schließt die Übertragung ab, obwohl sich der Kern im gestoppten Modus befindet.
Hardware-Haltepunkte
Das Ziel-OCD-Modul enthält eine Anzahl von Programmzählerkomparatoren, die in der Hardware implementiert sind. Wenn der Programmzähler mit dem in einem der Komparatorregister gespeicherten Wert übereinstimmt, tritt der OCD in den gestoppten Modus ein. Da Hardwarehaltepunkte dedizierte Hardware auf dem OCD-Modul erfordern, hängt die Anzahl verfügbarer Haltepunkte von der Größe des auf dem Ziel implementierten OCD-Moduls ab. Normalerweise wird ein solcher Hardware-Komparator vom Debugger für den internen Gebrauch "reserviert".
Software-Haltepunkte
Ein Software-Haltepunkt ist eine BREAK-Anweisung, die im Programmspeicher des Zielgeräts abgelegt wird. Wenn diese Anweisung geladen wird, wird die Programmausführung unterbrochen und die OCD wechselt in den gestoppten Modus. Um die Ausführung fortzusetzen, muss ein „Start“-Befehl von der OCD gegeben werden. Nicht alle Atmel-Geräte verfügen über OCD-Module, die die BREAK-Anweisung unterstützen.
4.2 SAM-Geräte mit JTAG/SWD
Alle SAM-Geräte verfügen über die SWD-Schnittstelle zum Programmieren und Debuggen. Darüber hinaus verfügen einige SAM-Geräte über einen JTAG Schnittstelle mit identischer Funktionalität. Überprüfen Sie das Gerätedatenblatt auf unterstützte Schnittstellen dieses Geräts.
4.2.1.ARM CoreSight-Komponenten
Atmel ARM Cortex-M-basierte Mikrocontroller implementieren CoreSight-konforme OCD-Komponenten. Die Funktionen dieser Komponenten können von Gerät zu Gerät variieren. Weitere Informationen finden Sie im Datenblatt des Geräts sowie in der von ARM bereitgestellten CoreSight-Dokumentation.
4.2.1. JTAG Physische Schnittstelle
Der JTAG Schnittstelle besteht aus einem 4-Draht Test Access Port (TAP) Controller, der mit dem IEEE kompatibel ist® 1149.1-Standard. Der IEEE-Standard wurde entwickelt, um eine branchenübliche Methode zum effizienten Testen der Konnektivität von Leiterplatten (Boundary Scan) bereitzustellen. Atmel AVR- und SAM-Geräte haben diese Funktionalität erweitert, um eine vollständige Unterstützung für Programmierung und On-Chip-Debugging zu bieten.
Abbildung 4-1. JTAG Grundlagen der BenutzeroberflächeDie Atmel-ICE-Debugger-Programmierer – Abbildung 25

4.2.2.1 SAMJTAG Pinbelegung (Cortex-M-Debug-Anschluss)
Beim Entwerfen einer Anwendungsplatine, die ein Atmel SAM mit dem JTAG Schnittstelle wird empfohlen, die Pinbelegung wie in der Abbildung unten gezeigt zu verwenden. Sowohl 100-mil- als auch 50-mil-Varianten dieser Pinbelegung werden unterstützt, abhängig von der Verkabelung und den Adaptern, die im jeweiligen Kit enthalten sind.
Abbildung 4-2. Sam JTAG Header-Pinbelegung
Die Atmel-ICE-Debugger-Programmierer – Abbildung 20

Tabelle 4-1. Sam JTAG Pin Beschreibung

Name Stift

Beschreibung

TCK 4 Test Clock (Taktsignal vom Atmel-ICE in das Zielgerät).
TMS 2 Test Mode Select (Steuersignal vom Atmel-ICE in das Zielgerät).
TDI 8 Test Data In (Daten, die vom Atmel-ICE in das Zielgerät übertragen werden).
TDO 6 Test Data Out (Daten, die vom Zielgerät in das Atmel-ICE übertragen werden).
nRESET 10 Zurücksetzen (optional). Wird zum Zurücksetzen des Zielgeräts verwendet. Das Anschließen dieses Pins wird empfohlen, da es dem Atmel-ICE ermöglicht, das Zielgerät in einem Reset-Zustand zu halten, was für das Debuggen in bestimmten Szenarien unerlässlich sein kann.
VTG 1 ZielvoltagDie Referenz. Die Atmel-ICEsamples das Zielvoltage auf diesen Pin, um die Pegelwandler korrekt mit Strom zu versorgen. Der Atmel-ICE zieht in diesem Modus weniger als 1 mA von diesem Pin.
Masse 3, 5, 9 Boden. Alle müssen verbunden werden, um sicherzustellen, dass der Atmel-ICE und das Zielgerät dieselbe Bezugsmasse haben.
SCHLÜSSEL 7 Intern mit dem TRST-Pin am AVR-Anschluss verbunden. Empfohlen, da nicht verbunden.

Die Atmel-ICE-Debugger-Programmierer - Symbol 1 Tipp: Denken Sie daran, einen Entkopplungskondensator zwischen Pin 1 und GND einzubauen.
4.2.2.2 JTAG Gänseblümchen Verkettung
Der JTAG Schnittstelle ermöglicht den Anschluss mehrerer Geräte an eine einzige Schnittstelle in einer Daisy-Chain-Konfiguration. Die Zielgeräte müssen alle mit derselben Versorgungsspannung versorgt werdentage, teilen sich einen gemeinsamen Masseknoten und müssen wie in der Abbildung unten gezeigt angeschlossen werden.
Abbildung 4-3. JTAG Daisy-ChainDie Atmel-ICE-Debugger-Programmierer – Abbildung 23

Beim Verbinden von Geräten in einer Daisy-Chain sind folgende Punkte zu beachten:

  • Alle Geräte müssen sich eine gemeinsame Masse teilen, die mit GND auf der Atmel-ICE-Sonde verbunden ist
  • Alle Geräte müssen auf dem gleichen Zielvolumen betrieben werdentage. VTG auf dem Atmel-ICE muss mit diesem Vol. verbunden werdentage.
  • TMS und TCK sind parallel geschaltet; TDI und TDO sind seriell verbunden
  • nSRST auf der Atmel-ICE-Sonde muss mit RESET auf den Geräten verbunden werden, wenn eines der Geräte in der Kette seinen J deaktiviertTAG Hafen
  • „Vorherige Geräte“ bezieht sich auf die Anzahl der JTAG Geräte, die das TDI-Signal in der Daisy-Chain passieren muss, bevor es das Zielgerät erreicht. In ähnlicher Weise ist „Geräte nach“ die Anzahl der Geräte, die das Signal nach dem Zielgerät passieren muss, bevor es das Atmel-ICE TDO erreicht
  • „Anweisungsbits „vorher“ und „nachher“ bezieht sich auf die Gesamtsumme aller JTAG Befehlsregisterlängen von Geräten, die vor und nach dem Zielgerät in der Daisy-Chain verbunden sind
  • Die IR-Gesamtlänge (Befehlsbits vor + Atmel-Zielgeräte-IR-Länge + Befehlsbits danach) ist auf maximal 256 Bits begrenzt. Die Anzahl der Geräte in der Kette ist auf 15 davor und 15 danach begrenzt.

Die Atmel-ICE-Debugger-Programmierer - Symbol 1 Tipp:
Daisy-Chaining BspampDatei: TDI → ATmega1280 → ATxmega128A1 → ATUC3A0512 → TDO.
Zur Verbindung mit dem Atmel AVR XMEGA® Gerät sind die Daisy-Chain-Einstellungen:

  • Geräte vor: 1
  • Geräte nach: 1
  • Anweisungsbits davor: 4 (8-Bit-AVR-Geräte haben 4 IR-Bits)
  • Befehlsbits nach: 5 (32-Bit-AVR-Geräte haben 5 IR-Bits)

Tabelle 4-2. IR-Längen von Atmel MCUs

Gerätetyp IR-Länge
AVR 8-Bit 4 Bit
AVR 32-Bit 5 Bit
SAM 4 Bit

4.2.3. Verbindung zu einem JTAG Ziel
Der Atmel-ICE ist mit zwei 50-mil-10-Pin-JTAG Anschlüsse. Beide Anschlüsse sind direkt elektrisch verbunden, entsprechen jedoch zwei unterschiedlichen Pinbelegungen; der AVR JTAG -Header und den ARM-Cortex-Debug-Header. Der Anschluss sollte basierend auf der Pinbelegung der Zielplatine ausgewählt werden und nicht auf dem Ziel-MCU-Typ – zampie ein SAM-Gerät, das in einem AVR STK600-Stack montiert ist, sollte den AVR-Header verwenden.
Die empfohlene Pinbelegung für den 10-poligen AVR JTAG Anschluss ist in Abbildung 4-6 dargestellt.
Die empfohlene Pinbelegung für den 10-poligen ARM-Cortex-Debug-Anschluss ist in Abbildung 4-2 dargestellt.
Direkter Anschluss an einen standardmäßigen 10-poligen 50-mil-Header
Verwenden Sie das 50-mil-10-Pin-Flachkabel (in einigen Kits enthalten), um eine direkte Verbindung zu einer Platine herzustellen, die diesen Header-Typ unterstützt. Verwenden Sie den AVR-Anschlussport auf dem Atmel-ICE für Header mit der AVR-Pinbelegung und den SAM-Anschlussport für Header, die der ARM-Cortex-Debug-Header-Pinbelegung entsprechen.
Die Pinbelegungen für beide 10-Pin-Anschlussports sind unten dargestellt.
Anschluss an einen standardmäßigen 10-poligen 100-mil-Header
Verwenden Sie einen standardmäßigen 50-mil-auf-100-mil-Adapter, um eine Verbindung zu 100-mil-Stiftleisten herzustellen. Dazu kann eine Adapterplatine (in manchen Kits enthalten) oder alternativ die JTAGICE3-Adapter kann für AVR-Ziele verwendet werden.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Der JTAGDer ICE3 100-mil-Adapter kann nicht mit dem SAM-Anschlussport verwendet werden, da die Pins 2 und 10 (AVR GND) am Adapter verbunden sind.
Anschluss an einen benutzerdefinierten 100-mil-Header
Wenn Ihre Zielplatine keinen konformen 10-poligen JTAG Header in 50- oder 100-mil, können Sie mit dem 10-poligen „Mini-Squid“-Kabel (in einigen Kits enthalten) eine benutzerdefinierte Pinbelegung zuordnen, das Zugriff auf zehn einzelne 100-mil-Buchsen bietet.
Anschluss an einen 20-poligen 100-mil-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu Zielen mit einem 20-poligen 100-mil-Header herzustellen.
Tabelle 4-3. Atmel-ICE JTAG Pin Beschreibung

Name AVR Anschlussstift SAM Anschlussstift Beschreibung
TCK 1 4 Test Clock (Taktsignal vom Atmel-ICE in das Zielgerät).
TMS 5 2 Test Mode Select (Steuersignal vom Atmel-ICE in das Zielgerät).
TDI 9 8 Test Data In (Daten, die vom Atmel-ICE in das Zielgerät übertragen werden).
TDO 3 6 Test Data Out (Daten, die vom Zielgerät in das Atmel-ICE übertragen werden).
nTRST 8 Test-Reset (optional, nur bei einigen AVR-Geräten). Zum Zurücksetzen des JTAG TAP-Controller.
nSRST 6 10 Zurücksetzen (optional). Wird zum Zurücksetzen des Zielgeräts verwendet. Das Anschließen dieses Pins wird empfohlen, da es dem Atmel-ICE ermöglicht, das Zielgerät in einem Reset-Zustand zu halten, was für das Debuggen in bestimmten Szenarien unerlässlich sein kann.
VTG 4 1 ZielvoltagDie Referenz. Die Atmel-ICEsamples das Zielvoltage auf diesen Pin, um die Pegelwandler korrekt mit Strom zu versorgen. Der Atmel-ICE zieht weniger als 3 mA von diesem Pin im debugWIRE-Modus und weniger als 1 mA in anderen Modi.
Masse 2, 10 3, 5, 9 Boden. Alle müssen verbunden werden, um sicherzustellen, dass der Atmel-ICE und das Zielgerät dieselbe Bezugsmasse haben.

4.2.4. Physikalische SWD-Schnittstelle
Die ARM-SWD-Schnittstelle ist eine Teilmenge des JTAG Schnittstelle unter Verwendung von TCK- und TMS-Pins. Der ARMJTAG und AVRJTAG Steckverbinder sind jedoch nicht pinkompatibel, sodass beim Design einer Anwendungsleiterplatte, die ein SAM-Gerät mit SWD oder JTAG Schnittstelle wird empfohlen, die in der Abbildung unten gezeigte ARM-Pinbelegung zu verwenden. Der SAM-Anschlussport des Atmel-ICE kann direkt mit dieser Pinbelegung verbunden werden.
Abbildung 4-4. Empfohlene ARM SWD/JTAG Header-PinbelegungDie Atmel-ICE-Debugger-Programmierer – Abbildung 18

Das Atmel-ICE ist in der Lage, ITM-Trace im UART-Format an den Host-Computer zu streamen. Trace wird auf dem TRACE/SWO-Pin des 10-Pin-Headers (JTAG TDO-Pin). Die Daten werden intern auf dem Atmel-ICE gepuffert und über die HID-Schnittstelle an den Host-Computer gesendet. Die maximal zuverlässige Datenrate liegt bei etwa 3 MB/s.
4.2.5. Verbinden mit einem SWD-Ziel
Die ARM-SWD-Schnittstelle ist eine Teilmenge des JTAG Schnittstelle unter Verwendung der TCK- und TMS-Pins, was bedeutet, dass beim Anschluss an ein SWD-Gerät der 10-polige JTAG Stecker kann technisch verwendet werden. Der ARMJTAG und AVRJTAG Steckverbinder sind jedoch nicht pinkompatibel, dies hängt also vom Layout der verwendeten Zielplatine ab. Bei Verwendung eines STK600 oder eines Boards mit AVR JTAG Pinbelegung muss der AVR-Anschlussport am Atmel-ICE verwendet werden. Beim Anschluss an ein Board, das den ARM JTAG Pinbelegung muss der SAM-Anschlussport am Atmel-ICE verwendet werden.
Die empfohlene Pinbelegung für den 10-poligen Cortex-Debug-Anschluss ist in Abbildung 4-4 ​​dargestellt.
Anschluss an einen 10-poligen 50-mil-Cortex-Header
Verwenden Sie das Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-Cortex-Header herzustellen.
Anschluss an einen 10-poligen 100-mil-Cortex-Layout-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem 100-mil-Cortex-Pinout-Header herzustellen.
Anschluss an einen 20-poligen 100-mil-SAM-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem 20-poligen 100-mil-SAM-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR- oder SAM-Anschluss und der Zielplatine herzustellen. Es sind sechs Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 4-4. Atmel-ICE SWD-Pin-Mapping

Name AVR Anschlussstift SAM Anschlussstift Beschreibung
SWDC LK 1 4 Debug-Uhr für serielle Leitungen.
SWDIO 5 2 Debug-Dateneingabe/-ausgabe über serielle Leitung.
SWO 3 6 Serial Wire Output (optional – nicht auf allen Geräten implementiert).
nSRST 6 10 Zurücksetzen.
VTG 4 1 ZielvoltagDie Referenz.
Masse 2, 10 3, 5, 9 Boden.

4.2.6 Besondere Erwägungen
PIN LÖSCHEN
Einige SAM-Vorrichtungen enthalten einen ERASE-Pin, der bestätigt wird, um eine vollständige Chiplöschung durchzuführen und Vorrichtungen zu entsperren, auf denen das Sicherheitsbit gesetzt ist. Diese Funktion ist sowohl an das Gerät selbst als auch an den Flash-Controller gekoppelt und nicht Teil des ARM-Kerns.
Der ERASE-Pin ist NICHT Teil eines Debug-Headers, und der Atmel-ICE ist daher nicht in der Lage, dieses Signal zum Entsperren eines Geräts zu aktivieren. In solchen Fällen sollte der Benutzer das Löschen manuell durchführen, bevor er eine Debug-Sitzung startet.
Physikalische Schnittstellen JTAG Schnittstelle
Die RESET-Leitung sollte immer angeschlossen sein, damit der Atmel-ICE den J aktivieren kannTAG Schnittstelle.
SWD-Schnittstelle
Die RESET-Leitung sollte immer angeschlossen sein, damit der Atmel-ICE die SWD-Schnittstelle aktivieren kann.
4.3 AVR UC3-Geräte mit JTAG/ein Kabel
Alle AVR UC3-Geräte verfügen über den JTAG Schnittstelle zum Programmieren und Debuggen. Darüber hinaus verfügen einige AVR UC3-Geräte über die aWire-Schnittstelle mit identischer Funktionalität über ein einziges Kabel. Überprüfen Sie das Gerätedatenblatt auf unterstützte Schnittstellen dieses Geräts
4.3.1 Atmel AVR UC3 On-Chip-Debug-System
Das Atmel AVR UC3 OCD-System wurde gemäß dem Nexus 2.0-Standard (IEEE-ISTO 5001™-2003) entwickelt, einem hochflexiblen und leistungsstarken offenen On-Chip-Debug-Standard für 32-Bit-Mikrocontroller. Es unterstützt die folgenden Funktionen:

  • Nexus-konforme Debug-Lösung
  • OCD unterstützt jede CPU-Geschwindigkeit
  • Sechs Hardware-Haltepunkte für Programmzähler
  • Zwei Datenhaltepunkte
  • Breakpoints können als Watchpoints konfiguriert werden
  • Hardware-Haltepunkte können kombiniert werden, um Bereiche zu unterbrechen
  • Unbegrenzte Anzahl von Benutzerprogramm-Haltepunkten (mit BREAK)
  • Verzweigungsablaufverfolgung für Programmzähler in Echtzeit, Datenablaufverfolgung, Prozessablaufverfolgung (wird nur von Debuggern mit parallelem Ablaufverfolgungserfassungsport unterstützt)

Weitere Informationen zum AVR UC3 OCD-System finden Sie in den AVR32UC Technical Reference Manuals auf www.atmel.com/uc3.
4.3.2. JTAG Physische Schnittstelle
Der JTAG Schnittstelle besteht aus einem 4-Draht Test Access Port (TAP) Controller, der mit dem IEEE kompatibel ist® 1149.1-Standard. Der IEEE-Standard wurde entwickelt, um eine branchenübliche Methode zum effizienten Testen der Konnektivität von Leiterplatten (Boundary Scan) bereitzustellen. Atmel AVR- und SAM-Geräte haben diese Funktionalität erweitert, um eine vollständige Unterstützung für Programmierung und On-Chip-Debugging zu bieten.
Abbildung 4-5. JTAG Grundlagen der BenutzeroberflächeDie Atmel-ICE-Debugger-Programmierer – Abbildung 17

4.3.2.1 AVR JTAG Pinbelegung
Beim Entwerfen einer Anwendungsplatine, die einen Atmel AVR mit dem JTAG Schnittstelle wird empfohlen, die Pinbelegung wie in der Abbildung unten gezeigt zu verwenden. Sowohl 100-mil- als auch 50-mil-Varianten dieser Pinbelegung werden unterstützt, abhängig von der Verkabelung und den Adaptern, die im jeweiligen Kit enthalten sind.
Abbildung 4-6. AVR JTAG Header-Pinbelegung
Die Atmel-ICE-Debugger-Programmierer – Abbildung 22

Tisch 4-5. AVR JTAG Pin Beschreibung

Name Stift

Beschreibung

TCK 1 Test Clock (Taktsignal vom Atmel-ICE in das Zielgerät).
TMS 5 Test Mode Select (Steuersignal vom Atmel-ICE in das Zielgerät).
TDI 9 Test Data In (Daten, die vom Atmel-ICE in das Zielgerät übertragen werden).
TDO 3 Test Data Out (Daten, die vom Zielgerät in das Atmel-ICE übertragen werden).
nTRST 8 Test-Reset (optional, nur bei einigen AVR-Geräten). Zum Zurücksetzen des JTAG TAP-Controller.
nSRST 6 Zurücksetzen (optional). Wird zum Zurücksetzen des Zielgeräts verwendet. Das Anschließen dieses Pins wird empfohlen, da es dem Atmel-ICE ermöglicht, das Zielgerät in einem Reset-Zustand zu halten, was für das Debuggen in bestimmten Szenarien unerlässlich sein kann.
VTG 4 ZielvoltagDie Referenz. Die Atmel-ICEsamples das Zielvoltage auf diesen Pin, um die Pegelwandler korrekt mit Strom zu versorgen. Der Atmel-ICE zieht weniger als 3 mA von diesem Pin im debugWIRE-Modus und weniger als 1 mA in anderen Modi.
Masse 2, 10 Boden. Beide müssen verbunden werden, um sicherzustellen, dass der Atmel-ICE und das Zielgerät dieselbe Bezugsmasse haben.

Die Atmel-ICE-Debugger-Programmierer - Symbol 1 Tipp: Denken Sie daran, einen Entkopplungskondensator zwischen Pin 4 und GND einzubauen.
4.3.2.2 JTAG Gänseblümchen Verkettung
Der JTAG Schnittstelle ermöglicht den Anschluss mehrerer Geräte an eine einzige Schnittstelle in einer Daisy-Chain-Konfiguration. Die Zielgeräte müssen alle mit derselben Versorgungsspannung versorgt werdentage, teilen sich einen gemeinsamen Masseknoten und müssen wie in der Abbildung unten gezeigt angeschlossen werden.
Abbildung 4-7. JTAG Daisy-ChainDie Atmel-ICE-Debugger-Programmierer – Abbildung 19

Beim Verbinden von Geräten in einer Daisy-Chain sind folgende Punkte zu beachten:

  • Alle Geräte müssen sich eine gemeinsame Masse teilen, die mit GND auf der Atmel-ICE-Sonde verbunden ist
  • Alle Geräte müssen auf dem gleichen Zielvolumen betrieben werdentage. VTG auf dem Atmel-ICE muss mit diesem Vol. verbunden werdentage.
  • TMS und TCK sind parallel geschaltet; TDI und TDO sind in einer seriellen Kette verbunden.
  • nSRST auf der Atmel-ICE-Sonde muss mit RESET auf den Geräten verbunden werden, wenn eines der Geräte in der Kette seinen J deaktiviertTAG Hafen
  • „Vorherige Geräte“ bezieht sich auf die Anzahl der JTAG Geräte, die das TDI-Signal in der Daisy-Chain passieren muss, bevor es das Zielgerät erreicht. In ähnlicher Weise ist „Geräte nach“ die Anzahl der Geräte, die das Signal nach dem Zielgerät passieren muss, bevor es das Atmel-ICE TDO erreicht
  • „Anweisungsbits „vorher“ und „nachher“ bezieht sich auf die Gesamtsumme aller JTAG Befehlsregisterlängen von Geräten, die vor und nach dem Zielgerät in der Daisy-Chain verbunden sind
  • Die IR-Gesamtlänge (Befehlsbits vor + Atmel-Zielgeräte-IR-Länge + Befehlsbits danach) ist auf maximal 256 Bits begrenzt. Die Anzahl der Geräte in der Kette ist auf 15 davor und 15 danach begrenzt.

Tipp: 

Daisy-Chaining BspampDatei: TDI → ATmega1280 → ATxmega128A1 → ATUC3A0512 → TDO.
Zur Verbindung mit dem Atmel AVR XMEGA® Gerät sind die Daisy-Chain-Einstellungen:

  • Geräte vor: 1
  • Geräte nach: 1
  • Anweisungsbits davor: 4 (8-Bit-AVR-Geräte haben 4 IR-Bits)
  • Befehlsbits nach: 5 (32-Bit-AVR-Geräte haben 5 IR-Bits)

Tabelle 4-6. IR-Längen von Atmel MCUS

Gerätetyp IR-Länge
AVR 8-Bit 4 Bit
AVR 32-Bit 5 Bit
SAM 4 Bit

4.3.3.Verbindung zu einem JTAG Ziel
Der Atmel-ICE ist mit zwei 50-mil-10-Pin-JTAG Anschlüsse. Beide Anschlüsse sind direkt elektrisch verbunden, entsprechen jedoch zwei unterschiedlichen Pinbelegungen; der AVR JTAG -Header und den ARM-Cortex-Debug-Header. Der Anschluss sollte basierend auf der Pinbelegung der Zielplatine ausgewählt werden und nicht auf dem Ziel-MCU-Typ – zampie ein SAM-Gerät, das in einem AVR STK600-Stack montiert ist, sollte den AVR-Header verwenden.
Die empfohlene Pinbelegung für den 10-poligen AVR JTAG Anschluss ist in Abbildung 4-6 dargestellt.
Die empfohlene Pinbelegung für den 10-poligen ARM-Cortex-Debug-Anschluss ist in Abbildung 4-2 dargestellt.
Direkter Anschluss an einen standardmäßigen 10-poligen 50-mil-Header
Verwenden Sie das 50-mil-10-Pin-Flachkabel (in einigen Kits enthalten), um eine direkte Verbindung zu einer Platine herzustellen, die diesen Header-Typ unterstützt. Verwenden Sie den AVR-Anschlussport auf dem Atmel-ICE für Header mit der AVR-Pinbelegung und den SAM-Anschlussport für Header, die der ARM-Cortex-Debug-Header-Pinbelegung entsprechen.
Die Pinbelegungen für beide 10-Pin-Anschlussports sind unten dargestellt.
Anschluss an einen standardmäßigen 10-poligen 100-mil-Header

Verwenden Sie einen standardmäßigen 50-mil-auf-100-mil-Adapter, um eine Verbindung zu 100-mil-Stiftleisten herzustellen. Dazu kann eine Adapterplatine (in manchen Kits enthalten) oder alternativ die JTAGICE3-Adapter kann für AVR-Ziele verwendet werden.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Der JTAGDer ICE3 100-mil-Adapter kann nicht mit dem SAM-Anschlussport verwendet werden, da die Pins 2 und 10 (AVR GND) am Adapter verbunden sind.
Anschluss an einen benutzerdefinierten 100-mil-Header
Wenn Ihre Zielplatine keinen konformen 10-poligen JTAG Header in 50- oder 100-mil, können Sie mit dem 10-poligen „Mini-Squid“-Kabel (in einigen Kits enthalten) eine benutzerdefinierte Pinbelegung zuordnen, das Zugriff auf zehn einzelne 100-mil-Buchsen bietet.
Anschluss an einen 20-poligen 100-mil-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu Zielen mit einem 20-poligen 100-mil-Header herzustellen.
Tabelle 4-7. Atmel-ICE JTAG Pin Beschreibung

Name

Pin des AVR-Anschlusses SAM-Port-Pin

Beschreibung

TCK 1 4 Test Clock (Taktsignal vom Atmel-ICE in das Zielgerät).
TMS 5 2 Test Mode Select (Steuersignal vom Atmel-ICE in das Zielgerät).
TDI 9 8 Test Data In (Daten, die vom Atmel-ICE in das Zielgerät übertragen werden).
TDO 3 6 Test Data Out (Daten, die vom Zielgerät in das Atmel-ICE übertragen werden).
nTRST 8 Test-Reset (optional, nur bei einigen AVR-Geräten). Zum Zurücksetzen des JTAG TAP-Controller.
nSRST 6 10 Zurücksetzen (optional). Wird zum Zurücksetzen des Zielgeräts verwendet. Das Anschließen dieses Pins wird empfohlen, da es dem Atmel-ICE ermöglicht, das Zielgerät in einem Reset-Zustand zu halten, was für das Debuggen in bestimmten Szenarien unerlässlich sein kann.
VTG 4 1 ZielvoltagDie Referenz. Die Atmel-ICEsamples das Zielvoltage auf diesen Pin, um die Pegelwandler korrekt mit Strom zu versorgen. Der Atmel-ICE zieht weniger als 3 mA von diesem Pin im debugWIRE-Modus und weniger als 1 mA in anderen Modi.
Masse 2, 10 3, 5, 9 Boden. Alle müssen verbunden werden, um sicherzustellen, dass der Atmel-ICE und das Zielgerät dieselbe Bezugsmasse haben.

 4.3.4 aWire Physikalische Schnittstelle
Die aWire-Schnittstelle nutzt die RESET-Leitung des AVR-Geräts, um Programmier- und Debugging-Funktionen zu ermöglichen. Eine spezielle Aktivierungssequenz wird vom Atmel-ICE übertragen, die die standardmäßige RESET-Funktionalität des Pins deaktiviert. Beim Entwerfen einer Anwendungsplatine, die einen Atmel AVR mit der aWire-Schnittstelle enthält, wird empfohlen, die in Abbildung 4 gezeigte Pinbelegung zu verwenden -8. Sowohl 100-mil- als auch 50-mil-Varianten dieser Pinbelegung werden unterstützt, abhängig von der Verkabelung und den Adaptern, die im jeweiligen Kit enthalten sind.
Abbildung 4-8. aWire-Header-PinbelegungDie Atmel-ICE-Debugger-Programmierer – Abbildung 24

Die Atmel-ICE-Debugger-Programmierer - Symbol 1 Tipp:
Da es sich bei aWire um eine Halbduplex-Schnittstelle handelt, wird ein Pull-up-Widerstand auf der RESET-Leitung in der Größenordnung von 47 kΩ empfohlen, um eine falsche Start-Bit-Erkennung beim Richtungswechsel zu vermeiden.
Die aWire-Schnittstelle kann sowohl als Programmier- als auch als Debugging-Schnittstelle verwendet werden. Alle Funktionen des OCD-Systems sind über den 10-poligen JTAG Auf die Schnittstelle kann auch über aWire zugegriffen werden.
4.3.5 Verbinden mit einem aWire-Ziel
Die aWire-Schnittstelle benötigt neben V nur eine DatenleitungCC und GND. Auf dem Ziel ist diese Zeile die nRESET-Zeile, obwohl der Debugger die JTAG TDO-Leitung als Datenleitung.
Die empfohlene Pinbelegung für den 6-poligen aWire-Anschluss ist in Abbildung 4-8 dargestellt.
Anschluss an einen 6-poligen 100-mil-aWire-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-aWire-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-aWire-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-aWire-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind drei Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 4-8. Atmel-ICE aWire-Pin-Mapping

Atmel-ICE AVR-Port-Pins Zielstifte Mini-Tintenfisch-Stift

aKabelbelegung

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) 6
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

4.3.6. Besondere Überlegungen
JTAG Schnittstelle
Auf einigen Atmel AVR UC3-Geräten ist das JTAG Port ist standardmäßig nicht aktiviert. Bei Verwendung dieser Geräte muss unbedingt die RESET-Leitung angeschlossen werden, damit der Atmel-ICE den J aktivieren kannTAG Schnittstelle.
aWire-Schnittstelle
Die Baudrate der aWire-Kommunikation hängt von der Frequenz des Systemtakts ab, da Daten zwischen diesen beiden Domänen synchronisiert werden müssen. Der Atmel-ICE erkennt automatisch, dass die Systemuhr heruntergesetzt wurde, und kalibriert seine Baudrate entsprechend neu. Die automatische Kalibrierung funktioniert nur bis zu einer Systemtaktfrequenz von 8kHz. Das Umschalten auf eine niedrigere Systemuhr während einer Debug-Sitzung kann dazu führen, dass der Kontakt mit dem Ziel verloren geht.
Bei Bedarf kann die aWire Baudrate durch Setzen des Parameters aWire Clock eingeschränkt werden. Die automatische Erkennung funktioniert weiterhin, aber den Ergebnissen wird ein Höchstwert auferlegt.
Jeder mit dem RESET-Pin verbundene Stabilisierungskondensator muss bei Verwendung von aWire getrennt werden, da er den korrekten Betrieb der Schnittstelle stört. Ein schwacher externer Pullup (10 kΩ oder höher) auf dieser Leitung wird empfohlen.

Schlafmodus herunterfahren
Einige AVR UC3-Geräte verfügen über einen internen Regler, der im 3.3-V-Versorgungsmodus mit 1.8-V-geregelten E/A-Leitungen verwendet werden kann. Dies bedeutet, dass der interne Regler sowohl den Kern als auch die meisten I/O mit Strom versorgt. Nur Atmel AVR ONE! Der Debugger unterstützt das Debuggen während der Verwendung von Schlafmodi, in denen dieser Regler abgeschaltet ist.
4.3.7. EVTI / EVTO-Nutzung
Die EVTI- und EVTO-Pins sind auf dem Atmel-ICE nicht zugänglich. Sie können jedoch weiterhin in Verbindung mit anderen externen Geräten verwendet werden.
EVTI kann für folgende Zwecke verwendet werden:

  • Das Ziel kann gezwungen werden, die Ausführung als Reaktion auf ein externes Ereignis zu stoppen. Wenn die Event In Control (EIC)-Bits im DC-Register auf 0b01 geschrieben werden, erzeugt der High-to-Low-Übergang am EVTI-Pin eine Breakpoint-Bedingung. EVTI muss für einen CPU-Taktzyklus niedrig bleiben, um zu garantieren, dass ein Breakpoint gesetzt wird. Das externe Breakpoint-Bit (EXB) in DS wird gesetzt, wenn dies auftritt.
  • Generieren von Ablaufverfolgungssynchronisierungsnachrichten. Wird vom Atmel-ICE nicht verwendet.

EVTO kann für folgende Zwecke verwendet werden:

  • Anzeigen, dass die CPU in den Debug-Modus eingetreten ist Das Setzen der EOS-Bits in DC auf 0b01 bewirkt, dass der EVTO-Pin für einen CPU-Taktzyklus auf Low gezogen wird, wenn das Zielgerät in den Debug-Modus eintritt. Dieses Signal kann als Triggerquelle für ein externes Oszilloskop verwendet werden.
  • Zeigt an, dass die CPU einen Breakpoint oder Watchpoint erreicht hat. Durch Setzen des EOC-Bits in einem entsprechenden Breakpoint/Watchpoint Control Register wird der Breakpoint- oder Watchpoint-Status auf dem EVTO-Pin angezeigt. Die EOS-Bits in DC müssen auf 0xb10 gesetzt werden, um diese Funktion zu aktivieren. Der EVTO-Pin kann dann mit einem externen Oszilloskop verbunden werden, um den Watchpoint zu untersuchen
  • Generieren von Trace-Timing-Signalen. Wird vom Atmel-ICE nicht verwendet.

4.4 tinyAVR-, megaAVR- und XMEGA-Geräte
AVR-Geräte verfügen über verschiedene Programmier- und Debugging-Schnittstellen. Überprüfen Sie das Gerätedatenblatt auf unterstützte Schnittstellen dieses Geräts.

  • Einige winzige AVR® Geräte haben eine TPI TPI kann nur zum Programmieren des Geräts verwendet werden, und diese Geräte haben überhaupt keine On-Chip-Debug-Fähigkeit.
  • Einige tinyAVR-Geräte und einige megaAVR-Geräte verfügen über die debugWIRE-Schnittstelle, die eine Verbindung zu einem On-Chip-Debug-System namens tinyOCD herstellt. Alle Geräte mit debugWIRE haben auch die SPI-Schnittstelle für In-System
  • Einige megaAVR-Geräte haben einen JTAG Schnittstelle zum Programmieren und Debuggen, mit einem On-Chip-Debug-System, auch bekannt als Alle Geräte mit JTAG verfügen auch über die SPI-Schnittstelle als alternative Schnittstelle für die In-System-Programmierung.
  • Alle AVR XMEGA-Geräte haben die PDI-Schnittstelle zum Programmieren und einige AVR XMEGA-Geräte haben auch eine JTAG Schnittstelle mit identischer Funktionalität.
  • Neue tinyAVR-Geräte verfügen über eine UPDI-Schnittstelle, die zum Programmieren und Debuggen verwendet wird

Tabelle 4-9. Zusammenfassung der Programmier- und Debugging-Schnittstellen

UPDI TPI SPI debugWIR E JTAG PDI ein Kabel

SWD

winziger AVR Neue Geräte Einige Geräte Einige Geräte Einige Geräte
Mega AV R Alle Geräte Einige Geräte Einige Geräte
AVR XMEGA Einige Geräte Alle Geräte
AVR UC Alle Geräte Einige Geräte
SAM Einige Geräte Alle Geräte

4.4.1. JTAG Physische Schnittstelle
Der JTAG Schnittstelle besteht aus einem 4-Draht Test Access Port (TAP) Controller, der mit dem IEEE kompatibel ist® 1149.1-Standard. Der IEEE-Standard wurde entwickelt, um eine branchenübliche Methode zum effizienten Testen der Konnektivität von Leiterplatten (Boundary Scan) bereitzustellen. Atmel AVR- und SAM-Geräte haben diese Funktionalität erweitert, um eine vollständige Unterstützung für Programmierung und On-Chip-Debugging zu bieten.
Abbildung 4-9. JTAG Grundlagen der BenutzeroberflächeDie Atmel-ICE-Debugger-Programmierer – Abbildung 214.4.2. Verbindung zu einem JTAG Ziel
Der Atmel-ICE ist mit zwei 50-mil-10-Pin-JTAG Anschlüsse. Beide Anschlüsse sind direkt elektrisch verbunden, entsprechen jedoch zwei unterschiedlichen Pinbelegungen; der AVR JTAG -Header und den ARM-Cortex-Debug-Header. Der Anschluss sollte basierend auf der Pinbelegung der Zielplatine ausgewählt werden und nicht auf dem Ziel-MCU-Typ – zampie ein SAM-Gerät, das in einem AVR STK600-Stack montiert ist, sollte den AVR-Header verwenden.
Die empfohlene Pinbelegung für den 10-poligen AVR JTAG Anschluss ist in Abbildung 4-6 dargestellt.
Die empfohlene Pinbelegung für den 10-poligen ARM-Cortex-Debug-Anschluss ist in Abbildung 4-2 dargestellt.
Direkter Anschluss an einen standardmäßigen 10-poligen 50-mil-Header
Verwenden Sie das 50-mil-10-Pin-Flachkabel (in einigen Kits enthalten), um eine direkte Verbindung zu einer Platine herzustellen, die diesen Header-Typ unterstützt. Verwenden Sie den AVR-Anschlussport auf dem Atmel-ICE für Header mit der AVR-Pinbelegung und den SAM-Anschlussport für Header, die der ARM-Cortex-Debug-Header-Pinbelegung entsprechen.
Die Pinbelegungen für beide 10-Pin-Anschlussports sind unten dargestellt.
Anschluss an einen standardmäßigen 10-poligen 100-mil-Header
Verwenden Sie einen standardmäßigen 50-mil-auf-100-mil-Adapter, um eine Verbindung zu 100-mil-Stiftleisten herzustellen. Dazu kann eine Adapterplatine (in manchen Kits enthalten) oder alternativ die JTAGICE3-Adapter kann für AVR-Ziele verwendet werden.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Der JTAGDer ICE3 100-mil-Adapter kann nicht mit dem SAM-Anschlussport verwendet werden, da die Pins 2 und 10 (AVR GND) am Adapter verbunden sind.
Anschluss an einen benutzerdefinierten 100-mil-Header
Wenn Ihre Zielplatine keinen konformen 10-poligen JTAG Header in 50- oder 100-mil, können Sie mit dem 10-poligen „Mini-Squid“-Kabel (in einigen Kits enthalten) eine benutzerdefinierte Pinbelegung zuordnen, das Zugriff auf zehn einzelne 100-mil-Buchsen bietet.
Anschluss an einen 20-poligen 100-mil-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu Zielen mit einem 20-poligen 100-mil-Header herzustellen.
Tabelle 4-10. Atmel-ICE JTAG Pin Beschreibung

Name AVR Anschlussstift SAM Anschlussstift Beschreibung
TCK 1 4 Test Clock (Taktsignal vom Atmel-ICE in das Zielgerät).
TMS 5 2 Test Mode Select (Steuersignal vom Atmel-ICE in das Zielgerät).
TDI 9 8 Test Data In (Daten, die vom Atmel-ICE in das Zielgerät übertragen werden).
TDO 3 6 Test Data Out (Daten, die vom Zielgerät in das Atmel-ICE übertragen werden).
nTRST 8 Test-Reset (optional, nur bei einigen AVR-Geräten). Zum Zurücksetzen des JTAG TAP-Controller.
nSRST 6 10 Zurücksetzen (optional). Wird zum Zurücksetzen des Zielgeräts verwendet. Das Anschließen dieses Pins wird empfohlen, da es dem Atmel-ICE ermöglicht, das Zielgerät in einem Reset-Zustand zu halten, was für das Debuggen in bestimmten Szenarien unerlässlich sein kann.
VTG 4 1 ZielvoltagDie Referenz. Die Atmel-ICEsamples das Zielvoltage auf diesen Pin, um die Pegelwandler korrekt mit Strom zu versorgen. Der Atmel-ICE zieht weniger als 3 mA von diesem Pin im debugWIRE-Modus und weniger als 1 mA in anderen Modi.
Masse 2, 10 3, 5, 9 Boden. Alle müssen verbunden werden, um sicherzustellen, dass der Atmel-ICE und das Zielgerät dieselbe Bezugsmasse haben.

4.4.3.Physische SPI-Schnittstelle
Die In-System-Programmierung verwendet das interne SPI (Serial Peripheral Interface) des Ziel-Atmel-AVR, um Code in die Flash- und EEPROM-Speicher herunterzuladen. Es ist keine Debugging-Schnittstelle. Beim Entwerfen einer Anwendungsplatine, die einen AVR mit SPI-Schnittstelle enthält, sollte die in der Abbildung unten gezeigte Pinbelegung verwendet werden.
Abbildung 4-10. Pinbelegung des SPI-HeadersDie Atmel-ICE-Debugger-Programmierer – Abbildung 264.4.4. Verbindung zu einem SPI-Target
Die empfohlene Pinbelegung für den 6-poligen SPI-Anschluss ist in Abbildung 4-10 dargestellt.
Anschluss an einen 6-poligen 100-mil-SPI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-SPI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-SPI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-SPI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind sechs Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Die SPI-Schnittstelle wird effektiv deaktiviert, wenn die debugWIRE-Freigabesicherung (DWEN) programmiert ist, selbst wenn die SPIEN-Sicherung ebenfalls programmiert ist. Um die SPI-Schnittstelle wieder zu aktivieren, muss der Befehl „disable debugWIRE“ während einer debugWIRE-Debugging-Sitzung ausgegeben werden. Das Deaktivieren von debugWIRE auf diese Weise erfordert, dass die SPIEN-Sicherung bereits programmiert ist. Wenn Atmel Studio debugWIRE nicht deaktivieren kann, liegt dies wahrscheinlich daran, dass die SPIEN-Sicherung NICHT programmiert ist. Wenn dies der Fall ist, muss ein hochvolumiger verwendet werdentagDie Programmierschnittstelle zum Programmieren der SPIEN-Sicherung.
Die Atmel-ICE-Debugger-Programmierer - Symbol Info:
Die SPI-Schnittstelle wird oft als „ISP“ bezeichnet, da sie die erste In-System-Programming-Schnittstelle für Atmel AVR-Produkte war. Für die In-System-Programmierung stehen nun weitere Schnittstellen zur Verfügung.
Tabelle 4-11. Atmel-ICE-SPI-Pin-Mapping

Atmel-ICE AVR-Port-Pins Zielstifte Mini-Tintenfisch-Stift

SPI-Pinbelegung

Stift 1 (TCK) SCK 1 3
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) MISO 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) /ZURÜCKSETZEN 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) MOSI 9 4
Pin 10 (GND) 0

4.4.5. PDI
Das Program and Debug Interface (PDI) ist eine proprietäre Atmel-Schnittstelle für die externe Programmierung und das On-Chip-Debugging eines Geräts. PDI Physical ist eine 2-polige Schnittstelle, die eine bidirektionale synchrone Halbduplex-Kommunikation mit dem Zielgerät ermöglicht.
Beim Entwerfen einer Anwendungsplatine, die einen Atmel AVR mit der PDI-Schnittstelle enthält, sollte die in der Abbildung unten gezeigte Pinbelegung verwendet werden. Einer der 6-Pin-Adapter, die mit dem Atmel-ICE-Kit geliefert werden, kann dann verwendet werden, um die Atmel-ICE-Sonde mit der Anwendungsplatine zu verbinden.
Abbildung 4-11. Pinbelegung des PDI-HeadersDie Atmel-ICE-Debugger-Programmierer – Abbildung 274.4.6.Verbindung zu einem PDI-Ziel herstellen
Die empfohlene Pinbelegung für den 6-poligen PDI-Anschluss ist in Abbildung 4-11 dargestellt.
Anschluss an einen 6-poligen 100-mil-PDI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-PDI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-PDI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-PDI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind vier Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Die erforderliche Pinbelegung unterscheidet sich von der JTAGICE mkII JTAG Sonde, wobei PDI_DATA mit Pin 9 verbunden ist. Der Atmel-ICE ist mit der Pinbelegung kompatibel, die vom Atmel-ICE verwendet wird, JTAGICE3, AVR ONE! und AVR Dragon Produkte.
Tabelle 4-12. Atmel-ICE PDI-Pin-Mapping

Atmel-ICE AVR-Anschlussstift

Zielstifte Mini-Tintenfisch-Stift

Atmel STK600 PDI Pinbelegung

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) PDI_DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) PDI_CLK 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

4.4.7. Physische UPDI-Schnittstelle
Das Unified Program and Debug Interface (UPDI) ist eine proprietäre Atmel-Schnittstelle für die externe Programmierung und das On-Chip-Debugging eines Geräts. Es ist ein Nachfolger der physischen 2-Draht-Schnittstelle PDI, die auf allen AVR XMEGA-Geräten zu finden ist. UPDI ist eine Single-Wire-Schnittstelle, die eine bidirektionale asynchrone Halbduplex-Kommunikation mit dem Zielgerät für Programmier- und Debugging-Zwecke bereitstellt.
Beim Entwerfen einer Anwendungsplatine, die einen Atmel AVR mit der UPDI-Schnittstelle enthält, sollte die unten gezeigte Pinbelegung verwendet werden. Einer der 6-Pin-Adapter, die mit dem Atmel-ICE-Kit geliefert werden, kann dann verwendet werden, um die Atmel-ICE-Sonde mit der Anwendungsplatine zu verbinden.
Abbildung 4-12. Pinbelegung des UPDI-HeadersDie Atmel-ICE-Debugger-Programmierer – Abbildung 284.4.7.1 UPDI und /RESET
Die UPDI-One-Wire-Schnittstelle kann je nach Ziel-AVR-Gerät ein dedizierter Pin oder ein gemeinsam genutzter Pin sein. Weitere Informationen finden Sie im Datenblatt des Geräts.
Wenn sich die UPDI-Schnittstelle auf einem gemeinsam genutzten Pin befindet, kann der Pin entweder als UPDI, /RESET oder GPIO konfiguriert werden, indem die Sicherungen RSTPINCFG[1:0] gesetzt werden.
Die RSTPINCFG[1:0]-Sicherungen haben die folgenden Konfigurationen, wie im Datenblatt beschrieben. Die praktischen Implikationen jeder Wahl werden hier angegeben.
Tabelle 4-13. RSTPINCFG[1:0] Sicherungskonfiguration

RSTPINCFG[1:0] Konfiguration

Verwendung

00 GPIO Allzweck-I/O-Pin. Um auf UPDI zugreifen zu können, muss an diesem Pin ein 12-V-Impuls angelegt werden. Es ist keine externe Reset-Quelle verfügbar.
01 UPDI Dedizierter Programmier- und Debugging-Pin. Es ist keine externe Reset-Quelle verfügbar.
10 Zurücksetzen Signaleingang zurücksetzen. Um auf UPDI zugreifen zu können, muss an diesem Pin ein 12-V-Impuls angelegt werden.
11 Reserviert NA

Notiz:  Ältere AVR-Geräte haben eine Programmierschnittstelle, bekannt als „High-Voltage Programmierung“ (sowohl serielle als auch parallele Varianten existieren.) Im Allgemeinen erfordert diese Schnittstelle, dass für die Dauer der Programmiersitzung 12 V an den /RESET-Pin angelegt werden. Die UPDI-Schnittstelle ist eine völlig andere Schnittstelle. Der UPDI-Pin ist in erster Linie ein Programmier- und Debugging-Pin, der mit einer alternativen Funktion (/RESET oder GPIO) verschmolzen werden kann. Wenn die alternative Funktion ausgewählt ist, ist ein 12-V-Impuls an diesem Pin erforderlich, um die UPDI-Funktionalität erneut zu aktivieren.
Notiz:  Wenn ein Design aufgrund von Pinbeschränkungen die gemeinsame Nutzung des UPDI-Signals erfordert, müssen Schritte unternommen werden, um sicherzustellen, dass das Gerät programmiert werden kann. Um sicherzustellen, dass das UPDI-Signal korrekt funktionieren kann, und um Schäden an externen Komponenten durch den 12-V-Impuls zu vermeiden, wird empfohlen, alle Komponenten an diesem Pin zu trennen, wenn Sie versuchen, das Gerät zu debuggen oder zu programmieren. Dies kann mit einem 0Ω-Widerstand erfolgen, der standardmäßig montiert ist und beim Debuggen entfernt oder durch eine Stiftleiste ersetzt wird. Diese Konfiguration bedeutet effektiv, dass die Programmierung vor der Montage des Geräts erfolgen sollte.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:  Der Atmel-ICE unterstützt keine 12 V auf der UPDI-Leitung. Mit anderen Worten, wenn der UPDI-Pin als GPIO oder RESET konfiguriert wurde, kann Atmel-ICE die UPDI-Schnittstelle nicht aktivieren.
4.4.8.Verbindung zu einem UPDI-Ziel herstellen
Die empfohlene Pinbelegung für den 6-poligen UPDI-Anschluss ist in Abbildung 4-12 dargestellt.
Anschluss an einen 6-poligen 100-mil-UPDI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-UPDI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-UPDI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-UPDI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header

Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind drei Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 4-14. Atmel-ICE UPDI-Pin-Mapping

Atmel-ICE AVR-Anschlussstift Zielstifte Mini-Tintenfisch-Stift

Atmel STK600 UPDI Pinbelegung

Stift 1 (TCK) 1
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) UPDI_DATA 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) [/RESET Sinn] 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

4.4.9 Physikalische TPI-Schnittstelle
TPI ist eine reine Programmierschnittstelle für einige AVR ATtiny-Geräte. Es ist keine Debugging-Schnittstelle und diese Geräte haben keine OCD-Fähigkeit. Beim Entwerfen einer Anwendungsplatine, die einen AVR mit der TPI-Schnittstelle enthält, sollte die in der Abbildung unten gezeigte Pinbelegung verwendet werden.

Abbildung 4-13. Pinbelegung des TPI-HeadersDie Atmel-ICE-Debugger-Programmierer – Abbildung 294.4.10.Verbindung zu einem TPI-Ziel herstellen
Die empfohlene Pinbelegung für den 6-poligen TPI-Anschluss ist in Abbildung 4-13 dargestellt.
Anschluss an einen 6-poligen 100-mil-TPI-Header
Verwenden Sie den 6-poligen 100-mil-Abgriff am Flachkabel (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 100-mil-TPI-Header herzustellen.
Anschluss an einen 6-poligen 50-mil-TPI-Header
Verwenden Sie die Adapterplatine (in einigen Kits enthalten), um eine Verbindung zu einem standardmäßigen 50-mil-TPI-Header herzustellen.
Anschluss an einen benutzerdefinierten 100-mil-Header
Das 10-polige Mini-Squid-Kabel sollte verwendet werden, um eine Verbindung zwischen dem Atmel-ICE AVR-Anschluss und der Zielplatine herzustellen. Es sind sechs Verbindungen erforderlich, wie in der folgenden Tabelle beschrieben.
Tabelle 4-15. Atmel-ICE TPI-Pin-Mapping

Atmel-ICE AVR-Port-Pins Zielstifte Mini-Tintenfisch-Stift

TPI-Pinbelegung

Stift 1 (TCK) UHR 1 3
Pin 2 (GND) Masse 2 6
Stift 3 (TDO) DATEN 3 1
Pin 4 (VTG) VTG 4 2
Stift 5 (TMS) 5
Stift 6 (nSRST) /ZURÜCKSETZEN 6 5
Pin 7 (nicht verbunden) 7
Stift 8 (nTRST) 8
Pin 9 (TDI) 9
Pin 10 (GND) 0

4.4.11. Erweitertes Debugging (AVR JTAG /debugWIRE-Geräte)
E/A-Peripheriegeräte
Die meisten E/A-Peripheriegeräte laufen weiter, obwohl die Programmausführung durch einen Haltepunkt gestoppt wird. Example: Wenn während einer UART-Übertragung ein Haltepunkt erreicht wird, wird die Übertragung beendet und die entsprechenden Bits gesetzt. Das TXC-Flag (Transmit Complete) wird gesetzt und ist beim nächsten einzelnen Schritt des Codes verfügbar, obwohl dies normalerweise später in einem tatsächlichen Gerät geschehen würde.
Alle E/A-Module laufen im angehaltenen Modus weiter, mit den folgenden zwei Ausnahmen:

  • Timer/Zähler (konfigurierbar über das Software-Frontend)
  • Watchdog Timer (immer angehalten, um Resets während des Debuggens zu verhindern)

Einzelschritt-E/A-Zugriff
Da die E/A weiterhin im angehaltenen Modus ausgeführt wird, sollte darauf geachtet werden, bestimmte Timing-Probleme zu vermeiden. Zum Bspample, der Code:
Wenn dieser Code normal ausgeführt wird, würde das TEMP-Register 0xAA nicht zurücklesen, da die Daten zum Zeitpunkt s noch nicht physisch an den Pin gelatcht worden wärenampgeführt durch die IN-Operation. Zwischen dem OUT- und dem IN-Befehl muss ein NOP-Befehl platziert werden, um sicherzustellen, dass der richtige Wert im PIN-Register vorhanden ist.
Wenn diese Funktion jedoch im Einzelschritt durch die OCD ausgeführt wird, ergibt dieser Code immer 0xAA im PIN-Register, da die E/A mit voller Geschwindigkeit läuft, selbst wenn der Kern während des Einzelschritts angehalten wird.
Einzelschritte und Timing
Bestimmte Register müssen innerhalb einer bestimmten Anzahl von Zyklen nach Aktivierung eines Steuersignals gelesen oder geschrieben werden. Da der E/A-Takt und die Peripheriegeräte im angehaltenen Modus weiterhin mit voller Geschwindigkeit laufen, wird ein Einzelschritt durch einen solchen Code die Zeitanforderungen nicht erfüllen. Zwischen zwei Einzelschritten kann die E/A-Uhr Millionen von Zyklen durchlaufen haben. Um Register mit solchen Timing-Anforderungen erfolgreich zu lesen oder zu schreiben, sollte die gesamte Lese- oder Schreibsequenz als atomare Operation ausgeführt werden, die das Gerät mit voller Geschwindigkeit laufen lässt. Dies kann durch Verwenden eines Makros oder eines Funktionsaufrufs zum Ausführen des Codes oder durch Verwenden der Run-to-Cursor-Funktion in der Debugumgebung erfolgen
Zugriff auf 16-Bit-Register
Die Atmel AVR-Peripherie enthält typischerweise mehrere 16-Bit-Register, auf die über den 8-Bit-Datenbus zugegriffen werden kann (zB: TCNTn eines 16-Bit-Timers). Auf das 16-Bit-Register muss per Byte zugegriffen werden, indem zwei Lese- oder Schreiboperationen verwendet werden. Eine Unterbrechung mitten in einem 16-Bit-Zugriff oder ein Einzelschritt durch diese Situation kann zu fehlerhaften Werten führen.
Eingeschränkter E/A-Registerzugriff
Bestimmte Register können nicht gelesen werden, ohne ihren Inhalt zu beeinflussen. Solche Register umfassen solche, die Flags enthalten, die durch Lesen gelöscht werden, oder gepufferte Datenregister (z. B.: UDR). Das Software-Front-End verhindert das Lesen dieser Register im angehaltenen Modus, um die beabsichtigte nicht-intrusive Natur des OCD-Debugging zu bewahren. Darüber hinaus können einige Register nicht sicher geschrieben werden, ohne dass Nebenwirkungen auftreten – diese Register sind schreibgeschützt. Zum Bspampauf:

  • Flag-Register, bei denen ein Flag gelöscht wird, indem '1' in ein beliebiges geschrieben wird. Diese Register sind schreibgeschützt.
  • UDR- und SPDR-Register können nicht gelesen werden, ohne den Zustand des Moduls zu beeinflussen. Diese Register sind es nicht

4.4.12. Besondere Überlegungen zu megaAVR
Software-Haltepunkte
Da es eine frühe Version des OCD-Moduls enthält, unterstützt ATmega128[A] nicht die Verwendung der BREAK-Anweisung für Software-Haltepunkte.
JTAG Uhr
Die Zieltaktfrequenz muss im Software-Frontend genau angegeben werden, bevor eine Debug-Sitzung gestartet wird. Aus Synchronisationsgründen ist die JTAG Das TCK-Signal muss für eine zuverlässige Fehlersuche weniger als ein Viertel der Zieltaktfrequenz betragen. Bei der Programmierung über den JTAG Schnittstelle wird die TCK-Frequenz durch die maximale Nennfrequenz des Zielgeräts und nicht durch die tatsächlich verwendete Taktfrequenz begrenzt.
Beachten Sie bei Verwendung des internen RC-Oszillators, dass die Frequenz von Gerät zu Gerät variieren kann und von Temperatur und V beeinflusst wirdCC Änderungen. Seien Sie bei der Angabe der Zieltaktfrequenz zurückhaltend.
JTAGEN- und OCDEN-Sicherungen

Der JTAG Schnittstelle wird mit dem J aktiviertTAGEN-Sicherung, die standardmäßig programmiert ist. Dies ermöglicht den Zugriff auf die JTAG Programmierschnittstelle. Durch diesen Mechanismus kann die OCDEN-Sicherung programmiert werden (standardmäßig ist OCDEN nicht programmiert). Dies ermöglicht den Zugriff auf die OCD, um das Debuggen des Geräts zu erleichtern. Das Software-Front-End stellt immer sicher, dass die OCDEN-Sicherung beim Beenden einer Sitzung unprogrammiert bleibt, wodurch unnötiger Stromverbrauch durch das OCD-Modul eingeschränkt wird. Wenn das JTAGEN-Fuse ist unbeabsichtigt deaktiviert, sie kann nur mit SPI oder High Vol wieder aktiviert werdentage Programmiermethoden.
Wenn das JTAGEN-Sicherung ist programmiert, die JTAG Die Schnittstelle kann in der Firmware weiterhin durch Setzen des JTD-Bits deaktiviert werden. Dadurch wird der Code nicht mehr debuggbar und sollte nicht beim Versuch einer Debugsitzung durchgeführt werden. Wenn ein solcher Code beim Starten einer Debug-Sitzung bereits auf dem Atmel AVR-Gerät ausgeführt wird, aktiviert der Atmel-ICE die RESET-Leitung während der Verbindung. Wenn diese Leitung korrekt verdrahtet ist, wird das Ziel-AVR-Gerät zum Zurücksetzen gezwungen, wodurch ein JTAG Verbindung.
Wenn das JTAG Schnittstelle aktiviert ist, wird die JTAG Stifte können nicht für alternative Stiftfunktionen verwendet werden. Sie werden engagiert bleiben JTAG Stifte, bis entweder das JTAG Die Schnittstelle wird deaktiviert, indem das JTD-Bit aus dem Programmcode gesetzt oder das J gelöscht wirdTAGEN-Sicherung über eine Programmierschnittstelle.

Die Atmel-ICE-Debugger-Programmierer - Symbol 1 Tipp:
Achten Sie darauf, das Kontrollkästchen „Externen Reset verwenden“ sowohl im Programmierdialog als auch im Debug-Optionsdialog zu aktivieren, damit der Atmel-ICE die RESET-Leitung aktivieren und den J wieder aktivieren kannTAG Schnittstelle auf Geräten, auf denen Code ausgeführt wird, der die JTAG Schnittstelle durch Setzen des JTD-Bits.
IDR/OCDR-Ereignisse
Das IDR (In-Out-Datenregister) ist auch als OCDR (On-Chip-Debug-Register) bekannt und wird vom Debugger ausgiebig verwendet, um Informationen aus der MCU zu lesen und auf die MCU zu schreiben, wenn sie sich während einer Debug-Sitzung im angehaltenen Modus befindet. Wenn das Anwendungsprogramm im Run-Modus ein Datenbyte in das OCDR-Register des zu debuggenden AVR-Geräts schreibt, liest der Atmel-ICE diesen Wert aus und zeigt ihn im Nachrichtenfenster des Software-Frontends an. Das OCDR-Register wird alle 50 ms abgefragt, sodass das Schreiben mit einer höheren Frequenz KEINE zuverlässigen Ergebnisse liefert. Wenn die Stromversorgung des AVR-Geräts während des Debuggens unterbrochen wird, können falsche OCDR-Ereignisse gemeldet werden. Dies geschieht, weil der Atmel-ICE das Gerät möglicherweise immer noch als Zielvolumen abfragttage unterschreitet die minimale Betriebslautstärke des AVRtage.
4.4.13. AVR XMEGA Besondere Überlegungen
OCD und Taktung
Wenn die MCU in den gestoppten Modus eintritt, wird der OCD-Takt als MCU-Takt verwendet. Die OCD-Uhr ist entweder die JTAG TCK, wenn das JTAG -Schnittstelle verwendet wird, oder PDI_CLK, wenn die PDI-Schnittstelle verwendet wird.
E/A-Module im gestoppten Modus
Im Gegensatz zu früheren MegaAVR-Geräten von Atmel werden bei XMEGA die I/O-Module im Stop-Modus gestoppt. Dies bedeutet, dass USART-Übertragungen unterbrochen werden, Timer (und PWM) gestoppt werden.
Hardware-Haltepunkte
Es gibt vier Hardware-Breakpoint-Komparatoren – zwei Adresskomparatoren und zwei Wertkomparatoren. Sie haben bestimmte Einschränkungen:

  • Alle Breakpoints müssen vom gleichen Typ sein (Programm oder Daten)
  • Alle Datenhaltepunkte müssen sich im selben Speicherbereich befinden (I/O, SRAM oder XRAM)
  • Es kann nur einen Haltepunkt geben, wenn ein Adressbereich verwendet wird

Hier sind die verschiedenen Kombinationen, die eingestellt werden können:

  • Zwei einzelne Daten- oder Programmadressenhaltepunkte
  • Ein Haltepunkt für einen Daten- oder Programmadressbereich
  • Zwei einzelne Datenadressenhaltepunkte mit Einzelwertvergleich
  • Ein Datenhaltepunkt mit Adressbereich, Wertebereich oder beidem

Atmel Studio teilt Ihnen mit, ob der Haltepunkt nicht gesetzt werden kann und warum. Daten-Breakpoints haben Vorrang vor Programm-Breakpoints, wenn Software-Breakpoints vorhanden sind.
Externer Reset und PDI physikalisch
Die physikalische PDI-Schnittstelle verwendet die Rücksetzleitung als Taktgeber. Während des Debuggens sollte der Reset-Pullup 10k oder mehr betragen oder entfernt werden. Alle Reset-Kondensatoren sollten entfernt werden. Andere externe Reset-Quellen sollten getrennt werden.
Debugging mit Sleep für ATxmegaA1 rev H und früher
Bei früheren Versionen von ATxmegaA1-Geräten bestand ein Fehler, der verhinderte, dass die OCD aktiviert wurde, während sich das Gerät in bestimmten Ruhemodi befand. Es gibt zwei Problemumgehungen, um OCD wieder zu aktivieren:

  • Gehen Sie in den Atmel-ICE. Optionen im Menü Extras und aktivieren Sie „Immer externen Reset aktivieren, wenn Gerät neu programmiert wird“.
  • Führen Sie eine Chip-Löschung durch

Die Schlafmodi, die diesen Fehler auslösen, sind:

  • Stromausfall
  • Stromspar
  • Stehen zu
  • Erweiterter Standby

4.4.1.debugWIRE Besondere Überlegungen
Der debugWIRE-Kommunikationspin (dW) befindet sich physisch auf demselben Pin wie der externe Reset (RESET). Eine externe Reset-Quelle wird daher nicht unterstützt, wenn die debugWIRE-Schnittstelle aktiviert ist.
Die debugWIRE Enable-Fuse (DWEN) muss auf dem Zielgerät gesetzt werden, damit die debugWIRE-Schnittstelle funktioniert. Diese Sicherung ist standardmäßig nicht programmiert, wenn das Atmel AVR-Gerät ab Werk versendet wird. Die debugWIRE-Schnittstelle selbst kann nicht zum Setzen dieser Sicherung verwendet werden. Um die DWEN-Sicherung zu setzen, muss der SPI-Modus verwendet werden. Das Software-Frontend erledigt dies automatisch, sofern die erforderlichen SPI-Pins verbunden sind. Es kann auch über die SPI-Programmierung im Programmierdialog von Atmel Studio eingestellt werden.
Entweder: Versuchen Sie, eine Debug-Sitzung auf dem debugWIRE-Teil zu starten. Wenn die debugWIRE-Schnittstelle nicht aktiviert ist, bietet Atmel Studio an, es erneut zu versuchen oder zu versuchen, debugWIRE mithilfe der SPI-Programmierung zu aktivieren. Wenn Sie den vollständigen SPI-Header angeschlossen haben, wird debugWIRE aktiviert und Sie werden aufgefordert, das Ziel einzuschalten. Dies ist erforderlich, damit die Sicherungswechsel wirksam werden.
Oder: Öffnen Sie den Programmierdialog im SPI-Modus und überprüfen Sie, ob die Signatur mit dem richtigen Gerät übereinstimmt. Überprüfen Sie die DWEN-Sicherung, um debugWIRE zu aktivieren.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Es ist wichtig, die SPIEN-Sicherung programmiert, die RSTDISBL-Sicherung unprogrammiert zu lassen! Wenn Sie dies nicht tun, bleibt das Gerät im debugWIRE-Modus hängen und High VoltagDie Programmierung ist erforderlich, um die DWEN-Einstellung zurückzusetzen.
Um die debugWIRE-Schnittstelle zu deaktivieren, verwenden Sie High Voltage Programmierung zum Deprogrammieren der DWEN-Sicherung. Verwenden Sie alternativ die debugWIRE-Schnittstelle selbst, um sich vorübergehend selbst zu deaktivieren, wodurch die SPI-Programmierung stattfinden kann, vorausgesetzt, die SPIEN-Sicherung ist gesetzt.
Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig:
Wenn die SPIEN-Sicherung NICHT programmiert gelassen wurde, kann Atmel Studio diesen Vorgang nicht abschließen, und High VoltagDie Programmierung muss verwendet werden.
Wählen Sie während einer Debug-Sitzung die Menüoption „debugWIRE deaktivieren und schließen“ aus dem Menü „Debug“. DebugWIRE wird vorübergehend deaktiviert, und Atmel Studio verwendet die SPI-Programmierung, um die DWEN-Sicherung zu deprogrammieren.

Wenn die DWEN-Sicherung programmiert ist, können einige Teile des Uhrensystems in allen Schlafmodi laufen. Dies erhöht den Stromverbrauch des AVR im Ruhemodus. Die DWEN-Sicherung sollte daher immer deaktiviert werden, wenn debugWIRE nicht verwendet wird.
Beim Entwerfen einer Zielanwendungsplatine, auf der debugWIRE verwendet wird, müssen die folgenden Überlegungen für den korrekten Betrieb angestellt werden:

  • Pullup-Widerstände auf der dW/(RESET)-Leitung dürfen nicht kleiner (stärker) als 10kΩ sein. Der Pull-up-Widerstand ist für die debugWIRE-Funktionalität nicht erforderlich, da das Debugger-Tool bereitstellt
  • Alle mit dem RESET-Pin verbundenen Stabilisierungskondensatoren müssen bei Verwendung von debugWIRE getrennt werden, da sie den korrekten Betrieb der Schnittstelle stören
  • Alle externen Reset-Quellen oder andere aktive Treiber auf der RESET-Leitung müssen getrennt werden, da sie den korrekten Betrieb der Schnittstelle stören können

Programmieren Sie niemals die Lock-Bits auf dem Zielgerät. Die debugWIRE-Schnittstelle erfordert, dass Sperrbits gelöscht werden, um korrekt zu funktionieren.
4.4.15. debugWIRE-Software-Haltepunkte
Der debugWIRE OCD ist im Vergleich zum Atmel megaAVR (JTAG) Zwangsstörung. Das bedeutet, dass dem Benutzer zu Debugging-Zwecken keine Programmzähler-Breakpoint-Vergleicher zur Verfügung stehen. Ein solcher Komparator existiert für Run-to-Cursor- und Einzelschrittoperationen, aber zusätzliche Benutzerhaltepunkte werden in der Hardware nicht unterstützt.
Stattdessen muss der Debugger die AVR BREAK-Anweisung verwenden. Diese Anweisung kann in FLASH platziert werden, und wenn sie zur Ausführung geladen wird, bewirkt sie, dass die AVR-CPU in den angehaltenen Modus eintritt. Um Breakpoints während des Debuggens zu unterstützen, muss der Debugger an dem Punkt, an dem der Benutzer einen Breakpoint anfordert, eine BREAK-Anweisung in FLASH einfügen. Die ursprüngliche Anweisung muss zum späteren Ersetzen zwischengespeichert werden.
Beim Einzelschritt über eine BREAK-Anweisung muss der Debugger die ursprüngliche zwischengespeicherte Anweisung ausführen, um das Programmverhalten beizubehalten. Im Extremfall muss der BREAK aus FLASH entfernt und später ersetzt werden. Alle diese Szenarien können beim Einzelschritt von Breakpoints zu offensichtlichen Verzögerungen führen, die noch verschlimmert werden, wenn die Zieltaktfrequenz sehr niedrig ist.
Es wird daher empfohlen, wenn möglich, die folgenden Richtlinien zu beachten:

  • Führen Sie das Ziel während des Debuggens immer so häufig wie möglich aus. Die physische debugWIRE-Schnittstelle wird von der Zieluhr getaktet.
  • Versuchen Sie, die Anzahl der Breakpoint-Hinzufügungen und -Entfernungen zu minimieren, da jeweils eine FLASH-Seite auf dem Ziel ersetzt werden muss
  • Versuchen Sie, eine kleine Anzahl von Breakpoints gleichzeitig hinzuzufügen oder zu entfernen, um die Anzahl der FLASH-Seitenschreibvorgänge zu minimieren
  • Vermeiden Sie nach Möglichkeit das Platzieren von Haltepunkten auf Doppelwortanweisungen

4.4.16. Verständnis von debugWIRE und der DWEN-Sicherung
Wenn aktiviert, übernimmt die debugWIRE-Schnittstelle die Kontrolle über den /RESET-Pin des Geräts, wodurch sie sich gegenseitig von der SPI-Schnittstelle ausschließt, die diesen Pin ebenfalls benötigt. Befolgen Sie beim Aktivieren und Deaktivieren des debugWIRE-Moduls einen dieser beiden Ansätze:

  • Lassen Sie Atmel Studio sich um die Dinge kümmern (empfohlen)
  • Setzen und löschen Sie DWEN manuell (Vorsicht, nur fortgeschrittene Benutzer!)

Die Atmel-ICE-Debugger-Programmierer – Abbildung 16 Wichtig: Bei der manuellen Manipulation von DWEN ist es wichtig, dass die SPIEN-Sicherung gesetzt bleibt, um zu vermeiden, dass High-Vol verwendet werden musstage-Programmierung
Abbildung 4-14. Verständnis von debugWIRE und der DWEN-SicherungDie Atmel-ICE-Debugger-Programmierer – Abbildung 304.4.17.TinyX-OCD (UPDI) Besondere Überlegungen
Der UPDI-Daten-Pin (UPDI_DATA) kann je nach Ziel-AVR-Gerät ein dedizierter Pin oder ein gemeinsam genutzter Pin sein. Ein gemeinsam genutzter UPDI-Pin ist 12-V-tolerant und kann so konfiguriert werden, dass er als /RESET oder GPIO verwendet wird. Weitere Einzelheiten zur Verwendung des Pins in diesen Konfigurationen finden Sie unter Physikalische UPDI-Schnittstelle.
Auf Geräten, die das CRCSCAN-Modul (Cyclic Redundancy Check Memory Scan) enthalten, sollte dieses Modul während des Debuggens nicht im kontinuierlichen Hintergrundmodus verwendet werden. Das OCD-Modul verfügt über begrenzte Hardware-Breakpoint-Komparator-Ressourcen, sodass BREAK-Befehle in Flash (Software-Breakpoints) eingefügt werden können, wenn mehr Breakpoints erforderlich sind, oder sogar während Code-Stepping auf Quellebene. Das CRC-Modul könnte diesen Haltepunkt fälschlicherweise als Beschädigung des Flash-Speicherinhalts erkennen.
Das CRCSCAN-Modul kann auch so konfiguriert werden, dass es vor dem Booten einen CRC-Scan durchführt. Im Falle einer CRC-Nichtübereinstimmung bootet das Gerät nicht und scheint sich in einem gesperrten Zustand zu befinden. Die einzige Möglichkeit, das Gerät aus diesem Zustand wiederherzustellen, besteht darin, eine vollständige Chiplöschung durchzuführen und entweder ein gültiges Flash-Image zu programmieren oder den Preboot-CRCSCAN zu deaktivieren. (Ein einfaches Löschen des Chips führt zu einem leeren Flash mit ungültigem CRC, und das Teil bootet daher immer noch nicht.) Atmel Studio deaktiviert automatisch die CRCSCAN-Sicherungen, wenn ein Gerät in diesem Zustand gelöscht wird.
Beim Entwerfen einer Leiterplatte für eine Zielanwendung, bei der die UPDI-Schnittstelle verwendet wird, müssen die folgenden Überlegungen für den korrekten Betrieb angestellt werden:

  • Pullup-Widerstände auf der UPDI-Leitung dürfen nicht kleiner (stärker) als 10kΩ sein. Ein Pulldown-Widerstand sollte nicht verwendet werden oder bei Verwendung von UPDI entfernt werden. Das UPDI-Physical ist Push-Pull-fähig, sodass nur ein schwacher Pull-up-Widerstand erforderlich ist, um ein falsches Startbit-Triggern zu verhindern, wenn die Leitung vorhanden ist
  • Wenn der UPDI-Pin als RESET-Pin verwendet werden soll, muss bei Verwendung von UPDI ein Stabilisierungskondensator abgeklemmt werden, da er den korrekten Betrieb der Schnittstelle stört
  • Wenn der UPDI-Pin als RESET- oder GPIO-Pin verwendet wird, müssen alle externen Treiber auf der Leitung während des Programmierens oder Debuggens getrennt werden, da sie den korrekten Betrieb der Schnittstelle stören können.

Hardwarebeschreibung

5.1. LEDs
Auf der Oberseite des Atmel-ICE befinden sich drei LEDs, die den Status aktueller Debug- oder Programmiersitzungen anzeigen.Die Atmel-ICE-Debugger-Programmierer – Abbildung 31

Tisch 5-1. Leuchtdioden

LED Funktion

Beschreibung

Links Zielleistung GRÜN, wenn die Zielleistung in Ordnung ist. Blinken zeigt einen Zielstromfehler an. Leuchtet nicht auf, bis eine Programmier-/Debugging-Sitzungsverbindung gestartet wird.
Mitte Netzstromversorgung ROT, wenn die Stromversorgung der Hauptplatine in Ordnung ist.
Rechts Status Blinkt GRÜN, wenn das Ziel läuft/schreitet. AUS, wenn das Ziel gestoppt ist.

5.2 . Rückwand
Auf der Rückseite des Atmel-ICE befindet sich der Micro-B-USB-Anschluss.Die Atmel-ICE-Debugger-Programmierer – Abbildung 325.3. Bodenplatte
Auf der Unterseite des Atmel-ICE befindet sich ein Aufkleber mit der Seriennummer und dem Herstellungsdatum. Geben Sie diese Details an, wenn Sie technischen Support anfordern.Die Atmel-ICE-Debugger-Programmierer – Abbildung 335.4. Architekturbeschreibung
Die Atmel-ICE-Architektur ist im Blockdiagramm in Abbildung 5-1 dargestellt.
Abbildung 5-1. Atmel-ICE-BlockdiagrammDie Atmel-ICE-Debugger-Programmierer – Abbildung 345.4.1. Atmel-ICE-Hauptplatine
Die Stromversorgung des Atmel-ICE erfolgt über den USB-Bus, der von einem Abwärtsschaltregler auf 3.3 V geregelt wird. Der VTG-Pin wird nur als Referenzeingang verwendet, und eine separate Stromversorgung speist die variable Lautstärketage-Seite der integrierten Pegelwandler. Das Herzstück des Atmel-ICE-Mainboards ist der Atmel AVR UC3-Mikrocontroller AT32UC3A4256, der je nach zu verarbeitenden Aufgaben zwischen 1 MHz und 60 MHz läuft. Der Mikrocontroller enthält ein On-Chip-USB-2.0-Hochgeschwindigkeitsmodul, das einen hohen Datendurchsatz zum und vom Debugger ermöglicht.
Die Kommunikation zwischen dem Atmel-ICE und dem Zielgerät erfolgt über eine Reihe von Pegelwandlern, die Signale zwischen der Betriebslautstärke des Ziels verschiebentage und das interne Voltage-Ebene auf dem Atmel-ICE. Ebenfalls im Signalweg sind Zener-OvervoltagE-Schutzdioden, Vorwiderstände, Induktivfilter und ESD-Schutzdioden. Alle Signalkanäle können im Bereich 1.62V bis 5.5V betrieben werden, wobei die Atmel-ICE-Hardware keine höhere Lautstärke austreiben kanntage als 5.0 V. Die maximale Betriebsfrequenz variiert je nach verwendeter Zielschnittstelle.
5.4.2. Atmel-ICE-Zielanschlüsse
Der Atmel-ICE hat keine aktive Sonde. Ein 50-mil-IDC-Kabel wird verwendet, um entweder direkt oder über die in einigen Kits enthaltenen Adapter eine Verbindung zur Zielanwendung herzustellen. Weitere Informationen zu Verkabelung und Adaptern finden Sie im Abschnitt Atmel-ICE zusammenbauen
5.4.3. Teilenummern der Atmel-ICE-Zielanschlüsse
Um das Atmel-ICE 50-mil-IDC-Kabel direkt an eine Zielplatine anzuschließen, sollte jeder standardmäßige 50-mil-10-Pin-Header ausreichen. Es wird empfohlen, codierte Stiftleisten zu verwenden, um die richtige Ausrichtung beim Anschließen an das Ziel sicherzustellen, wie z. B. die auf der im Kit enthaltenen Adapterplatine verwendeten.
Die Teilenummer für diesen Header lautet: FTSH-105-01-L-DV-KAP von SAMTEC

Software-Integration

6.1. Atmel-Studio
6.1.1.Softwareintegration in Atmel Studio
Atmel Studio ist eine integrierte Entwicklungsumgebung (IDE) zum Schreiben und Debuggen von Atmel AVR- und Atmel SAM-Anwendungen in Windows-Umgebungen. Atmel Studio bietet ein Projektmanagement-Tool, source file Editor, Simulator, Assembler und Frontend für C/C++, Programmierung, Emulation und On-Chip-Debugging.
Atmel Studio Version 6.2 oder höher muss in Verbindung mit Atmel-ICE verwendet werden.
6.1.2. Programmieroptionen
Atmel Studio unterstützt die Programmierung von Atmel AVR- und Atmel SAM ARM-Geräten mit Atmel-ICE. Der Programmierdialog kann so konfiguriert werden, dass er JTAG, aWire, SPI, PDI, TPI, SWD-Modi, je nach ausgewähltem Zielgerät.
Bei der Konfiguration der Taktfrequenz gelten für unterschiedliche Schnittstellen und Zielfamilien unterschiedliche Regeln:

  • Die SPI-Programmierung verwendet den Zieltakt. Konfigurieren Sie die Taktfrequenz so, dass sie niedriger als ein Viertel der Frequenz ist, mit der das Zielgerät derzeit läuft.
  • JTAG Die Programmierung auf Atmel megaAVR-Geräten wird von der getaktet. Dies bedeutet, dass die Programmiertaktfrequenz auf die maximale Betriebsfrequenz des Geräts selbst begrenzt ist. (Normalerweise 16 MHz.)
  • AVR XMEGA-Programmierung auf beiden JTAG und PDI-Schnittstellen wird vom Programmierer getaktet. Dies bedeutet, dass die Programmiertaktfrequenz auf die maximale Betriebsfrequenz des Geräts (normalerweise 32 MHz) begrenzt ist.
  • AVR UC3 Programmierung auf JTAG Schnittstelle wird vom Programmierer getaktet. Das bedeutet, dass die Programmiertaktfrequenz auf die maximale Betriebsfrequenz des Geräts selbst begrenzt ist. (Begrenzt auf 33 MHz.)
  • Die AVR UC3-Programmierung auf der aWire-Schnittstelle wird durch die Die optimale Frequenz wird durch die SAB-Busgeschwindigkeit im Zielgerät vorgegeben. Der Atmel-ICE-Debugger passt die aWire-Baudrate automatisch an, um diese Kriterien zu erfüllen. Obwohl dies normalerweise nicht erforderlich ist, kann der Benutzer die maximale Baudrate bei Bedarf begrenzen (z. B. in lauten Umgebungen).
  • Die SAM-Geräteprogrammierung an der SWD-Schnittstelle wird vom Programmiergerät getaktet. Die von Atmel-ICE unterstützte maximale Frequenz beträgt 2 MHz. Die Frequenz sollte die Ziel-CPU-Frequenz multipliziert mit 10, fSWD ≤ 10fSYSCLK nicht überschreiten.

6.1.3.Debug-Optionen
Beim Debuggen eines Atmel AVR-Geräts mit Atmel Studio die Registerkarte „Tool“ in den Projekteigenschaften view enthält einige wichtige Konfigurationsoptionen. Die Optionen, die einer weiteren Erläuterung bedürfen, werden hier detailliert beschrieben.
Zieltaktfrequenz
Die genaue Einstellung der Zieltaktfrequenz ist entscheidend, um ein zuverlässiges Debugging des Atmel megaAVR-Geräts über den JTAG Schnittstelle. Diese Einstellung sollte weniger als ein Viertel der niedrigsten Betriebsfrequenz Ihres AVR-Zielgeräts in der zu debuggenden Anwendung betragen. Weitere Informationen finden Sie unter Besondere Überlegungen zu megaAVR.
Debug-Sitzungen auf debugWIRE-Zielgeräten werden vom Zielgerät selbst getaktet, und daher ist keine Frequenzeinstellung erforderlich. Der Atmel-ICE wählt zu Beginn einer Debug-Sitzung automatisch die richtige Baudrate für die Kommunikation aus. Wenn Sie jedoch Zuverlässigkeitsprobleme im Zusammenhang mit einer lauten Debug-Umgebung haben, bieten einige Tools die Möglichkeit, die debugWIRE-Geschwindigkeit auf einen Bruchteil der „empfohlenen“ Einstellung zu erzwingen.
Debug-Sitzungen auf AVR XMEGA-Zielgeräten können bis zur maximalen Geschwindigkeit des Geräts selbst (normalerweise 32 MHz) getaktet werden.
Debug-Sitzungen auf AVR UC3-Zielgeräten über das JTAG Die Schnittstelle kann bis zur maximalen Geschwindigkeit des Geräts selbst getaktet werden (begrenzt auf 33 MHz). Die optimale Frequenz liegt jedoch leicht unter dem aktuellen SAB-Takt auf dem Zielgerät.
Debug-Sitzungen auf UC3-Zielgeräten über die aWire-Schnittstelle werden vom Atmel-ICE selbst automatisch auf die optimale Baudrate abgestimmt. Wenn Sie jedoch Zuverlässigkeitsprobleme im Zusammenhang mit einer lauten Debug-Umgebung haben, bieten einige Tools die Möglichkeit, die aWire-Geschwindigkeit unter eine konfigurierbare Grenze zu zwingen.
Debug-Sitzungen auf SAM-Zielgeräten über die SWD-Schnittstelle können mit dem bis zu zehnfachen CPU-Takt getaktet werden (jedoch begrenzt auf max. 2 MHz).
EEPROM erhalten
Wählen Sie diese Option, um das Löschen des EEPROM während der Neuprogrammierung des Ziels vor einer Debug-Sitzung zu vermeiden.
Externen Reset verwenden
Wenn Ihre Zielanwendung die JTAG Schnittstelle muss der externe Reset während der Programmierung auf Low gezogen werden. Durch Auswahl dieser Option wird vermieden, dass wiederholt gefragt wird, ob der externe Reset verwendet werden soll.
6.2 Befehlszeilenprogramm
Atmel Studio wird mit einem Befehlszeilendienstprogramm namens atprogram geliefert, das zum Programmieren von Zielen mit Atmel-ICE verwendet werden kann. Während der Installation von Atmel Studio wird eine Verknüpfung namens „Atmel Studio 7.0. Eingabeaufforderung“ wurden im Atmel-Ordner im Startmenü erstellt. Durch Doppelklick auf diese Verknüpfung wird eine Eingabeaufforderung geöffnet und es können Programmierbefehle eingegeben werden. Das Befehlszeilendienstprogramm wird im Installationspfad von Atmel Studio im Ordner Atmel/Atmel Studio 7.0/atbackend/ installiert.
Um weitere Hilfe zum Befehlszeilendienstprogramm zu erhalten, geben Sie den folgenden Befehl ein:
atprogramm –hilfe

Erweiterte Debugging-Techniken

7.1. Atmel AVR UC3-Ziele
7.1.1. EVTI / EVTO-Nutzung
Die EVTI- und EVTO-Pins sind auf dem Atmel-ICE nicht zugänglich. Sie können jedoch weiterhin in Verbindung mit anderen externen Geräten verwendet werden.
EVTI kann für folgende Zwecke verwendet werden:

  • Das Ziel kann gezwungen werden, die Ausführung als Reaktion auf ein externes Ereignis zu stoppen. Wenn die Event In Control (EIC)-Bits im DC-Register auf 0b01 geschrieben werden, erzeugt der High-to-Low-Übergang am EVTI-Pin eine Breakpoint-Bedingung. EVTI muss für einen CPU-Taktzyklus niedrig bleiben, um zu garantieren, dass ein Breakpoint gesetzt wird. Das externe Breakpoint-Bit (EXB) in DS wird gesetzt, wenn dies auftritt.
  • Generieren von Ablaufverfolgungssynchronisierungsnachrichten. Wird vom Atmel-ICE nicht verwendet. EVTO kann für folgende Zwecke verwendet werden:
  • Anzeigen, dass die CPU in den Debug-Modus eingetreten ist Das Setzen der EOS-Bits in DC auf 0b01 bewirkt, dass der EVTO-Pin für einen CPU-Taktzyklus auf Low gezogen wird, wenn das Zielgerät in den Debug-Modus eintritt. Dieses Signal kann als Triggerquelle für ein externes Oszilloskop verwendet werden.
  • Zeigt an, dass die CPU einen Breakpoint oder Watchpoint erreicht hat. Durch Setzen des EOC-Bits in einem entsprechenden Breakpoint/Watchpoint Control Register wird der Breakpoint- oder Watchpoint-Status auf dem EVTO-Pin angezeigt. Die EOS-Bits in DC müssen auf 0xb10 gesetzt werden, um diese Funktion zu aktivieren. Der EVTO-Pin kann dann mit einem externen Oszilloskop verbunden werden, um den Watchpoint zu untersuchen
  • Generieren von Trace-Timing-Signalen. Wird vom Atmel-ICE nicht verwendet.

7.2 debugWIRE-Ziele
7.2.1.debugWIRE-Software-Haltepunkte
Der debugWIRE OCD ist im Vergleich zum Atmel megaAVR (JTAG) Zwangsstörung. Das bedeutet, dass dem Benutzer zu Debugging-Zwecken keine Programmzähler-Breakpoint-Vergleicher zur Verfügung stehen. Ein solcher Komparator existiert für Run-to-Cursor- und Einzelschrittoperationen, aber zusätzliche Benutzerhaltepunkte werden in der Hardware nicht unterstützt.
Stattdessen muss der Debugger die AVR BREAK-Anweisung verwenden. Diese Anweisung kann in FLASH platziert werden, und wenn sie zur Ausführung geladen wird, bewirkt sie, dass die AVR-CPU in den angehaltenen Modus eintritt. Um Breakpoints während des Debuggens zu unterstützen, muss der Debugger an dem Punkt, an dem der Benutzer einen Breakpoint anfordert, eine BREAK-Anweisung in FLASH einfügen. Die ursprüngliche Anweisung muss zum späteren Ersetzen zwischengespeichert werden.
Beim Einzelschritt über eine BREAK-Anweisung muss der Debugger die ursprüngliche zwischengespeicherte Anweisung ausführen, um das Programmverhalten beizubehalten. Im Extremfall muss der BREAK aus FLASH entfernt und später ersetzt werden. Alle diese Szenarien können beim Einzelschritt von Breakpoints zu offensichtlichen Verzögerungen führen, die noch verschlimmert werden, wenn die Zieltaktfrequenz sehr niedrig ist.
Es wird daher empfohlen, wenn möglich, die folgenden Richtlinien zu beachten:

  • Führen Sie das Ziel während des Debuggens immer so häufig wie möglich aus. Die physische debugWIRE-Schnittstelle wird von der Zieluhr getaktet.
  • Versuchen Sie, die Anzahl der Breakpoint-Hinzufügungen und -Entfernungen zu minimieren, da jeweils eine FLASH-Seite auf dem Ziel ersetzt werden muss
  • Versuchen Sie, eine kleine Anzahl von Breakpoints gleichzeitig hinzuzufügen oder zu entfernen, um die Anzahl der FLASH-Seitenschreibvorgänge zu minimieren
  • Vermeiden Sie nach Möglichkeit das Platzieren von Haltepunkten auf Doppelwortanweisungen

Versionsverlauf und bekannte Probleme

8.1. Verlauf der Firmware-Veröffentlichung
Tabelle 8-1. Öffentliche Firmware-Revisionen

Firmware-Version (dezimal) Datum

Relevante Änderungen

1.36 29.09.2016 Unterstützung für UPDI-Schnittstelle hinzugefügt (tinyX-Geräte)
USB-Endpunktgröße konfigurierbar gemacht
1.28 27.05.2015 Unterstützung für SPI- und USART-DGI-Schnittstellen hinzugefügt.
Verbesserte SWD-Geschwindigkeit. Kleinere Fehlerbehebungen.
1.22 03.10.2014 Code-Profiling hinzugefügt.
Problem im Zusammenhang mit J behobenTAG Daisy Chains mit mehr als 64 Befehlsbits.
Fix für die ARM-Reset-Erweiterung. Problem mit der Zielleistungsanzeige behoben.
1.13 08.04.2014 JTAG Taktfrequenz fix.
Fix für debugWIRE mit langem SUT.
Befehl zur Kalibrierung des Oszillators behoben.
1.09 12.02.2014 Erste Veröffentlichung von Atmel-ICE.

8.2. Bekannte Probleme bezüglich des Atmel-ICE
8.2.1.Allgemeines

  • Die ersten Atmel-ICE-Chargen hatten einen schwachen USB. Eine neue Überarbeitung wurde mit einem neuen und robusteren USB-Anschluss vorgenommen. Als Übergangslösung wurde auf die bereits produzierten Einheiten der ersten Version Epoxidkleber aufgetragen, um die mechanische Stabilität zu verbessern.

8.2.2. Atmel AVR XMEGA OCD-spezifische Probleme

  • Für die ATxmegaA1-Familie wird nur Revision G oder höher unterstützt

8.2.1. Atmel AVR – Gerätespezifische Probleme

  • Das Aus- und Wiedereinschalten des ATmega32U6 während einer Debug-Sitzung kann zu einem Kontaktverlust mit dem Gerät führen

Produkt-Compliance

9.1. RoHS und WEEE
Der Atmel-ICE und sämtliches Zubehör werden sowohl gemäß der RoHS-Richtlinie (2002/95/EG) als auch der WEEE-Richtlinie (2002/96/EG) hergestellt.
9.2. CE und FCC
Die Atmel-ICE-Einheit wurde gemäß den grundlegenden Anforderungen und anderen relevanten Bestimmungen der Richtlinien getestet:

  • Richtlinie 2004/108/EG (Klasse B)
  • FCC Teil 15 Unterabschnitt B
  • 2002/95/EG (RoHS, WEEE)

Zur Bewertung werden folgende Standards herangezogen:

  • EN 61000-6-1 (2007)
  • EN 61000-6-3 (2007) + A1 (2011)
  • FCC CFR 47 Teil 15 (2013)

Die technische Konstruktion File befindet sich in:
Es wurden alle Anstrengungen unternommen, um die elektromagnetischen Emissionen dieses Produkts zu minimieren. Unter bestimmten Bedingungen kann das System (dieses Produkt ist mit einem Zielanwendungsschaltkreis verbunden) jedoch einzelne Frequenzen elektromagnetischer Komponenten emittieren, die die von den oben genannten Normen zugelassenen Höchstwerte überschreiten. Die Häufigkeit und Größe der Emissionen wird durch mehrere Faktoren bestimmt, einschließlich Layout und Routing der Zielanwendung, mit der das Produkt verwendet wird.

Änderungsverlauf

Dok. Rev.

Datum

Kommentare

42330C 10/2016 UPDI-Schnittstelle hinzugefügt und Firmware-Versionsverlauf aktualisiert
Nr. 42330B 03/2016 • Überarbeitetes Kapitel zum On-Chip-Debugging
• Neue Formatierung des Firmware-Release-Verlaufs im Kapitel „Release-Verlauf“ und „Bekannte Probleme“.
• Pinbelegung des Debug-Kabels hinzugefügt
42330 A 06/2014 Erste Dokumentfreigabe

Atmel®, Atmel-Logo und Kombinationen davon, Ermöglichen unbegrenzter Möglichkeiten®, AVR®, megaAVR®, STK®, winziger AVR®, XMEGA®, und andere sind eingetragene Warenzeichen oder Warenzeichen der Atmel Corporation in den USA und anderen Ländern. ARM®, ARM verbunden® Logo, Kortex®, und andere sind eingetragene Warenzeichen oder Warenzeichen von ARM Ltd. Windows® ist eine eingetragene Marke der Microsoft Corporation in den USA und/oder anderen Ländern. Andere Begriffe und Produktnamen können Marken anderer sein.
HAFTUNGSAUSSCHLUSS: Die Informationen in diesem Dokument werden in Verbindung mit Atmel-Produkten bereitgestellt. Durch dieses Dokument oder in Verbindung mit dem Verkauf von Atmel-Produkten wird keine Lizenz, weder ausdrücklich noch stillschweigend, durch Rechtsverwirkung oder anderweitig, für ein geistiges Eigentumsrecht gewährt. AUSGENOMMEN WIE IN DEN ALLGEMEINEN VERKAUFSBEDINGUNGEN VON ATMEL FESTGELEGT, DIE AUF ATMEL ZU BEFINDEN SIND WEBSITE ÜBERNIMMT ATMEL KEINERLEI HAFTUNG UND SCHLIESST JEGLICHE AUSDRÜCKLICHE, STILLSCHWEIGENDE ODER GESETZLICHE GEWÄHRLEISTUNG IN BEZUG AUF SEINE PRODUKTE AUS, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDE GEWÄHRLEISTUNG DER MARKTFÄHIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK ODER NICHTVERLETZUNG VON RECHTEN DRITTER. ATMEL HAFTET IN KEINEM FALL FÜR DIREKTE, INDIREKTE, FOLGE-, STRAF-, SPEZIELLE ODER ZUFÄLLIGE SCHÄDEN (EINSCHLIESSLICH, OHNE EINSCHRÄNKUNG, SCHADENSERSATZ FÜR VERLUSTE UND GEWINNE, GESCHÄFTSUNTERBRECHUNGEN ODER INFORMATIONSVERLUST), DIE SICH AUS DER NUTZUNG ODER UNFÄHIGKEIT DER NUTZUNG ERGEBEN DIESES DOKUMENT, SELBST WENN ATMEL EMPFOHLEN WURDE
ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN. Atmel gibt keine Zusicherungen oder Gewährleistungen in Bezug auf die Genauigkeit oder Vollständigkeit des Inhalts dieses Dokuments und behält sich das Recht vor, Spezifikationen und Produktbeschreibungen jederzeit ohne Vorankündigung zu ändern. Atmel verpflichtet sich nicht, die hierin enthaltenen Informationen zu aktualisieren. Sofern nicht ausdrücklich anders angegeben, sind Atmel-Produkte nicht für Automobilanwendungen geeignet und dürfen nicht in Automobilanwendungen verwendet werden. Atmel-Produkte sind nicht für die Verwendung als Komponenten in Anwendungen vorgesehen, autorisiert oder garantiert, die das Leben unterstützen oder erhalten sollen.
HAFTUNGSAUSSCHLUSS FÜR SICHERHEITSKRITISCHE, MILITÄR- UND AUTOMOBILANWENDUNGEN: Atmel-Produkte sind nicht für Anwendungen konzipiert und werden nicht in Verbindung mit Anwendungen verwendet, bei denen vernünftigerweise erwartet werden kann, dass der Ausfall solcher Produkte zu erheblichen Verletzungen oder zum Tod von Personen führt („sicherheitskritische Anwendungen“) ohne die ausdrückliche schriftliche Zustimmung eines Atmel-Mitarbeiters. Zu den sicherheitskritischen Anwendungen gehören ohne Einschränkung lebenserhaltende Geräte und Systeme, Ausrüstung oder Systeme für den Betrieb von Nuklearanlagen und Waffensystemen. Atmel-Produkte sind nicht für den Einsatz in Militär- oder Luft- und Raumfahrtanwendungen oder -umgebungen konzipiert oder vorgesehen, es sei denn, Atmel hat dies ausdrücklich als militärtauglich bezeichnet. Atmel-Produkte sind nicht für den Einsatz in Automobilanwendungen konzipiert oder vorgesehen, es sei denn, Atmel hat dies ausdrücklich als automobiltauglich bezeichnet.

Atmel-LogoAtmel Corporation
1600 Technology Drive, San Jose, CA 95110 USA
T: (+1)(408) 441.0311
F: (+1)(408) 436.4200
www.atmel.com
© 2016 Atmel Corporation.
Rev.: Atmel-42330C-Atmel-ICE_Benutzerhandbuch-10/2016
Die Atmel-ICE-Debugger-Programmierer - Symbol 2

Dokumente / Ressourcen

Atmel Die Atmel-ICE-Debugger-Programmierer [pdf] Benutzerhandbuch
Die Atmel-ICE-Debugger-Programmierer, Die Atmel-ICE, Debugger-Programmierer, Programmierer

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *