2018-04-03 10:02 PM
Hi,
First of all, sorry for the lengthy message.
We are developing a 433 MHz transceiver using SPIRIT1. We were able to run 'SDK_BasicGenreic_A' program provided with the development kit on 'STEVAL-IKR002V3D' daughter-board. But, when we are trying to dump the same code in our own board, SPIRIT1 is unable to enter into 'LOCK' state. We have ensured that the following conditions are met:
1) SPI communication is working (able to read and write to SPIRIT1 registers)
2) 50 MHz sinusoidal signal got generated at crystal's terminals (observed using DSO)
3) SPIRIT1 is entering into 'STANDBY' and 'READY' modes (checked MC_STATE1_BASE register status)
We have compared all the register values at various stages of the code with those of the reference board's registers. All of them are
exactly the same
, except for '0xB2
', which should have been changed to 0xCA, but still is 0x42 (default value).The major difference is occurring, when we executed '
SpiritCmdStrobeLockTx()
' command, whose path in 'SPIRIT Library' is provided below:SpiritRadioInit() => SpiritRadioSetFrequencyBase() => SpiritManagementWaVcoCalibration() => SpiritCmdStrobeLockTx()
After this command, several registers got changed in case of ''STEVAL-IKR002V3D'', whereas in our board, only few registers got changed. The differences are shown below in CSV format:
Register,STEVAL (Hex),Our Board (Hex),STEVAL (binary),STEVAL (binary)
2,2,a2,10,10100010 3,aa,a2,10101010,10100010 4,aa,a2,10101010,10100010 7,2a,a3,101010,10100011 8,0a,0c,1010,1100 9,d4,84,11010100,10000100 A,55,ec,1010101,11101100 B,94,51,10010100,1010001 C,0a,fc,1010,11111100 D,aa,a3,10101010,10100011 10,2,3,10,11 11,0a,0e,1010,1110 12,14,1a,10100,11010 13,2a,25,101010,100101 14,2a,35,101010,110101 15,54,40,1010100,1000000 16,55,4e,1010101,1001110 18,4,7,100,111 1A,94,83,10010100,10000011 1B,0a,1a,1010,11010 1C,55,45,1010101,1000101 1D,15,23,10101,100011 1E,d5,48,11010101,1001000 1F,15,18,10101,11000 20,2a,25,101010,100101 21,d4,e3,11010100,11100011 22,2a,24,101010,100100 23,54,58,1010100,1011000 24,2a,22,101010,100010 25,54,62,1010100,1100010 27,4,5,100,101 28,0a,0,1010,0 31,4,7,100,111 32,14,1e,10100,11110 33,2a,20,101010,100000 36,8a,88,10001010,10001000 37,8a,88,10001010,10001000 38,8a,88,10001010,10001000 39,8a,88,10001010,10001000 3B,2a,20,101010,100000 3C,2a,20,101010,100000 3E,2a,30,101010,110000 3F,2a,30,101010,110000 40,28,30,101000,110000 41,28,30,101000,110000 44,2,0,10,0 4D,0a,0,1010,0 4F,54,70,1010100,1110000 50,0,2,0,10 53,0,1,0,1 54,4,0,100,0 55,0,1,0,1 57,0,1,0,1 59,2,3,10,11 60,8,0,1000,0 64,d4,ff,11010100,11111111 6D,54,70,1010100,1110000 6E,54,48,1010100,1001000 6F,54,48,1010100,1001000 99,80,8,10000000,1000 9A,e3,f7,11100011,11110111 9E,db,5b,11011011,1011011 9F,a0,20,10100000,100000 A1,25,11,100101,10001 A3,35,37,110101,110111 B2,ca,42,11001010,1000010 BC,22,4,100010,100 C1,1f,7,11111,111 E5,40,0,1000000,0 FA,2,0,10,0 FB,6f,0d,1101111,1101Could you please let us know what could be the problem that it is preventing our board entering into LOCK mode?
Thanks & Regards,
S. R. Zinka
============================================================
P.S. We think that the problem could be with SMPS power supply! Someone mentioned about a similar problem in another forum message, where the issue got resolved by providing external power to the SMPS IN pin. At least in their case, they were able to enter LOCKWON state, whereas we are unable to enter into that state too.
Please find the attached file, containing the values of all the registers
before and after
SpiritCmdStrobeLockTx() command.#spirit1 #registers #smps #lock