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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.