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 (
RGUR
in 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 47
th transmission of HOLYCOW
prefixed by magic pattern 0x01020304
(payload size 8
).