Hallo, bei einem ATtiny841 übernimmt der Kontroller automatisch die Ansteuerung der IOs für die UART-Schnittstelle, sobald RXENn / TXENn gesetzt werden. Hier muss man nicht angeben, um welche Pins es sich handelt. Das ganze funktioniert auch, wenn man den REMAP der Pins hier für UART0 macht. Gibt es sowas auch für die SPI Schnittstelle? Dort kann man ebenfalls einen REMAP machen von PA4-7 auf PA0-3. Jedoch anders als bei der UART Schnistelle, wird hier im Datenblatt darauf hingewiesen (Code-Beispiel), dass SCK, MOSI und SS als Ausgang gesetzt werden müssen. Geht sowas auch automatisch? Der weg das ganze selber über #defines ist mir bekannt, wäre nur evtl. interessant, ob das von der Toolchain (AS7) auch irgendwo direkt unterstützt wird.
Nein Stefan - selbst ist der Mann. Es ist nur das vorhanden, was man auch im Datenblatt findet. Wir nutzen doch eine Hardwarenahe Programmierung - da will ich doch genau wissen was da passiert und die Zügel nicht aus meiner Hand geben.
Okay, das wollt ich nur wissen. Weil es bei der UART Schnittstelle automatisch läuft.
TXD, Transmit Data (Data output pin for the USART). When the USART Transmitter is enabled, this pin is configured as an output regardless of the value of DDD1.
Hallo Peter, ja das ist mir bekannt. Das war auch Kern der Frage, ob es das bei der SPI Schnittstelle ebenfalls gibt. Scheinbar aber nicht, keine entsprechenden Adresse dazu gefunden. Somit 1-2 Zeilen in der init mehr, was nicht das Problem darstellt.
Bei SPI hättest du sowieso noch das Problem mit ChipSelect. Dafür wärst du in jedem Fall noch selbst zuständig. Es ist aber in der Tat etwas inkonsistent, warum Hardware Modul A (UART) nach der Aktivierung seine Pins komplett konfiguriert und alles andere überschreibt, aber HW Modul B (SPI) tut das nicht. Hier muss man sogar die Datenrichtungen für alle Pins selber setzen.
des weiteren ist die Datenrichtung abhängig davon ob SPI als Master oder Slave konfiguriert wird. Master: MISO=IN, MOSI=OUT, SCK=OUT Slave: MISO=OUT, MOSI=IN, SCK=IN Sascha
Cyblord -. schrieb: > Hier muss man sogar > die Datenrichtungen für alle Pins selber setzen. Es gibt eben mehrere Initialzustände, bei UART gibt es nur einen: Sender sendet, Empfänger empfängt. Beim Spi sind aber, je nach Modus (M/S) die Pins(MISO/MOSI/SCK) Input oder Output. Zu allem Übel ist das sogar noch von aussen umschaltbar und als Peripherie kann da alles Mögliche dranhängen.
Es kann ja sein, daß das SPI nur einlesen soll (SCK, MISO) und dann kann man den freien MOSI trotzdem als Eingang benutzen.
Bei nur einlesen wäre wir dann beim Slave. Fand es halt nur interessant zu wissen, ob es da ähnlich wie bei UART zugeht. Ich habe eine einfach spi_master_init, in der ich nur die DDR für MOSI, SCK und CS setze, bzw MISO lösche. Um das etwas flexibel zu halten, frage ich REMAP ab, ob das Bit SPIMAP gesetzt ist, und schalte danach die DDR um
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.