Forum: Mikrocontroller und Digitale Elektronik SAMD21 Xplained Pro board


von Alex (Gast)


Lesenswert?

Hallo,

ich bin neu in der Welt der ARMs und möchte gerne  mit einen SAMD21 
Xplained Pro board (ATSAMD21J18A)programmieren.

Gibt es irgendwo eine Erläuterung/Tutorial wie ich da am besten anfangen
kann? Bei den AVRs habe ich mich immer gerne hier an den Tutorials und
dem Datenblatt angelehnt.

Den Board habe ich im Atmel Studio bereits eingebunden und soll
über die SWD programmiert werden.

Nur fehlt mir nun der entscheide Anstoß,
wie werden die Ports/Pins initialisiert, und wie werden die angesteuert.

Mir würde für den Anfang reichen, wenn ich die I/Os mit Tastern und
low-current Leds ansprechen kann. Den Rest werde ich dann später
nachholen.

Alternativ würde ich mir auch über eine Lektüre/Buchvorschlag freuen,
der die SAMD Serie bearbeitet.

von Klaus (Gast)


Lesenswert?

Hallo Alex,

als Lektüre kann ich Dir 
http://www.atmel.com/Images/Atmel-42181-SAM-D21_Datasheet.pdf wärmstens 
empfehlen.  Damit hast Du gut 1000 Seiten, auf denen  der Prozessor 
detailliert beschrieben wird.

Den Anstoß, wie Du die Pins initialisieren mußt, findest Du in Abschnitt 
"22. PORT".

Viel Spaß beim Lesen,
Klaus

von Adam P. (adamap)


Lesenswert?

hallo,

falls du das ASF (atmel software framework) nutzen möchtest,
was dir vieles abnimmt, dann schau dir doch im atmel studio die 
beispielprojekte für dein board an.

file -> new -> example project...

oder hast du dort schon geschaut?

gruß adam

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


Lesenswert?

Falls du dich “bare metal” versuchen willst:

Beitrag "Atmel ARM Tutorial C/C++ gesucht"

Der SAMD21 ist weitgehend aufwärtskompatibel zum SAMD20.  Als
Verbesserungen hat er u. a. DMA, eine PLL (außer der DFLL) sowie
TCCs zusätzlich zu den TCs.

von Alex (Gast)


Lesenswert?

Ich verstehe nicht wozu braucht man GROUP.

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


Lesenswert?

Alex schrieb:
> Ich verstehe nicht wozu braucht man GROUP.

Sie nennen im Datenblatt alles PA00 bis PA31, PB00 bis PB31.  Es
gibt aber in Wirklichkeit nur eine Instanz des Moduls PORT (für
den Parallelport), und „A“ und „B“ sind softwaremäßig darin
„Group[0]“ und „Group[1]“.

Zuweilen findet man daher auch solche Defines:
1
#define PORTA PORT->Group[0]
2
#define PORTB PORT->Group[1]

Danach kannst du statt
1
PORT->Group[0].OUTCLR.bit.OUTCLR = (1 << 28);

schreiben
1
PORTA.OUTCLR.bit.OUTCLR = (1 << 28);

von dasrotemopped (Gast)


Lesenswert?

http://start.atmel.com/

schon ausprobiert ?

Gruß,

dasrotemopped.

von Alex (Gast)


Lesenswert?

Danke!
Und Funktion _delay_ms(); wird bei ARM anderes geschrieben?

Bei ist immer Fehler Error  1  util/delay: No such file or directory

von Alex (Gast)


Lesenswert?

und #include <util/delay> kennt er nicht

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


Lesenswert?

Lies dir doch bitte wenigstens den verlinkten Thread bis zum Ende durch 
…

von Stefan S. (sschultewolter)


Lesenswert?

util/delay.h gehört nicht zu den Std-Libs der Arms. Das gab es nur bei 
den AVRs. Aber wie Jörg bereits sagte, es gibt mehre Lösungen, diese 
Funktionalität hinzuzufügen.

Steht alles im Link des Links ;) Nutze die Version von Jörg gerne mal, 
wenn es nur um ganz einfache Sache zu testen gibt, oder aber der 
Controller in dieser Zeit mal überhaupt garnichts machen braucht.

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


Lesenswert?

dasrotemopped schrieb:
> http://start.atmel.com/
>
> schon ausprobiert ?

Javascript-Wüste …

Ist das jetzt Atmel Studio als Web-App? ;-)

Ich hab's nicht bis zu Ende probiert (dauerte einfach zu lange), aber
es würde mich mehr als wundern, wenn das nicht nur eine andere Art
Frontend für ASF ist.

von dasrotemopped (Gast)


Lesenswert?

das ist das CubeMX von Atmel. Erzeugt ein Projekt für Atmel Studio 7.

Finde es gut, das Atmel an der Baustelle der HW Konfiguration dran ist, 
aber die Umsetzung als Webseite ist noch schlimmer als CubeMX als Java 
App. Das man so was nicht in C schreiben kann ... und der Online Zwang, 
davon will ich erst gar nicht reden.

Gruß,

dasrotemopped.

von Michael S. (Gast)


Lesenswert?

dasrotemopped schrieb:
> das ist das CubeMX von Atmel. Erzeugt ein Projekt für Atmel Studio 7.
>
> Finde es gut, das Atmel an der Baustelle der HW Konfiguration dran ist,
> aber die Umsetzung als Webseite ist noch schlimmer als CubeMX als Java
> App. Das man so was nicht in C schreiben kann ... und der Online Zwang,
> davon will ich erst gar nicht reden.

naja finde ich jetzt nicht unbedingt, hat schon seine Vorteile. Ich kann 
jetzt, ohne mir eine Installation auf dem PC anzutun, vorab die Atmel 
MCU erkunden die mich interessiert, und dann auch gleich schauen wie die 
Treiber und Middleware Unterstützung aussieht. Die Updates sind immer 
"automatisch" schon drauf, man muss sich nicht persönlich drum kümmern 
mit welcher Version man nun arbeitet. nicht nur die Bauteilgruppen 
selbst, sondern auch die Treiber sind dann immer auf dem aktuellsten 
Stand. außerdem wird ja - zum Glück - das Projekt nicht nur als Atmel 
Studio version, sondern auch für keil und iar erstellt, und das kann man 
dann offline (ohne Internetanbindung) bearbeiten. Seid doch froh dass 
Atmel nicht auf die Idee gekommen ist, ähnlich wie bei mbed, dass alles 
online programmiert wird :-D
Außerdem ist das jetzt nun auch platformübergreifend, wäre es bei einer 
offline Version geblieben, müsste man je eine Variante für Linux, 
Windows und MacOs pflegen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.