AVR-8-bit-Mikrocontroller Gruppe 200 - Einsetzen von AVR ... · PDF fileund AVR Studio und...

17
AVR-8-bit-Mikrocontroller Gruppe 200 - Einsetzen von AVR-Tools Teil 204 - AVR Studio Tools_204 05.02.2014 Seite 1 von 17 Teil 201 - Experimentierboards 1 Experimentierboards zum Testen und Programmieren von AVR-Mikrocontroller 1.1 Mit welchen Mitteln AVR-Mikrocontroller programmiert werden 1.2 Starterkit STK500 1.3 Entwicklungs-Tool AVR Dragon 1.4 ATM18-Controllermodul und ATM18-Testboard 1.5 AVR-ALE-Testboard Teil 202 - ISP-Programmieradapter 2 ISP-Programmieradapter 2.1 ISP Bezogen auf die verschiedenen Schnittstellen 2.1.1 Serielle Schnittstelle 2.1.2 Parallele Schnittstelle 2.1.3 USB-Schnittstelle 2.2 CC2-AVR-Programmer alias USBprog 2.2.1 Aufbau 2.2.2 Arbeitsweise 2.2.3 Firmware-Änderung Teil 203 - AVR-ALE-Testboard 3 Beschreibung des AVR-ALE-Testboard 3.1 Schaltungsaufbau 3.2 Stromversorgung 3.3 Einsatz verschiedener AVR-Mikrocontroller 3.4 Anzahl LEDs und Tasten 3.5 LCD-Interface und 20x4-LCD 3.5.1 Erzeugung des Enable-Signals für das LCD 3.5.2 LCD-Backlight 3.6 Ansteuerung von Relais 3.7 RS-232-Schnittstelle 3.8 USART-Testboard-Schnittstelle Teil 204 - AVR Studio 4 Einsatz des AVR Studio 4.1 AVR Studio installieren 4.2 Testboard und Programmer zusammenschalten 4.2.1 Treiber AVRISP mkII neu installieren 4.3 Starten von AVR Studio 4.3.1 AVR Studio und CC2-AVR-Programmer 4.3.2 Mikrocontroller-Einstellungen im AVR Studio Teil 205 - Assembler und AVR Studio 5 Assembler und AVR Studio 5.1 Der Übersetzer (Assembler) 5.2 Ein neues Projekt erzeugen 5.2.1 Der Projekt-Bereich 5.2.2 Bearbeiten der Assemblerdatei 5.2.3 Assemblieren des Quell-Codes 5.3 Simulation des Codes 5.3.1 Programmausführung im Einzelschrittverfahren 5.3.2 Debugger-Stopp-Punkte 5.4 Verändern des Programmtextes

Transcript of AVR-8-bit-Mikrocontroller Gruppe 200 - Einsetzen von AVR ... · PDF fileund AVR Studio und...

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 1 von 17

Teil 201 - Experimentierboards1 Experimentierboards zum Testen und Programmieren von AVR-Mikrocontroller

1.1 Mit welchen Mitteln AVR-Mikrocontroller programmiert werden1.2 Starterkit STK5001.3 Entwicklungs-Tool AVR Dragon1.4 ATM18-Controllermodul und ATM18-Testboard1.5 AVR-ALE-Testboard

Teil 202 - ISP-Programmieradapter2 ISP-Programmieradapter

2.1 ISP Bezogen auf die verschiedenen Schnittstellen2.1.1 Serielle Schnittstelle2.1.2 Parallele Schnittstelle2.1.3 USB-Schnittstelle

2.2 CC2-AVR-Programmer alias USBprog2.2.1 Aufbau2.2.2 Arbeitsweise2.2.3 Firmware-Änderung

Teil 203 - AVR-ALE-Testboard3 Beschreibung des AVR-ALE-Testboard

3.1 Schaltungsaufbau3.2 Stromversorgung3.3 Einsatz verschiedener AVR-Mikrocontroller3.4 Anzahl LEDs und Tasten3.5 LCD-Interface und 20x4-LCD

3.5.1 Erzeugung des Enable-Signals für das LCD3.5.2 LCD-Backlight

3.6 Ansteuerung von Relais3.7 RS-232-Schnittstelle3.8 USART-Testboard-Schnittstelle

Teil 204 - AVR Studio4 Einsatz des AVR Studio

4.1 AVR Studio installieren4.2 Testboard und Programmer zusammenschalten

4.2.1 Treiber AVRISP mkII neu installieren4.3 Starten von AVR Studio

4.3.1 AVR Studio und CC2-AVR-Programmer4.3.2 Mikrocontroller-Einstellungen im AVR Studio

