Are you reading back all the registers to make sure all your writes work OK?
Have you tried enabling the mux on one of the CS signals? I don't have any real reason to believe it is necessary, but I'd want you to try in as normal a mode as possible to get things working before tweaking. Have you tried out Starterware and the Starterware steps to try to generate a known-good configuration from the PRU? http://processors.wiki.ti.com/index.php/StarterWare_McSPI On Tue, Nov 17, 2015 at 9:25 AM, Gianfranco Rosso <[email protected]> wrote: > I'm writing a SPI driver for the PRU on BBB. > > Mux settings for pins is done by config-pin: P9.29, P9.30 and P9.31 are > configured as "spi" for SPI1_D0, SPI1_D1 and SPI1_SCLK, while P8.27, P8.29 > and P9.28 are configured as gpio output as 3 chip select (to be manually > managed). > > Chip select pin are ok but I can't transmit/receive anything by the spi. > > 1) The PRU code checks register CM_PER_SPI1_CLKCTRL to verify if the module > is enabled (interface and functional clocks provided to). > 2) in case it enable the module and wait for fully functional status. > > 3) Then MCSPI_SYSCONFIG register is set to 0x030A (clocks always present, > idle requests rejected, no autoidle plus module soft reset). > 4) The initialization continues only when register MCSPI_SYSSTATUS confirm > that reset is completed. > > 5) follows the setting of: > > MCSPI_MODULCTRL to 0x0003 (no delay before first tx, functional mode, > master, SPIEN not used, SINGLE mode) > > MCSPI_CH0CONF to 0x200107BC (1clk clock granularity, FIFOs non enabled, no > turbo mode, Tx on SPI1_D1, Rx on SPI1_D0, 16bit word, CLKD=15, mode0) > > MCSPI_CH0CTRL to 0x1E01 (EXTCLK=30, channel 0 enabled) > > Initialization is done. > With EXTCLK and CLKD settings I'm expecting a 100kHz spi clock (48MHz/(CLKD > + 1 + EXTCLK*16)=100kHz) > > But when I write to register MCSPI_TX0, there's no activity at all on the > spi pins, while I'm expecting the transmission/reception starts just after > the writing into TX0 register... > > Reading MCSPI_CH0STAT give me 0x00: EOT=0 (shift register sill loaded with > data), TXS=0 (TX0 register full), RXS=0 (RX0 register empty). > > > Am I missing something? > > Gianfranco > > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
