Hallo Forum,
ich verwende das XPlain-Board mit dem ATxMega 128A1 und möchte per SPI mit einem anderen µC kommunizieren.
Display All
Das Senden des Datenbyte &HAA (vgl. Zeile 11 ff) funktioniert.
Das Auslesen des Datenbytes (vgl. Zeile 18 ff) funktioniert nicht.
Nach dem Senden des Adressbytes wird kein weiterer Takt vom µC an SCK erzeugt, so dass das zu lesende Datenbyte nicht ausgegeben wird und das Programm in der Do:LOOP hängt.
Lege ich nach dem Senden des Adressbytes manuell einen Takt an SCK an, wird an MISO das zu lesende Byte richtig ausgegeben (mit Oszilloskop geprüft).
Wie lautet die Richtige Syntax in Bascom für das Auslesen via SPI ?
Vielen Dank, Dani
ich verwende das XPlain-Board mit dem ATxMega 128A1 und möchte per SPI mit einem anderen µC kommunizieren.
Source Code
- 'SPI Port F
- Config Portf.0 = Input : Int_spi_f Alias Pinf.0 'INT_SPI_F
- Config Portf.4 = Output: Cs_f Alias Portf.4 'CS_SPI
- Config Portf.5 = Output 'MOSI
- Config Portf.6 = Input : Portf_pin6ctrl = &B00_011_000 'MISO, PullUp enabled
- Config Portf.7 = Output 'SCK_SPI
- 'config SPI on PORTF
- Spif_ctrl = &B01010010 'SPI clock double no, SPI enable, SPI master
- 'send to SPI
- Cs_f = 0
- Spif_data = &HAA
- Do : Loop Until Spif_status.7 = 1
- Cs_f = 1
- 'read from SPI
- Cs_f = 0 'Chipselect auf Low ziehen
- Spif_data = Spi_read 'zu lesende Adresse festlegen
- Do : Loop Until Spif_status.7 = 1
- Data_in = Spif_data 'Datenbyte auslesen
- Do : Loop Until Spif_status.7 = 1
- Cs_f = 1
Das Senden des Datenbyte &HAA (vgl. Zeile 11 ff) funktioniert.
Das Auslesen des Datenbytes (vgl. Zeile 18 ff) funktioniert nicht.
Nach dem Senden des Adressbytes wird kein weiterer Takt vom µC an SCK erzeugt, so dass das zu lesende Datenbyte nicht ausgegeben wird und das Programm in der Do:LOOP hängt.
Lege ich nach dem Senden des Adressbytes manuell einen Takt an SCK an, wird an MISO das zu lesende Byte richtig ausgegeben (mit Oszilloskop geprüft).
Wie lautet die Richtige Syntax in Bascom für das Auslesen via SPI ?
Vielen Dank, Dani
Wir können das so machen aber dann funktioniert es halt nicht ...