Teil 205 - Assembler und AVR Studio5 Assembler und AVR Studio

5.1 Der Übersetzer (Assembler)5.2 Ein neues Projekt erzeugen

5.2.1 Der Projekt-Bereich5.2.2 Bearbeiten der Assemblerdatei5.2.3 Assemblieren des Quell-Codes

5.3 Simulation des Codes5.3.1 Programmausführung im Einzelschrittverfahren5.3.2 Debugger-Stopp-Punkte

5.4 Verändern des Programmtextes

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 2 von 17

5.4.1 Überwachen von Variablen5.4.2 Anzeigen der Prozessordetails5.4.3 Speichern des Projekts

5.5 Erzeugen eines weiteren ASM-Projektes im Schnelldurchgang5.6 Flashen eines ASM-Programms in ein Mikrocontroller ATmega88

Teil 206 - C-Compiler und AVR Studio6 CodeVisionAVR C-Compiler und AVR Studio

6.1 CodeVisionAVR C-Compiler installieren6.2 Erzeugen eines C-Projektes

6.2.1 Ein neues Projekt beginnen6.2.2 Ein C-Projekt generieren

6.3 Einbinden von AVR Studio in den CVAVR6.4 AVR Studio Debugger für CVAVR6.5 Flashen eines C-Programms in ein Mikrocontroller ATmega88

Teil 207 - Editor - UltraEdit7 Editor - UltraEdit

7.1 Kopf- und Fuss-Zeile7.1.1 Einstellungen für Assembler-Programme7.1.2 Einstellungen für C-Compiler-Programme

7.2. Einträge in das WORDFILE.TXT7.2.1 Grundsätzliches Format7.2.2 Syntax Befehle

7.3 Wortsammlung für AVR-Assembler7.4 Wortsammlung für CodeVisionAVR C-Compiler

HinweisExterne Anschaltungen und Hardware-Erweiterungen werden in der Gruppe 400 - ASM-Projekte undin der Gruppe 600 - C-Projekte detailliert beschrieben.

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 3 von 17

Vorbemerkung

Nichts ist vollkommen - und nichts ist endgültig! So auch nicht dieses Tutorial! Deshalb bitte immererst nach dem neuesten Datum schauen. Vielleicht gibt es wieder etwas Neues oder eine Fehlerbe-reinigung oder eine etwas bessere Erklärung. Wer Fehler findet oder Verbesserungen vorzuschlagenhat, bitte melden ([email protected]).

Immer nach dem Motto: Das Bessere ist Feind des Guten und nichts ist so gut, dass es nicht nochverbessert werden könnte.

Bild-, Beispiel-, Form- und Tabellen-Nummern sind nach folgendem Schema aufgebaut, damit beiEinfügungen/Löschungen nicht alle Nummern wieder geändert werden müssen (hier bunt dargestellt):

Darstellungsart Abschnitt-LfdNummer: Beschreibung allgemeines Schema

Bild 5.1.4-02: Daten-Adress-Raum Benummerung eines Bildes

Beispiel 5.1.4-03: EEPROM-Speicherung Benummerung eines Beispiels

Form 5.1.3-01: Die main-Funktion Benummerung einer Formdarstellung

Tabelle 5.1.4-01: Schlüsselwörter vom CVAVR Benummerung einer Tabelle

Gravierende Änderungen gegenüber der Vorversion

1.Völlig neue Strukturierung in Gruppen und Teile, um das Tutorial umfassend ordnen zu können. DieAbschnitte in den Teilen sind weitgehend erhalten geblieben.

Gruppenbezeichnung Kurzbezeichnung

Gruppe 100: Technologie der AVR-8-Bit-Mikrocontroller Technologie

Gruppe 200: Einsetzen von AVR-Tools Tools

Gruppe 300: Arbeiten mit AVR-Assembler ASM-Programmierung3xx_Programm_yyyyy ASM-Programm-Beispiel

Gruppe 400: AVR-ASM-Projekte ASM-Projekte4xx_Projekt_yyyyy ASM-Projekt-Bezeichnung

Gruppe 500: CodeVisionAVR C-Compiler C-Programmierung5xx_Programm_yyyyy C-Programm-Beispiel

Gruppe 600: AVR-C-Projekte C-Projekte6xx_Projekt_yyyyy C-Projekt-Bezeichnung

xx steht für die laufende Nummer innerhalb des Teils, in dem das Programm bzw. das Projekt er-scheint und yyyyy steht für die Programm- bzw. Projekt-Kurz-Bezeichnung.

