SPI_NO_CS flag in SPI_MODE seems to have no effect. - Raspberry Pi Forums


i'm not seeing difference on how chipselects operate when spi_no_cs set/cleared. intention configure system use gpio chipselects. need leave chipselect de-asserted transfers.

i'm running raspbian (march 2017 jessie) on pi 2 model b v. 1.1.

code: select all

# config.txt: dtparam=audio=on disable_splash=1 gpu_mem=128 disable_audio_dither=1 lcd_rotate=2 dtoverlay=spi0-cs,cs0_pin=4,cs1_pin=0 dtoverlay=spi1-2cs,cs0_pin=12,cs1_pin=16
i've included simplified code i'm trying here:

code: select all

// send byte changing chipselect mode = spi_mode_0; ioctl(fds[0], spi_ioc_wr_mode, &mode) < 0) 	 memset(&spi, 0, sizeof(spi)); 	 spi.tx_buf = (unsigned long) &outmessage; spi.rx_buf = (unsigned long) &inmessage; spi.len = 1; spi.delay_usecs = 0; spi.speed_hz = speed; spi.bits_per_word = bpw; spi.cs_change = 0; 	 ioctl(fds[0], spi_ioc_message(1), &spi);  // send byte without changing chipselect mode = spi_mode_0 | spi_no_cs; ioctl(fds[0], spi_ioc_wr_mode, &mode) < 0) 	 memset(&spi, 0, sizeof(spi)); 	 spi.tx_buf = (unsigned long) &outmessage; spi.rx_buf = (unsigned long) &inmessage; spi.len = 1; spi.delay_usecs = 0; spi.speed_hz = speed; spi.bits_per_word = bpw; spi.cs_change = 0; 	 ioctl(fds[0], spi_ioc_message(1), &spi);
read through drivers/spi/spi-bcm2835.c, , think spi_no_cs flag might work if native hardware chipselect used. think can come workaround creative use of cs_change , spi_cs_high flags, want make sure i'm not missing how spi_no_cs supposed work before go down path.

after studying source closer, i'm confident driver ignores spi_no_cs when using gpio chipselect. have thoughts why or isn't bug?


raspberrypi



Comments

Popular posts from this blog

Error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode - Raspberry Pi Forums

class MPU6050 has no member named begin

missing filename after '-o'