On 05/08/2017 03:41 PM, Arno Steffens wrote:
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.
Deine Frage ist nicht verständlich. Was heißt, dass Gerät hat eine 9 Bit Adresse? Da es bei generischem SPI im Protokoll gar keine Adressen gibt (anders als z.B. bei i2c), sprichst Du sicher über das Geräte-spezifische Protokoll. Beschreibe mal eine Nachricht, die Du schicken willst oder zeige das Datenblatt.
Liebe Grüße Uwe