ECE497 SPI Project

From eLinux.org
Revision as of 02:07, 14 November 2012 by Larmorgs (talk | contribs) (Executive Summary)
Jump to: navigation, search

Team members: Sean Richardson, Greg Larmore

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

05 Executive Summary (Good start)
02 Installation Instructions 
00 User Instructions (Missing)
00 Highlights (Missing)
00 Theory of Operation (Missing)
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  07/100

Executive Summary

For this project we wanted to further improve documentation available for sysfs kernel drivers with the Beagle Bone. To do this we have interfaced an LED light strand by Adafruit with a sysfs kernel driver utilizing SPI. In doing so we have created an easy to use interface to the light strand while also maximizing data throughput.

Installation Instructions

The kernel driver for SPI is installed in the A6A version of the beagle bone.

We have integrated some code to work with a SPI radio device (What radio device?). The code is located at github.

To get started hook up pins 30 (D12) and 31 (A13) to SPI Data (sometimes referred to as Master) and SPI clock.

Bone P9 pinout.jpg

Then echo 0 into both:

beagle$ echo 0 > /sys/kernel/debug/omap_mux/spi0_d1
beagle$ echo 0 > /sys/kernel/debug/omap_mux/spi0_sclk 

to select the pin mux for SPI.

Work Breakdown

So far we have done research on how Linux interfaces with SPI and we have integrated the SPI interface with current code that we have for an SPI radio. We also have explored methods of interfacing the SPI LED strip with a user to create a pleasant experience, such as creating a website to change the colors, or adding a possible twitter reader that would change the lights based on tweets.

Future Work

We want to develop a driver that will interface with SPI and potentially create a sysfs userspace utility for the LED strip.

Conclusions

The SPI interface is not well developed in Linux and can use some work progressing it. We have taken on the task of getting these two devices to work in an easier manner.