Hello,
I read many articles but at the end I didn't find any solution.
In my hw I've a host controller and a CC1120 connected using SPI at 8 MHz.
My code has the following 3 steps:
1) init the CC1120
2) put the module in continous TX and after 3 secs put the module in IDLE
3) reset the CC1120.
These 3 steps are in a loop, and in the 90% of cases I saw the carrier at the expected frequency (868.200 MHz).
In the 10% of cases, the carrier is shifted forward of 100/150 MHz.
I read and implemented the manual calibration in the init, and everytime the loop start, I repeat the manual calibration.
My init function performs the following steps:
move Up the RESET_N pin and it stays for 20ms
move Down the RESET_N pin and it stays for 20ms
move Up the RESET_N pin and it stays for 20ms
Wait until the module status is not Chip_Not_Ready
Send all my register configurations using SPI
Strobe(Idle)
Read PARTVERSION and if it is 0x21 I'll perform a manual calibration but just after enabling in the CC1120_SETTLING_CFG register the 'manual calibration'
Strobe(NOP) in order to read the status of CC1120.
Any suggestions?
Thanks in advance
Alex