Forum: Mikrocontroller und Digitale Elektronik SAM3X8E Problem mit SPI


von M. K. (avr-frickler) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo!

Ich habe hier ein Arduino Due Board und möchte den SPI in Betrieb 
nehmen. Ich verwende nicht die Arduino IDE sondern klassisch den GCC 
(ARM/embedded-4_8-branch revision 205641) in Kombination mit Eclipse.

Einfaches GPIO sprich LED blinken lassen funktioniert auch, somit sollte 
die Toolchain funktionieren.

Momentan versuche ich mich am SPI, allerdings tut sich an den Ausgängen 
nichts. Wenn ich mit dem Oszilloskop messe habe ich folgende Zustände:

SCK   (PA27) - LOW (auch mit PullUp-Widerstand)
MISO  (PA25) - HIGH
MOSI  (PA26) - HIGH
NPCS0 (PA28) - HIGH

Wenn ich das Datenblatt richtig verstanden habe, müssen die Pins welche 
für SPI verwendet werden sollen im PIO-Controller deaktiviert 
werden.(PIO_PDR - Seite 656)
Außerdem muss noch der Clock für die SPI-Peripherie aktiviert sein 
(PMC_PCER0 - Seite 561). Dann muss die SPI-Peripherie noch konfiguriert 
werden und es müssten dann Daten gesendet werden können.

Habe ich noch was vergessen?

von M. K. (avr-frickler) Benutzerseite


Lesenswert?

Habe den Fehler selbst gefunden.
Die Bedingung für die if-Abfrage war verkehrt.
1
// falsch!
2
if (!(SPI0->SPI_SR & SPI_SR_TDRE)) {
3
4
// richtig!
5
if (SPI0->SPI_SR & SPI_SR_TDRE) {

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.