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.

Reply via email to