Hallo, ich hab eine kurze Frage zu SPI (embedded). Ich hab das bisher mit einem ioctl gemacht:
struct spi_ioc_transfer transfer ={ .tx_buf = (unsigned long)(wr_tmp), .rx_buf = (unsigned long)(rd_tmp), .len = (width>>3)+1, // 8->2, 16->3, 24->4, .speed_hz = SPI_SPEED, .bits_per_word = 8, };
ret = ioctl(file_spi0, SPI_IOC_MESSAGE(1), &transfer); if( ret < 1 ){ printf("could not transmit data\n"); }
Jetzt habe ich aber den seltsamen Fall, dass das Gerät eine 9 (!) Bit Adresse hat und 16 bit Daten hat. Mir ist gar nicht klar wie das gehen soll.
Und während ich das schreibe fällt mir was ein: Vielleicht so: Statt einer message mit Adresse und Daten dann zwei ioctls mit unterschiedlichen bits/word ? Hat das schon mal jemand so gemacht? Andere Ideen?
Gruß Arno