Code:
'TRANSMITTER (nrf24_Transmitter.bas)
'Power supply: 3.3V from computer USB or phone charger via FTDI =
'no 5V, phantom or otherwise, to fry nrf
'Inverter levels RX / TX : 74HCT04
'nrf24 20X2
************************
'1 GND Black GND
'2 VCC Red VCC THREE point THREE volts !!!.!!!
'3 CE Brown B.1
'4 CSN White B.6
'5 SCK Yellow B.7
'6 MOSI Green SDO C.1
'7 MISO Orange SDI B.5
'8 INT Grey C.5 10k PullUP
#picaxe 20x2
#no_data
#no_table
symbol CE = B.1 'Chip Enable
symbol CSN = B.6 'Chip Select (active low)
init:
B10=0
input C.5
output b.1
output b.6
setfreq m16
hspisetup spimode00,spifast
high CSN 'active low
low CE
pause 20
'CONFIG_TX_MODE:
low csn
hspiout (%00100000,%00001010) 'REG0 CONFIG EN PTX + Power ON + EN CRC 1 byte
high csn
'REGs 1 to 16 par défaut EXCEPT REG4 et 6
low csn
hspiout (%00100100,%11111111) 'REG4 SETUP_RETR wait 4ms, 15 retries
high csn
low csn
hspiout (%00100110,%00001000) 'REG6 RFSETUP -18dBm,2Mbs
high csn
pause 20
gosub clear_interrupts
main:
do
pause 2000
low CSN
hspiout(%10100000,B10) 'Write TX Payload
high CSN
pulsout CE,10 'Send data
pause 20
sertxd("Sent ",#B10,CR,LF)
low CSN
hspiout(%11100001) 'Flush_TX
high CSN
gosub Clear_interrupts
if B10<10 then
let B10=B10+1
else
let B10=0
endif
loop
Clear_interrupts:
low csn
hspiout (%00100111,%01110000)
high csn
return
readregs:
for b1 = 0 to 09 'registers 0 - 9 (decimal)
low CSN
hspiout (b1)
hspiin (b0)
high CSN
sertxd(#b0,CR,LF)
next b1
for b1 = 10 to 16 'Addresses with 5 byte registers
low csn
hspiout(b1)
hspiin (b4,b5,b6,b7,b8)
high csn
sertxd (#b4,#b5,#b6,#b7,#b8,CR,LF)
next b1
for b1 = 17 to 23
low CSN
hspiout (b1)
hspiin (b0)
high CSN
sertxd (#b0,CR,LF)
next b1
return
A suivre.....