Since I chose the SI570 for local oscillator in mcHF I was wondering how good my implementation of the comm routines really is. After spending long time of tracking a bug with setting some specific frequencies, I have found that the chip has an internal mechanism that causes it to revert to factory startup frequency if error occurs in the frequency setup routine.
Off course this is very troublesome for a device that can actually transmit – we need to be sure our transmission is on the frequency we see on the LCD and we are not breaking the conditions of our license. Also if this happens on one specific error condition, then it is highly likely that other error conditions can cause the same reset routine.
My solution: verify the frequency after every change – small or large. Yes it takes bit more time, but it never hurts to be on the safe side. The actual verify process is as simple as read back the registers 7 to 12 and compare their contents with the values just sent via the write command.
None of the SI570 implementations I have found on the net implement this verify, and probably there is a simple explanation why – the SI570 datasheet does not mention this reset mechanism.