2.Notwendige Änderungen auf Grund Neuinstallation von Windows 7.

3.Windows 7 machte eine Installation von CodeVisionAVR V2.60 als Vollversion notwendig. Darausleiten sich auch viele Änderungen im Detail für die C-Programmierung (Gruppe 500) ab.

4.Neu-Installation von AVR Studio Vers. 4.19 unter Windows 7

5.Zur Demonstration des Tools AVR Studio ist in Gruppe 200 eine Trennung in Teil 205 - Assemblerund AVR Studio und Teil 206 - C-Compiler und AVR Studio vorgenommen worden.

6.ASM- und C-Projekte werden jeweils in eigenen Gruppen gesammelt (Gruppe 400 für Assembler-und Gruppe 600 für C-Projekte).

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 4 von 17

4 Einsatz des AVR Studio

AVR Studio ist eine Integrierte Entwicklungs-Umgebung (IDE) zumErzeugen und Berichtigen von Applikationen unter Windows. AVR Stu-dio beinhaltet ein Projekt-Management-Tool, einen Editor für Quell-Code-Dateien, einen Ablauf-Simulator, einen Assembler und ein Benut-zer-Interface für C++/C-Compiler. Es hilft bei der Programmierungdurch Emulation und On-Chip-Fehlersuche.

Das AVR Studio hat eine modulare Architektur und bedient den gesam-ten Bereich der ATMEL AVR-Tools. Es ist darüber hinaus auch mit denmeisten ISP-Programmieradaptern - so auch mit dem CC2-AVR-Programmer - zusammen verwendbar.

Bevor es losgeht

Das AVR Studio besitzt eine sehr umfangreiche Hilfefunktion, die auch extern mit auf-gerufen werden kann (siehe Bild 4-01). Desgleichen gibt es sehr umfangreiche Hilfefunktionen für den

Assembler und für den C-Compiler CodeVisionAVR

Bild 4-01: AVR Studio - Aufruf der Hilfe-Datei

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 5 von 17

4.1 AVR Studio installieren (unter Windows 7)

AVR Studio mit seinen integrierten Entwicklungswerkzeugen (Integrated Development EnvironmentIDE) ist ideal für AVR-Entwicklungen geeignet. Es ist für das STK500 sowie für das AVRISP auf derBasis von In-System-Programming (ISP) verwendbar. Der Programmer CC2-AVR-Programmer be-nutzt dieselben Programmier-Schnittstellen wie das AVRISP und ist deshalb voll mit dem AVR Studiokompatibel.

AVR Studio steht nach Angabe einiger persönlicher Daten in vielen Versionen einschließlich der Up-dates (Service Packs "SP") bei der Fa. ATMEL unter

http://www.atmel.com/tools/studioarchive.aspx?tab=overview

zum Download zur Verfügung (ggf. Advanced Search benutzen). Hier wird als selbst entpackende DateiAvrStudio4Setup.exe in der Vers. 4.19 verwendet; die noch neueren Versionen haben ein völligverändertes Layout und unterstützen auch den CC2-AVR-Proammer nicht auf Anhieb, da dieser un-bedingt den Jungo USB Driver und das Tool AVRISP mkII benötigt. Der Installationsvorgang ist me-nügesteuert:

Bild 4.1-01: Installation von AVR Studio Version 4.19

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 6 von 17

Bild 4.1-02: Lizenz-Bedingungen (Windows 7 ist in der Aufzählung vergessen worden)

Bild 4.1-03: Wahl des Installationsordners (sollte zwecks späterer Suche von Dateien unverän-dert bleiben)

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 7 von 17

Bild 4.1-04: Installation mit der Möglichkeit im Ablauf ggf. zurück zu kehren

Bild 4.1-05: Software-Installation wird konfiguriert

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 8 von 17

Bild 4.1-06: Laden der Programm-Dateien

Bild 4.1-07: USB-Treiber installieren

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 9 von 17

Bild 4.1-08: Vorbereitung zur Installation von AVR Jungo USB

Bild 4.1-09: Lizenz-Vereinbarung; der USB-Treiber läuft auch unter Windows 7 (64 bit)

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 10 von 17

Bild 4.1-10: Speicherort für AVR Jungo USB (unverändert belassen)

Bild 4.1-11: Installation mit der Möglichkeit im Ablauf ggf. zurück zu kehren

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 11 von 17

Bild 4.1-12: Die Installation ist abgeschlossen

Nach der Installation muss noch das STK500 Plug-in aktiviert werden:

Start => Programme => Atmel AVR Tools => Plug-in Manager

