>>MISO leuchtet konstant _______ leuchtet konstant
>d.h es werden keine DATEN vom SLAVE gesendet, oder nurdas
>ZEICHEN "NULL" (alle 8 Bits vom SLAVE sind 0)
Müsste da nicht die LED nach GND aus sein?
Werden nur Nullen gesendet, ist praktisch die ganzen 8 Bit Low auf der Leitung. also nach Masse geschaltet.
>Müsste da nicht die LED nach GND aus sein?
>Werden nur Nullen gesendet, ist praktisch die ganzen 8 Bit Low auf der >Leitung. also nach Masse geschaltet.
kann ich Dir momentan auch noch nicht erklären.
Nur was mich sehr wundert:
Irgendwas stimmt mit DEINER "empfanger.asm" nicht,
out SPDR, temp
wait_spi:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi
; SPIF is set
in temp2, SPSR
in temp2, SPDR ; release SPIF by reading Register
ret ; back to programm..
; ================================================== ======================
Byte an Slave senden:
out SPDR, temp
wait_spi:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi
; SPIF is set
; Lesen des SPSR (wegen rücksetzen des SPIF)
in temp2, SPSR
; Lesen des SPDR (wegen rücksetzen des SPIF)
in temp2, SPDR ; release SPIF by reading Register
Das ist der SPI-Transfer-Prozess. Hast du doch bei dir auch drin... bis auf das SPIF-Rücksetzen
Bist du Student oder sowas.. ich ja und kann nämlich über meine UNI-Email überall erfolgreich Samples bestellen. Hab schon 2 mal bei Microchip diese CAN-Chips geordert.
Du hast nicht solche ICs ? Ich könnt sie dir zukommen lassen...
>Bist du Student oder sowas.. ich ja und kann nämlich über meine UNI->Email überall erfolgreich Samples bestellen. Hab schon 2 mal bei >Microchip diese CAN-Chips geordert.
>Du hast nicht solche ICs ? Ich könnt sie dir zukommen lassen...
ich kenn diese ICs nicht, habe auch noch nicht gegoogelt
So Magnetus, was machen wir jetzt,
mein MASTER sendet pausenlos ZEICHEN an den SLAVE und dieser sendet diese wieder EFOLGREICH zurück
Hallo Bernard
Wenn ich einen 8MHz Quarz statt des 4er bei den CAN-Transceivern nehme, wird etwa 3mal soviel korrekt übertragen wie vorher. Danach stoppt es dann wieder... Aber du kannst das wohl schlecht nachvollziehen ohne diese ICs..
Die Übertragung sollte normalerweise bis heute fertig sein... so ein Mist.
>Wenn ich einen 8MHz Quarz statt des 4er bei den CAN-Transceivern >nehme, wird etwa 3mal soviel korrekt übertragen wie vorher
...hab jetzt mal einige Minuten auf die Schaltpläne gestarrt, so langsam verstehe ich dieses gesamte-Prinzip, denn Du hattes mir ja auch nicht auf meine Fragen so richtig geantwortet
Mein Tipp, so auf die schnelle:
- füge mal längere Pausen ein, bermutlich gibt es TIMING-Probleme im CAN-IC
BSP:
; WRITE COMMAND
ldi temp,WRITE
out SPDR,temp
wait_spi_w1:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi_w1
in temp,SPDR ; release SPIF here
; SET ADDRESS
out SPDR,address
wait_spi_w2:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi_w2
in temp,SPDR
ändern in:
; WRITE COMMAND
ldi temp,WRITE
out SPDR,temp
wait_spi_w1:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi_w1
in temp,SPDR ; release SPIF here
;-----------------
rcall PAUSE_100ms
; -----------------
; SET ADDRESS
out SPDR,address
wait_spi_w2:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi_w2
in temp,SPDR
Gib den CAN-IC genügend Zeit, seine Daten zu verarbeiten,
bremse mal alles etwas, nicht, dass er total überfordert wird
Lesezeichen