I just got a Saleae logic analyzer and I'm using it to hack a Guitar Hero drum set. The main board within the drum set talks to another sub-board using SPI. When I tap into the conversation, I see this:
Black is MOSI, Brown is MISO, Red is CLOCK, and Orange is ENABLE/slave select.
I notice two strange things going on here:
- The clock doesn't always "run". It certainly has a pattern to it: It runs when ENABLE is low (every 100 Hz).
- Even when ENABLE is high (which I assume to mean the slave is not selected), conversation between the master and slave occurs.
Does anyone have a guess as to what is going on here? Did the board designers get lazy, or did I do something wrong when capturing the data?
- Captured at 4 MHz
- The clock runs at 2 MHz, when it is actually running
Here is another view, zoomed in:
Obviously, neither of these pictures provide much information as to what is actually being "said", since I didn't zoom in far enough. But I think that they are enough to get my point across. If you want a different image, just ask.
Kris suggested that the enable line is used to poll the slave board into sampling. This makes sense. Check out this screenshot:
The small black bubbles with red outlines are instances where the software was able to decode a SPI transmission. These only occur when the enable line is low, which follows what Kris suggested.