Im Datenblatt steht sinngemäß übersetzt folgendes: Der SlaveSelect /SS pin muss im MASTER Mode auf High gehalten werden, wenn man ihn als Input definiert hat. Ein Low würde den AVR in den Slave-Zustand versetzen und folgendes würde von der Hardware veranlasst: 1. das Master-Bit MSTR wird gelöscht, und der AVR ist Slave. 2. SPIF wird gesetzt..bla blah Bei mir habe ich den /SS als Input gesetzt. Mein AVR soll immer Master sein und einem Slave ab und zu Daten schicken. Wie mach ich das dann im Code? Bei mir siehts so aus: cbi PortB, 4 ; /CS pull down ldi temp, 0b11000000 ; RESET-Instruction rcall spiout sbi PortB, 4 ; release /CS Laut o.g. Übersetzung müsste der AVR nach dem pull down im Slave Zustand sein und nicht Master... Hat das seine Richtigkeit? Muss ich das MSTR Bit villeicht irgendwo zyklisch abfragen?
Hallo, >Bei mir habe ich den /SS als Input gesetzt. Mein AVR soll immer >Master sein und einem Slave ab und zu Daten schicken. Setze /SS auf Ausgang und nutze diesen Pin um den Chip Select Pin deines SPI Slaves zuaktivieren. Gruß, Dirk
PS.: Du schiebst dann 8 Bit ueber MOSI raus (z.B. 0xFF). Der AVR generiert auf SCLK das Clocksignal und ueber MISO bekommst du die Daten ins SPDR Register.
Genial, das war der Fehler!!! Aber ich versteht nun überhaupt nicht warum.... denn: 1. Hat der Author von http://www.kreatives-chaos.com/index.php?seite=mcp2515_reg das auch nicht als Ausgang 2. Im Datenblatt: If /SS is configured as an output, the pin is general output which does not affect the SPI system...... Komisch aber egal, jetzt geht die Übertragung auf einmal. Vielen Dank!
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.