I've found a few things, I 'think' the registers are being set correctly, but I cannot read back from it.
I just don't get the full-duplex SPI in this case.
New code and debug data below:
Register constants:
and the new code for writing to the part:Code:'Constants here RF_Init_Values[0] = $28 'Standby mode, 915-928 MHz, VTune by inductors, ENABLE R1/P1/S1 RF_Init_Values[1] = $8C 'FSK, max IF gain, Packet Mode RF_Init_Values[2] = $01 '200KHz Freq Dev RF_Init_Values[3] = $63 '2KBps RF_Init_Values[4] = $0C 'for OOK mode, not apliable RF_Init_Values[5] = $03 '16Bytes FIFO, 3 Bytes threshold FIFO transmit interrupt RF_Init_Values[6] = $77 '915MHz R1 Reg RF_Init_Values[7] = $64 '915MHz P1 Reg RF_Init_Values[8] = $32 '915MHz S1 Reg RF_Init_Values[9] = $74 '920MHz R2 Reg RF_Init_Values[10] = $62 '920MHz P2 Reg RF_Init_Values[11] = $32 '920MHz S2 Reg RF_Init_Values[12] = $38 'config mode for OOK, not apliable RF_Init_Values[13] = $00 'interrupts by default RF_Init_Values[14] = $19 '00011001 RF_Init_Values[15] = $00 ' RF_Init_Values[16] = $A3 'default filters config RF_Init_Values[17] = $38 'default filters config RF_Init_Values[18] = $30 'sync word ON, 24bits, 0 errors tolerance RF_Init_Values[19] = $00 'reserved reg RF_Init_Values[20] = $00 'RSII status read register, 0.5dB / bit RF_Init_Values[21] = $00 'OOK config reg RF_Init_Values[22] = $53 '"S" 1st byte of sync word RF_Init_Values[23] = $59 '"Y" 2nd byte of sync word RF_Init_Values[24] = $44 '"D" 3rd byte of sync word RF_Init_Values[25] = $00 ' RF_Init_Values[26] = $70 'utoff fcy = 200KHz, output power = 13dBm 0b000 RF_Init_Values[27] = $BC 'clk out by default 427KHz RF_Init_Values[28] = $02 '3 bytes payload RF_Init_Values[29] = $01 'initial MAC ADDRESS, only for test RF_Init_Values[30] = $5E 'Fix Packet Lenght, 3 bytes preamble, whitening ON, CRC ON, Node ADDR|0x00|0xFF filtering RF_Init_Values[31] = $00 'FIFO autocreal enable if CRC fails, Write to FIFO in stby mode
Then I try to send 3 bytes:Code:'MRF initialization here debug "@ MRF init", 10 MRFConfigSel=0 'Select the chip 'Going to try using shiftout before using hardware SPI for i=0 to 31 'Sets up the index var for data MRFaddr=(i << 1) 'Shifts address 1 bit to left, automatically gets start,write, and stop bits SHIFTOUT SDO, SCLK, 1,[MRFaddr,RF_Init_Values[i]] 'send data to register debug "Addr=",bin8 MRFaddr," Value=",hex2 RF_Init_Values[i],13 next i MRFConfigSel=1 'Deselect the chip 'Try to read back the 1st 8 registers as a test to see if they were written correctly MRFConfigSel=0 'Select the chip for i = 0 to 7 'Sets up address to read MRFaddr=((i << 1) | $40) 'Shifts left 1 bit, sets $40 bit, automatically gets start, READ, and stop bits SHIFTOUT SDO, SCLK, 1,[MRFaddr] 'Address to read SHIFTIN SDI, SCLK, 0,[MRFSPIdata] 'Get data from reg debug "MRF Config data: i=", dec1 i, " Register ", bin8 MRFaddr, " Data=", hex2 MRFSPIdata,13 next i MRFConfigSel=1 'Deselect the chip
and the debug data:Code:'Try sending something debug "Try sending 3 bytes",13 XMIT_EN: i=0 'Register of interest MRFaddr=(i<<1) 'Gets register address format MRFConfigSel=0 'Select the chip SHIFTOUT SDO, SCLK, 1,[MRFaddr,$88] 'send data, TRANSMIT, 915-928, Vtune by tank caps, Enable R1 P1 S1 MRFConfigSel=1 'Deselect the chip XMIT: MRFDataSel=0 SHIFTOUT SDO, SCLK, 1,[$A1] MRFDataSel=1 MRFDataSel=0 SHIFTOUT SDO, SCLK, 1,[$B1] MRFDataSel=1 MRFDataSel=0 SHIFTOUT SDO, SCLK, 1,[$C1] MRFDataSel=1 XMIT_STDBY:i=0 'Register of interest MRFaddr=(i<<1) 'Gets register address format MRFConfigSel=0 'Select the chip SHIFTOUT SDO, SCLK, 1,[MRFaddr,$28] 'send data, STANDBY, 915-928, Vtune by tank caps, Enable R1 P1 S1 MRFConfigSel=1 'Deselect the chip
I got my ZENA sniffer but it does not pick up anything in RAW sniffer mode........Code:@ MRF init Addr=00000000 Value=28 Addr=00000010 Value=8C Addr=00000100 Value=01 Addr=00000110 Value=63 Addr=00001000 Value=0C Addr=00001010 Value=03 Addr=00001100 Value=77 Addr=00001110 Value=64 Addr=00010000 Value=32 Addr=00010010 Value=74 Addr=00010100 Value=62 Addr=00010110 Value=32 Addr=00011000 Value=38 Addr=00011010 Value=00 Addr=00011100 Value=19 Addr=00011110 Value=00 Addr=00100000 Value=A3 Addr=00100010 Value=38 Addr=00100100 Value=30 Addr=00100110 Value=00 Addr=00101000 Value=00 Addr=00101010 Value=00 Addr=00101100 Value=53 Addr=00101110 Value=59 Addr=00110000 Value=44 Addr=00110010 Value=00 Addr=00110100 Value=70 Addr=00110110 Value=BC Addr=00111000 Value=02 Addr=00111010 Value=01 Addr=00111100 Value=5E Addr=00111110 Value=00 MRF Config data: i=0 Register 01000000 Data=00 MRF Config data: i=1 Register 01000010 Data=00 MRF Config data: i=2 Register 01000100 Data=00 MRF Config data: i=3 Register 01000110 Data=00 MRF Config data: i=4 Register 01001000 Data=00 MRF Config data: i=5 Register 01001010 Data=00 MRF Config data: i=6 Register 01001100 Data=00 MRF Config data: i=7 Register 01001110 Data=00 Try sending 3 bytes
How can I check to see if it transmits correctly when I don't know if I can read the registers or see if it transmits?
-Stuck in RF bleakness......




Bookmarks