Hallo, ich will auf besagtem Board http://www.atmel.com/Images/doc8394.pdf ein Dogl-Display per SPI an PORTD betreiben. Leider ist das nicht möglich, es findet keine Datenübertragung statt, welches ich per Oszi festgestellt habe. Mit der gleichen Konfiguration an PORTC funktioniert es ohne Probleme so wie es soll. An PORTD wird das SPI auch geteilt mit dem Flash und dem On-Board-Display, dafür habe ich extra eine Solution in Atmel-Studio gemacht ohne das Board anzugeben, also ich benutze nur den Prozessor am Board, nicht die Board-Komponenten. Dennoch lässt sich nicht das SPI an PORTD für das Display nutzen, obwohl ich auch schon den Chip-Select-Leiter des On-Board-Display durchgeschnitten habe. Danach ging aber das komplette Board nicht mehr, daher habe ich dann Verbindung wieder gelötet. Meine Frage ist: Hat jemand auch Probleme mit diesem SPI an PORTD bei diesem Board. Gibt es da noch einen Trick, den benutzbar zu machen oder hat ihn jemand schon überhaupt für eine SPI-Anwendung erfolgreich zum Einsatz gebracht? Gruß und schönen Sonntag.
Ich habe besagtes Board auch hier, habe aber bis jetzt nur das Onboard-Display an PortD verwendet, das ging problemlos. Ich greife allerdings nicht per USB sondern mit nem JTAG-ICE-3 drauf zu. Vielleicht klemmt's ja da, weil der USB-Port auch an PD6(MISO) und PD7(SCK) hängt.
Entschuldiung, falsche Info. An Header J4 (den willst du doch benutzen oder?) ist nur PD0-PD3 ausgeführt, die anderen gehören zu PE0-3. Du musst also den USARTD0 oder USARTE0 im SPI-mode verwenden. an J4 gibt es keinen SPI nur USART's, die du ja in den SPI-mode schalten kannst.
Christian Dreihsig schrieb: > Ich habe besagtes Board auch hier, habe aber bis jetzt nur das > Onboard-Display an PortD verwendet, das ging problemlos. Ich greife > allerdings nicht per USB sondern mit nem JTAG-ICE-3 drauf zu. Vielleicht > klemmt's ja da, weil der USB-Port auch an PD6(MISO) und PD7(SCK) hängt. Ich benutze den USB-Port nur zur Spannungsversorgung, ich hänge an den PC. Daran könnte es klemmen, weil da Datenaustausch stattfinden könnte. Aber wie versorgst du dann das Board mit Spannung? Nimmst du ein Pin-Paar (VCC/GND) an einem der Header? Das geht glaube ich nicht, da an diesen PINS der Ausgang eines Spannungreglers (5V -> 3,3V) hängt.
Christian Dreihsig schrieb: > Entschuldiung, falsche Info. An Header J4 (den willst du doch > benutzen > oder?) ist nur PD0-PD3 ausgeführt, die anderen gehören zu PE0-3. Du > musst also den USARTD0 oder USARTE0 im SPI-mode verwenden. an J4 gibt es > keinen SPI nur USART's, die du ja in den SPI-mode schalten kannst. Gibt es hier einen leicht einsetzbaren Code-Snippet, um USARTD0 als SPI zu verwenden? Ich benutze die USARTE0 als I2C-Bus ohne Probleme. Wie ist das möglich, obwohl es doch eigentlich USARTE0 sein soll?
Entschuldigung das ich erst jetzt antworte aber ich musste mit meiner Frau weg ;) So jetzt zu deinem Problem, ich glaube du bringst hier ein bisschen was durcheinander. Erstmal kannst du das UsartE0 nicht als I2C verwenden. Ich nehme an du benutzt das TwiE auf PE0 und PE1. Das teilt sich einen Pin mit dem USARTE0. Beides gleichzeitig geht nicht. Aber lass uns mal von vorne anfangen. Als erstes solltest du mal einen Blick in das Datenblatt des Evalboards werfen: http://www.atmel.com/Images/doc8394.pdf dort findest du auf Seite 8 die Beschaltung des Headers J4. Pin 1-4 geht auf PE0-3, Pin 5-8 geht auf PD0-3. Wenn du jetzt ins Datenblatt des Devices guckst: http://www.atmel.com/Images/Atmel-8362-8-and-16bit-AVR-microcontroller-ATxmega256A3BU_datasheet.pdf findest du auf Seite 58-59 die alternativen Funktionen von PortD & PortE. Und dort steht dann Beispielsweise das SPID auf PD4 - PD7 liegt. Die sind nicht auf J4 des Evalboards herausgeführt! (Warscheinlich weil Sie für's USB-Interface benutzt werden) Deswegen kannst du dort auch nichts mit dem Oszi messen. Wenn du also unbedingt dein Display an den PortD hängen willst, bleibt dir nur den UsartD0 im SPI-mode zu benutzen. Das hätte sogar den Vorteil das du die Daten per DMA ans Display senden könntest. Das DMA kann nämlich nicht auf das SPI-Interface zugreifen, nur auf's USART(was man ja als SPI konfigurieren kann). Deswegen verwende ich meistens die USART's im SPI-mode. Ich hoffe das schafft ein wenig Klarheit, auch wenn Erklären nicht so meine Stärke ist.
Hallo Christian, ich danke Dir sehr, Du hast es sehr gut beschrieben um damit wesentlich weiter zu kommen. Wenn es Dir nichts ausmacht, kannst Du mir auch einen Codebeispiel geben für eine Initialisierung und Benutzung des USART-SPI und besonders wenn man es auch noch über DMA machen kann. Ich weiß das klingt jetzt sehr fordernd. Naja wie dem auch sei. Gruß Al N.
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.