Topic: How to get SPI from Chumby One?

We just saw a demo of the Chumby One at the Homebrew Robotics club last night, and it looks like it has a lot of potential as a robot brain.  So please pardon the newbie question -- I've been studying schematics and googling and so forth for several hours, but that is the extent of my Chumby experience.

I'd like to lash up a CAN bus controller via SPI.  From searches I've done, it sounds like SPI is somehow brought out on the Chumby One chumbilical connector.  I'd like to buy a clue here :) The schematics talk about I2C at the chumbilical, but not SPI, so I'm guessing the SPI pins are multiplexed at the CPU with something else.  Is there some document that I am not finding that explains the chumbilical connectivity and design rules a little bit more?

For my project, if I can get MISO/MOSI/SCK, a chip select, 5V, and gnd I should have a solution to putting a Chumby One on my CAN bus.  Chumbilical seems like the way to do that, but if there is a better way, a clue would be appreciated.

Any hints appreciated,

-dave

(BTW -- from googling it looks like some people are using a USB<->CAN adapter to get a Chumby onto CAN bus. Unfortuantely, USB has significant latency, so closing a control loop over USB is problematic except at very low loop frequencies -- not suitable for many robotics applications.)

Re: How to get SPI from Chumby One?

So after digging around the processor data sheet, schematics, and gerbers a little more, it looks like the information that I found that said SPI is available on the Chumby One chumbilical is incorrect.  It looks like one of the SPI ports is unavailable because it is mux'ed to pins that control the display.  I'm assuming there is no way to use that without screwing up the display -- correct me if I'm wrong.

The other SPI port goes to the uSD card -- so I suppose it would be possible to pick up SPI at the vias that provide the near by test points, and grab a serial I/O pin or an I/O from the unpopulated flash chip to use as a chip select.  Seems a little haywire, but could work.  It's temping to look at a daughter card solution that plugs into the uSD slot and replicates the uSD socket, while also providing the additional functionality that I want.  I'd surely end up putting a hole in the side of the case so a large wart could stick out the side.

Thoughts?

Re: How to get SPI from Chumby One?

OK, so let me try this again.... it looks like I was confused by the schematics.  It now seems to me that all the SSP2 pins are actually routed only to the unpopulated flash footprint, so in fact a completely unused SPI port could be had by picking up the I/O at the pads for the flash chip. So... assuming that is correct, is there any software reason why that would not work?

-dave

Re: How to get SPI from Chumby One?

I think you're right about the SPI being routed to the unused NAND footprint. However, I think on the latest version of the hardware shipping, we're removing the NAND footprint in favor of a header that explicitly breaks out a few signals that do *not* include SPI, but I2C instead. The wires are still available, but are harder to get to. Perhaps, though, if there is a demand for SPI I can modify the footprint of the header to include the SPI signals. Right now for programming convenience I routed out 8 consecutive bits of the GPMI data interface for the convenience of using them as bit-bang GPIOs.

But, no software reason afaik that would prevent this from working if you can access the signals.

One thing I'd also say is worth considering is a USB CAN controller. That may also be easier to connect up in terms of kernel driver support since you don't have to deal with the vagaries of the SSP controller and instead you get to use the USB abstraction.

7BAA 2E53 01C1 DCFF 497B  E7F0 9699 A303 78F0 D9B9

Re: How to get SPI from Chumby One?

Well, certainly there are peripherals that are only available in SPI and not I2C, or don't make sense in I2C, so I think it would be handy to break out the SPI someplace it could be picked up easily.  CAN over USB won't do it for me, because USB has too much latency.  The latency of USB severely limits the frequency of any control loops, so some things just can't be done that way.  No way could you do a balancing robot, for instance, and run a PID+ control loop over USB.

Re: How to get SPI from Chumby One?

Dave, How's it going getting to the SPI bus? I've also thought about using the Chumby in tight control loop applications that use a gyro, for example. I've seen gyros that output SPI but not I2C. --Osman

Re: How to get SPI from Chumby One?

Haven't gotten there yet.  Been distracted by a couple of CNC machining projects.

Re: How to get SPI from Chumby One?

bunnie wrote:

Perhaps, though, if there is a demand for SPI I can modify the footprint of the header to include the SPI signals.

I'm a little late replying to this, but please, please find a way to keep this: everything I seem to touch lately is SPI, and while bitbanging works, it burns GPIO unnecessarily.