C:\Program Files (x86)\Atmel\AVR Tools\AvrStudio4\PluginManager.exe

Bild 4.1-13: Aktivierung des Plug-in Managers

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 12 von 17

Durch Markieren des STK500 mit einem Häkchen werden die Daten der Version dieses Tools im unte-ren Feld sichtbar und der Vorgang wird mit Save and Exit abgeschlossen. Mit dem nächsten Startvon AVR Studio kann's losgehen.

Bilder 4.1-14 und 4.1-15: AVR Starter Kit STK500 einbauen

4.2 Testboard und Programmer zusammenschalten

Die Technik und die Zusammenschaltung des ATM18-Testboards und des CC2-AVR-Programmerssind in der Dokumentation ATM18 10 Tipps für den Start sehr übersichtlich dargestellt. Hier wird dieZusammenschaltung des AVR-ALE-Testboards und des CC2-AVR-Programmers analog dazu be-schrieben.

Wenn das Testboard mit seinem externen Stecker-Netzteil an die Steckdose mit 230 Volt angeschlos-sen ist, leuchtet die grüne Power ON LED auf. Wenn dann noch der Jumper JP1 PWR auf den 1.Steckplatz gesteckt ist, so wird die gesamte Elektronik - ausgenommen die Steuerung des LCD-Moduls - mit +5 Volt versehen. Die weiteren Jumper-Steckplätze von JP1 PWR sind für die alternative

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 13 von 17

Versorgung des Testboards über die Steckplätze K5, K13.1 oder K13.2 vorgesehen. Das Display wirdbei Gebrauch mit den Jumpern JP4 GND und JP5 +5 mit Spannung versorgt, während für die Relaisüber die Schraubklemme K18 eine externe Spannungsquelle zur Verfügung gestellt werden kann(kann, muss aber nicht: je nach eingesetzten Relais kann man auch die Board-Spannung +5 Volt ver-wenden).

Der CC2-AVR-Programmer verbindet das Testboard harware-mäßig mit dem PC und software-mäßigmit dem Tool AVR Studio und/oder mit dem Compiler CVAVR sowie dem Objekt-Programm in Formeines assemblierten bzw. kompilierten AVR-Projektes. Beim Aufstecken des ISP-Flachbandkabelsvom CC2-AVR-Programmer auf das Testboard muss man auf die richtige Polung achten. Auch wenndabei eigentlich nichts schief gehen kann, so ist die richtige Funktion doch absolut davon abhängig:Pin 1 (meist auf dem Flachbandkabel rot markiert) muss sich auf der (rechten) Seite des SteckplatzesK13.2 mit der Ziffer 1 befinden.

4.2.1 Treiber AVRISP mkII neu installieren

Rudimentär für Windows XP: Auch wenn die Software AVR Studio vorher vollständig installiert wur-de kann es vorkommen, dass beim Einstecken des CC2-AVR-Programmers in den USB-Port der As-sistent für das Suchen neuer Hardware erscheint:

Bild 4.2.1-01: Suche nach neuer Software Bild 4.2.1-02: Software von einer Liste ...

Bild 4.2.1-03: Suche in C:\Programme\... Bild 4.2.1-04: Software wird installiert

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 14 von 17

Bild 4.2.1-05: Treiber ist fertig installiert ... Bild 4.2.1-06: ...und kann jetzt benutzt werden.

4.3 Starten von AVR Studio

Das Programm AVR Studio wird durch Aufruf der Datei AVRStudio.exe gestartet. Dabei wird dasfolgende Startfenster geöffnet. Wenn im Willkommensdialog die Option Show dialog at startup akti-viert ist, wird der Dialog zum Erstellen eines neuen Projektes beim Start automatisch angezeigt. Ge-meint ist ein neues Software-Projekt - vorrangig in Assembler.

Bild 4.3-01: Startfenster des AVR Studio

Wenn Assembler und auch AVR GCC keine Rolle spielen, sondern AVR-Projekte mit CVAVR erstelltwerden sollen, dann wird das Häkchen entfernt - und das Fensterchen erscheint zukünftig nicht mehr.

Zur Wiederherstellung des Dialogfensters gelangt man über Project => Project Wizard.

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 15 von 17

4.3.1 AVR Studio und CC2-AVR-Programmer

Das soll aber im Moment noch nicht interessieren, sondern jetzt soll der Programmer CC2-AVR-Programmer dem AVR Studio bekannt gemacht werden. Man findet sein Anschluss-Fenster bei den

Tools oder dem stilisierten AVR-Chip

Bild 4.3.1-01: Programmer dem AVR Studio bekannt machen

