IO & CPU Konfiguration

Aus AVR32-WIKI
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einleitung:

In diesem Tutorial sollen Sie die CPU und die IOs des UC3 Mikrocontrollers mit Hilfe eines einfachen Frameworks konfigurieren.

Die CPU des UC3 Mikrocontrollers läuft ohne CPU Konfiguration mit nur ca. 125Khz. Sie sollen die CPU so konfigurieren, dass der Mikrocontroller mit 60Mhz arbeitet.

Vorerst müssen Sie ein neues Projekt erstellen so wie es in Getting Started beschrieben ist.


Einbinden von externen C Dateien:

Als erstes erstellen Sie in ihrem Projekt einen neuen Ordner. Rechtsklick auf den Projektnamen: Add->New Folder

Diesen nennen Sie zum Beispiel "Framework".

bild1.png


Dann laden sie im Bereich Downloads das UC3_CPU und das UC3_IO Framework herunter und entpacken diese.

Im Atmel Studio klicken sie mit Rechst klick auf den neuen Ordner: Add->Existing Item...

bild2.png


Jetzt suchen Sie den passenden Ordner, wo sich ihre Framework Dateien befinden und fügen diese hinzu.

Als nächstes müssen sie die Dateien noch Includen, schreiben sie dazu in die Datei, in der sie die Funktionen nutzen wollen folgende Zeilen:

#include "framework/uc3_io.h"
#include "framework/uc3_cpu.h"

Falls sie alles richtig gemacht haben, sollte ihr Projekt jetzt folgendermaßen aussehen:

bild3.png


Nutzen der Framework Funktionen:

Als erstes Sollen Sie mittels der Framework Funktionen die CPU auf 60Mhz Konfigurieren, da die CPU zurzeit nur mit 125Khz arbeitet. Machen Sie dazu folgenden Funktionsaufruf:

cpu_set_clk(60);

Der Übergabe Wert entspricht der Frequenz in Mhz. Sie können nur Frequenzen übergeben, die ein vielfaches der halben Quarz Frequenz (auf den meisten Entwicklungsboards 12Mhz) entspricht.

Es ist auch möglich den Mikrocontroller zu übertakten. Bis jetzt hatten wir noch keine Probleme gehabt, wenn wir den Mikrocontroller auf 96Mhz eingestellt haben, aber dieser Wert liegt weit über der Spezifikation.

Als nächstes soll Sie die IOs der LED und die der Taster Konfigurieren. Die LED befindet sich an PA08. Der Taster (der gleiche mit dem auch der Bootloader gestartet wird) befindet sich an PA13.

io_setup(AVR32_PIN_PA08,OUTPUT,PULLUP_DIS);

Mit dieser Funktion aktivieren sie den GPIO pin von PA8, setzen ihn als OUTPUT und deaktivieren den PULLUP.

io_setup(AVR32_PIN_PA13,INPUT,PULLUP_EN);

Mit dieser Funktion aktivieren sie den GPIO pin von PA13, setzen ihn als Eingang und aktivieren den PULLUP.

Falls sie nicht wissen, was ein PULLUP ist: http://de.wikipedia.org/wiki/Open_circuit


Das 1. Beispielprogramm:

Sie sollen jetzt ein Programm schreiben, welches die LED an PA8 zum leuchten bringt, wenn der Taster gedrückt wird.

Ihr Programm muss in die while(1) schleife geschrieben werden, damit der Mikrocontroller immer wieder den Zustand des Tasters abfragt und die LED schaltet.

Für dieses Beispielprogramm würde es reichen, wenn die CPU nur auf 125Khz laufen würde.

Schreiben Sie folgenden Code in die while(1) schleife:

if(io_get(AVR32_PIN_PA13))
{
  io_clear(AVR32_PIN_PA08);
}
else
{
  io_set(AVR32_PIN_PA08);
}

Die Funktion io_get(AVR32_PIN_PA13) gibt den aktuellen Status des PA13 Pins zurück. Wenn der Taster nicht gedrückt wird eine 1, wenn der Taster gedrückt wird eine 0.

Also wenn der Taster gedrückt wird, dann Schaltet der Mikrocontroller die LED an PA8 mit der Funktion io_set(AVR32_PIN_PA08); ein, und wenn er nicht mehr gedrückt wird, wieder aus.

Der komplette Programmcode sollte folgendermaßen aussehen:

code1.png



Weiter zu Taster einlesen und Wartefunktionen.

Meine Werkzeuge