Hello Guy,

I'm also trying to have BBB on a SPI bus as slave. Is it possible for you 
to share your code/protocol?

Best,
Alireza

On Monday, April 14, 2014 at 10:57:29 AM UTC-7, Guy Grotke wrote:
>
>   I am running BBB SPI as slave but using the opposite direction for the 
> data pins:
>  
> 0x150 0x30      /* spi0_sclk.spi0_sclk, INPUT_PULLUP  | MODE0 */
> 0x154 0x10      /* spi0_d0.spi0_d0,     OUTPUT_PULLUP | MODE0 */
> 0x158 0x30      /* spi0_d1.spi0_d1,     INPUT_PULLUP  | MODE0 */
> 0x15c 0x30      /* spi0_cs0.spi0_cs0,   INPUT_PULLUP  | MODE0 */
>  
> I think your way can work fine too, it just requires setting up the right 
> values in the SPI control registers.
>  
> But to make mine work as slave, I had to use mmap to directly access the 
> SPI hardware registers.  I can do that from user-space because the protocol 
> I designed for my SPI hardware has no realtime requirements that would 
> require interrupts.  (The packets in both directions always fit in the 
> FIFOs, and run in a half-duplex command/response mode.)
>  
> I don’t think any Linux SPI drivers support slave mode, and there is even 
> an explanation available from Linus Torvalds if you search the web.  If 
> you need interrupts for more demanding performance, you will have to write 
> your own driver.
>  
>                                         
>   
>  *From:* [email protected] <javascript:> 
> *Sent:* Saturday, April 12, 2014 1:39 AM
> *To:* [email protected] <javascript:> 
> *Subject:* [beagleboard] Reading over SPI with Beaglebone Black as Slave
>  
>  Im trying to use the Beaglebone Black as a slave device and read from 
> the arduino over SPI. 
>  
> Im confused as to why I am just getting 255 repeated over and over on the 
> terminal as an output.
> My thought is that there is some kind of a memory leak or buffer overflow. 
> I just can not figure out what
> I'm doing wrong. Is one supposed to set cs as input? even with it set to 
> output I have the same issue.
>  
> I have my dts file set as:
>  
>  /dts-v1/;
> /plugin/;
>  
> / {
>     compatible = "ti,beaglebone", "ti,beaglebone-black";
>  
>     /* identification */
>     part-number = "spi0pinmux";
>  
>     fragment@0 {
>         target = <&am33xx_pinmux>;
>         __overlay__ {
>             spi0_pins_s0: spi0_pins_s0 {
>                 pinctrl-single,pins = <
>                   0x150 0x30  /* spi0_sclk, INPUT_PULLUP | MODE0 */
>                   0x154 0x30  /* spi0_d0, INPUT_PULLUP | MODE0 */
>                   0x158 0x10  /* spi0_d1, OUTPUT_PULLUP | MODE0 */
>                   0x15c 0x30  /* spi0_cs0, INPUT_PULLUP | MODE0 */
>                 >;
>             };
>         };
>     };
>  
>     fragment@1 {
>         target = <&spi0>;
>         __overlay__ {
>              #address-cells = <1>;
>              #size-cells = <0>;
>  
>              status = "okay";
>              pinctrl-names = "default";
>              pinctrl-0 = <&spi0_pins_s0>;
>  
>              spidev@0 {
>                  spi-max-frequency = <24000000>;
>                  reg = <0>;
>                  compatible = "linux,spidev";
>             };
>         };
>     };
> };
>  
> My Arduino is wired up like so:
>  P9.22 SPI0_CLK - Orange - 0x150 0x30 --> Arduino Due 110 SCLK
> P9.21 SPI0_D0 - Green - 0x154 0x30 --> Arduino Due 109 MOSI
> P9.18 SPI0_D1 - White - 0x158 0x10 --> 108 MISO
> P9.17 SP0_CS0 - Black - 0x15C 0x30 ---> Pin 10 Set as Slave Select
>  
> Python File:
> import spidev
> import time
> spi = spidev.SpiDev()
> spi.open(1,0)
> while True:
>    resp = spi.readbytes(1)
>    print resp[0]
>
> -- 
> 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] <javascript:>.
> 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