Bild 4.3.1-02: AVRISP mkII und USB markieren und Connect... drücken

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 16 von 17

Von den zahlreich angebotenen Programmer-Plattformen ist für den CC2-AVR-Programmer nur eineEinstellung brauchbar:

Platform: AVRISP mkII Port: USB

Wenn alle Angaben akzeptiert wurden, dann ist der Brenner dem AVR Studio bekannt gemacht undkann benutzt werden. Wenn nichts passiert und das Menü Select AVR Programmer erscheint erneut,so kann - abgesehen von defekten Verbindungen - noch ein fehlender/defekter Treiber die Ursachesein.

4.3.2 Mikrocontroller-Einstellungen im AVR Studio

Jetzt muss nur noch der Kontakt zwischen Computer, in dem das zu flashende Objekt-Programmsteht, über den Programmer mit Hilfe des Tools AVR Studio zum Mikrocontroller ATmega88 herge-stellt werden.

Wenn der Programmer mit seinem USB-Stecker in der Buchse des laufenden PCs steckt (hurra, dieLED am Programmer leuchtet grün!), sein Flachbandkabel richtig mit dem ISP6Pin-Sockel auf demAVR-ALE-Testboards verbunden ist, das Testboard ebenfalls mit Spannung versorgt ist (auch des-sen LED leuchtet grün) und der Treiber AVRISP mkII funktioniert, dann kann's losgehen. Das Pro-gramm AVR Studio wird gestartet und der Programmer wird ihm bekannt gemacht (vergl. Bild 4.3.1-02). Es öffnet sich das Menü AVRISP mkII in ISP mode with No Device selected.

Jetzt muss dem AVR Studio noch die Typbezeichnung des Chips, der zu programmieren (flashen) ist,mitgeteilt werden. Dazu wird der "Kartei-Reiter" Main geöffnet. Drei Einstellungen sind sehr wichtig:

Im Teil Device and Signature Bytes steht zur Zeit noch No Device selected Im Teil Programming Mode and Target settings steht ISP mode und unter Settings...: steht ISP-Frequency: 250.0 kHz

Bild 4.3.2-01: No Device selected Bild 4.3.2-02: Main - der erste "Karteireiter"

Da im AVR-Projekt ausschließlich der ATmega88 zum Einsatz kommt, ist die Wahl des "Device" ein-fach zu treffen: Aus der langen Liste aller möglichen Chips wird der ATmega88 ausgesucht und ein-gestellt. Beim Programming Mode gibt es keine Alternative, mit dem eingesetzten Programmer istnur der ISP mode möglich.

Ein Klick auf das kleine Dreieck öffnet eine lange Liste von theoretisch zu programmierendenAVR-Mikrocontrollern. Theoretisch deshalb, weil auf dem Testboard nur die folgenden Mikrocontrollereingesetzt werden können (vergl. Abschnitt 3.3 Einsatz verschiedener AVR-Mikrocontroller im Teil203).

AVR-8-bit-MikrocontrollerGruppe 200 - Einsetzen von AVR-Tools

Teil 204 - AVR Studio

Tools_204 05.02.2014 Seite 17 von 17

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328

Bild 4.3.2-03: Device ATmega88 Bild 4.3.2-04: ISP-Frequenz max. 250 kHz

Nebenbei ganz wichtig: Man beachte die Kommentare in dem unteren Feld!

Bei den (Target) Settings ist die Antwort nicht so einfach. Da bei einem neu eingesetzten ATmega88die Taktrate (Arbeitsfrequenz) von Haus aus auf 1 MHz eingestellt ist und die ISP-Frequenz, d.h. dieFrequenz mit der der Chip geflasht werden soll, nur maximal 25 % der Arbeitsfrequenz betragen darf,sollte man am Anfang keine höhere Frequenz als 250 kHz einstellen!

Der ATmega88 verfügt über zahlreiche Einstellmöglichkeiten, die über sog. Fuses festgelegt werden.Man nehme nur (!) die nachfolgenden Einstellungen vor:

Bild 4.3.2-05: Karteikarte "Fuses"einstellen

Boot Flash Section:BOOTSZ => Boot Flashsize=1024 words Boot ad-dress=$0C00

Brown-out Detection:BODLEVEL => Brown-outdetection at VCC=4,3 V

External Clock:SUT_CKSEL => Ext. Crys-tal Osc. 8.0 MHz; Start-uptime PWRDWN ...

Über den "Kartei-Reiter" Programkann nun ein assembliertes bzw.kompiliertes Programm in den Mikro-controller geflasht werden - dochdavon erst im Teil 205 bzw. Teil 206.