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)
Could 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.