Hi Zusammen ! Ich versuche mitlerweile verzweifelt RX-Register eines MCP2515 (Can-Controller) mit einem Mega8 zu lesen... Zum Lesen sende ich den Lesebefehl und anschliessend ein Dummybyte zur Taktgenerierung.... Slaveselect ldi Akku, "Lesebefehl" rcall SPI ldi Akku, "Dummybyte" rcall SPI _Slaveselect_(aus) Dafür wird diese Routine angesprungen: SPI: out spdr, Akku wart: sbis spsr, spif rjmp warten in Akku, spdr ret Nach dem Dummybyte hätte ich eigentlich den Inhalt der Speicherstelle (RX-Register) im "Akku" erwartet.... (also per SPI eingetaktet) aber sind nur Nullen drin... :-( oder versuche ich zu schnell das spdr in den Akku übertragen? Ich habe nirgends nen Assembler-Code gefunden.... und langsam ne gedankliche Blockade... nen tip? thx & greetz Danny
Sorry.. kann kein Assambler, aber schau doch mal ins datenblatt ;D da sind Beispielcodes dabei. ------------------------------ SPI_MasterTransmit: ; Start transmission of data (r16) out SPDR,r16 Wait_Transmit: ; Wait for transmission complete sbis SPSR,SPIF rjmp Wait_Transmit ret SPI_SlaveReceive: ; Wait for reception complete sbis SPSR,SPIF rjmp SPI_SlaveReceive ; Read received data and return in r16,SPDR ret ------------------------------ Vl hilft dir das was... das steht auf Seite 124 und 125. mfg Schoasch
@Schoaschi: das Datenblatt habe ich natürlich als erstes zu Rate gezogen. Aber wie da ja steht is es eine SLAVE-Routine... Meine Mega8 ist aber ein MASTER und dazu gibbet von Atmel kein asm-Beispielcode. trotzdem thx greetz Danny
so... nach weiteren Stunden neuer Stand: SPI scheint zu funktionieren, aber mein MCP2515 antwortet nur mit 0x00. Egal welche Adresse ich auslese, er schiebt nur Nullen raus. Im Ruhezustand ist SO (Slaveout) brav hochohmig und anschliessend schiebt er 8 Nullen raus.... Habt Ihr ne Idee was den MCP2515 zu sowas veranlassen könnte? Habe nun schon alle möglichen Fehlerquellen ausgeschlossen; das Senden per SPI und somit das steuern des MCP klappt... aber wie gesagt... das lesen.. grummel
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.