Brom B. schrieb:
Hi Falk danke für die schnelle Antwort.
Taktfrequenzen habe ich schon verschiedene durch von 200khz bis 8mhz
(das funktioniert mit besagter Open Close Politik stabil)
Das Verhalten ist tatsächlich nur durch SPIOpen (Genau genommen setzen
den EN Bit) und spi Close (Rücksetzen des enable Bits) reproduzierbar.
Dann scheint es etwas mit den Statusflags zu tun zu haben.
Ich erachte das ebenfalls als Unfug meiner Ansicht nach sollte ich auch
SPI Einmal aktivieren und künftig nur noch durch CS/SS die slaves
wählen.
Das ist auch so.
Ebenso Erfolglos ist das ganze wenn ich nicht nach jedem Bit auf die
Vollständigkeit der Übertragung warte.
Das ist Unfug. Man muss nur am Ende der Übertragung auf das ECHTE Ende warten und dann CS deaktivieren. Das kann bei einem SPI mit FIFO etwas kniffelig sein, man muss das RICHTIGE Statusbit auslesen! Welches das bei DEINEM PIC ist, weiß ich nicht.
Wenn ich dies nicht tue sondern Daten in den TX Puffer lade bzw. Warte
wenn das PIR Interrupt meldet das dieser Speicher voll ist geht auch
Garnichts.
Nimm ein Oszi und schau dir eine Signale an. Ich rate mal. Du wartest NICHT auf das ECHTE Ende der Übertragung.
Ein Oszilloskop habe ich erst in 2 Wochen wieder. Hast du noch Ideen wie
ich das prüfen kann?
Ein Oszi kann man nur durch ein besseres Oszi ersetzen. Oder VIEEEELE Versuche im Blindflug.
Ich habe auch vor jedem umsetzen des RS Pin (Data command Switch) ein
wait while busy drin.
Hä?
Merkwürdig finde ich jedoch auch das die MPLAB /Mcc funktionen für
Blocksendung die Bytes auch nicht in den Buffer laden sondern byteweise
senden...
Keine Ahnung. Wenn ich das Datenblatt von deinem PIC18F26K42 lese, kann da bei SPI einiges schief gehen, man kann viel einstellen. Auch das Ansteuern von SS, was scheinbar durch das SPI-Modukl erfolgt bzw. erfolgen kann? Ohne Oszi wird das HART!
32.5.5.2 Software Slave Select Control