Files
MySensors/AVR/lib/spi

This directory contains a simple AVR spi helper library that should
run on most AVR microcontrollers which support SPI.

The code is further described at:
http://www.rocketnumbernine.com/2009/04/26/using-spi-on-an-avr-1/ (basics & ADC)
http://www.rocketnumbernine.com/2009/05/12/using-spi-on-an-avr-2/ (RTC)

Any comments/questions to <andrew@rocketnumbernine.com>

Make sure viewing this text in a fixed width font for the tables and diagrams


----------------------------------
Arduino
----------------------------------
The Arduino Directory contains all code required to run on the Arduino.
Simply copy the Arduino/SPI and Arduino/DS1305 directories to the 
"hardware/libraries" directory of your Arduino IDE installation and
restart the Arduino IDE. Once restarted there should be
"Sketch->Import Library->SPI" and "Sketch->Import Library->DS1305" menu
entries which can be used to include the spi header files into your project.
"File->Sketchbook->Examples->Library SPI" contains 3 example projects


----------------------------------
AVR GCC
----------------------------------
To use, just copy spi.h and spi.c (and ds1305.c and ds1305.h if using
the DS1305 Real Time Clock chip) to your own project and compile.

Makefile.mf - 'standard' generated make file from AVR GCC
Makefile - Makefile "make examples" will make example programs below:

spi-test-adc.c        MC3201 Analogue to Digital convertor example
spi-test-rtc.c        DS1305 - Real-Time-Clock/Alarm example
spi-test-masterslave.c        Master/Slave communication example


----------------------------------
PINS
----------------------------------
Following are the AVR pins used in the circuits below

      ATmegaXXX  Arduino AT90usbXXX
MISO    PB4        12       PB3
MOSI    PB3        11       PB2
SCK     PB5        13       PB1
SS      PB2        10       PB0

INT0    PD2         2       PD0   


----------------------------------
MC3201 12-bit ADC Circuit
----------------------------------
See http://ww1.microchip.com/downloads/en/DeviceDoc/21290D.pdf for full details.

             +-----------------+
             |     MC3201      |
        +5V [| Vref        Vdd |] +5V
             |                 |
Analogue In [| IN+         CLK |] AVR SCK
             |                 |
     Ground [| IN-        Dout |] AVR MOSI
             |                 |
     Ground [| Vss         ^CS |] AVR CE
             +-----------------+


For testing purposes "Analogue In" can be connected to the middle wire
of a potentiometer with one outer wire being connected to +5 and the
other to Ground.  A 1uF Capacitor should be placed between the analogue
input and ground, and +5V and ground as close to the chip as possible,
but in a pinch the circuit will likely work without.


MOSI/SLCK/CE to the relevant pin on the AVR (MISO is not used) - see above.

----------------------------------
DS1305 Real Time Clock Circuit
----------------------------------
See http://datasheets.maxim-ic.com/en/ds/DS1305.pdf for full details.

Without a battery the following connections can be used:

                +-----------------+
                |      DS1305     |
       Ground  [| Vcc2       Vcc1 |] +5V
                |                 |
       Ground  [| Vbat        ^PF |] Not Connected
                |                 |
       Crystal [| X1        Vccif |] +5V
                |                 |
       Crystal [| X2          SDO |] AVR MISO
                |                 |
 Not Connected [| N.C.        SDI |] AVR MOSI
                |                 |
      AVR INT0 [| INT0       SLCK |] AVR SLCK
                |                 |
 Not Connected [| INT1        CE  |] AVR CE
                |                 |
        Ground [| GND     SERMODE |] +5V
                +-----------------+


MISO/MOSI/SLCK/CE/INT0 to the relevant pin on the AVR - see above.