|
Software
The software needed to drive the SPI2CF consists of two main parts: The low level drivers needed to access the PRISM compact flash slot via SPI and a (hardware independant) TCP/IP stack on top of this. And since i am a lazy guy i did not write everything myself but took advantage of other peoples work.
The SPI driver itself was written from scratch. On top of this runs the CF slot driver which addresses the SPI2CF CPLD. This again is being used by the PRISM2 driver. Major parts of this PRISM2 driver were taken from the PRISM2 driver of the Procyon AVRlib. The driver was modified mainly with repect to stability. It was then moved into Adam Dunkels uIP tcp/ip stack which was at the same time ported to the AVR (mainly to be able to support the AVRs flash memory directly). Only the webserver application of uIP has been ported and tested up to now. Other applications like the telnetd may need further porting to be usable on the AVR. The major uIP changes were kept in a seperate avr directory. Only the changes necessary to support the AVRs flash code have been performed directly in the uIP code. This code therefore doesn't run on other plattforms anymore. If you intend to port the SPI2CF interface to a different plattform than the AVR it is therefore recommended to start with a fresh copy of uIP.
Some of the communication parameters like WEP encryption and IP configuration are currently hard coded. It's therefore necessary to adjust the settings in uIP-1.0-avr-PRISM2/avr/uIP-conf.h and then recompile the code. The system will eventually get a command line interface to change these values via RS232. But until then a recompile is unavoidable to adjust the communications parameters to match your needs.
What to use this for?
The presented system is a development system and does not include an application itself. I am planning to use this as the basis of a wireless LCD to build a wireless display for lcd4Linux.
Other possible applications are WLAN MP3 radio receivers etc.
Download (Version 2007/02/25)
- The Verilog source code for the SPI2CF interface chip
- The uIP port for the SPI2CF interface incl. the webserver application
- A little shell script and patch set to install the necessary AVR compilers required to work with the Atmega664 under Linux.
Links
- Details regarding the SPI2CF cpld chip
- Pascal Stangs Procyon AVRlib including a PRISM WLAN interface (no CPLD)
- CPLD based WLAN/PCMCIA hardware add-on to the ethernut
- Adam Dunkels uIP, a tiny TCP/IP stack for microcontrollers
- The PRISM WLAN interface family
- The Xilinx XC9572 CPLD used in this project
- The Compact Flash Association provides the latest CF spec for download (registration required)
To be continued