0
\$\begingroup\$

I need to connect two SPI devices to Beaglebone. According to the documentation both SPI1_CS0 and SPI1_CS1 are available on the extension header:

SPI1_D0, SPI1_D1 and SPI1_SCLK are available on P9[29], P9[30] and P9[31].

SPI1_CS0 is available on P9[20] and P9[28].

SPI1_CS1 is available on P9[19] and P9[42].

I've traced these through the schematics and found they are connected to the following pins on the CPU (AM335x):

  • SPI1_D0 -> B13
  • SPI1_D1 -> D12
  • SPI1_SCLK -> A13
  • SPI1_CS0 -> C12 / D18
  • SPI1_CS1 -> C18 / D17

However, there seems to be no combination that enables both CS0 and CS1. I've tried to make a working pinmux using the TI pinmux tool, but no matter what combination I use for CS0 and CS1 i get "pin conflict" and error message that one or the other is not available in the IO-set.

Is there really no way to enable both CS0 and CS1 on the Beaglebone?

(I'm using Beaglebone Green Wireless, which should be compatible with Beaglebone Black)

\$\endgroup\$
  • \$\begingroup\$ Do your SPI slave devices require CS edge for framing? Or do they just use CS as device chip select? In the latter case, configure both SPI_CS0 and 1 as GPIO. \$\endgroup\$ – MarkU Aug 11 '16 at 21:02
  • \$\begingroup\$ Unfortunately at least one of the devices use a CS low-to-high transition to mark the end of a frame. I was not aware that the SPI driver in Linux supported CS on any GPIO, but it seems like that is the case! Are there any drawbacks of using a GPIO instead of the hardware CS, except for probably a few wasted CPU cycles? Will it not work when the device need CS edge for framing? \$\endgroup\$ – Jonatan Aug 12 '16 at 7:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.