An AVR implementation in progress.
-
ATmega328P running at 16MHz (Arduino Nano + Duemilanove)
-
SPI configured in mode 0 (
CPOL=0,CPHA=0) with prescaler 16 (SPR1=0,SPR0=1,SPI2X=0), resulting in 1MHz SPI speed. According to the data sheet, SPI rate during FIFO access must be smaller than 2.5MHz with the default 10MHz oscillator in place:Note: During FIFO access fSCK cannot be higher than fref /4, where f ref is the crystal oscillator frequency.
A substantially lower SPI rate (i.e. lower than transmit frequency) results in buffer underruns on the transmitter side (
RGURin Status Register), obviously.
Wiring is basically as follows, although I eventually decided to invest in one of JeeLabs' RFM12B breakout boards.
From an early demo, leaving the power amplifier enabled for a second before and after transmission.
Later, the 47th transmission of HOLYCOW prefixed by magic pattern 0x01020304 (payload size 8).


