Author Topic: SI570 self-reset problem  (Read 2892 times)

0 Members and 1 Guest are viewing this topic.

Offline JuniorJackTopic starter

  • Contributor
  • Posts: 16
SI570 self-reset problem
« on: January 15, 2014, 05:44:38 pm »
Hello,

I am having specific problem with the SI570 oscillator. Have tried to search for anyone with similar problem, but so
far nothing so I was hoping if anyone can maybe help. I am trying to use the frequency range 14-112 Mhz. It seems
there are certain frequencies that are not achievable. For example 16.100 - 16.800, 18.200 - 18.300, 20.000-20.100,etc (in Mhz). Instead the chip just defaults to its startup frequency of 56.32 (it is 570CAC000141DG).

At first I thought is maybe problem with the calculation, but checking RFREQ, N1 and HSDIV - they all seems to be
valid. Very detailed debugging of the problem shows that actually the contents of the regs 7-13 after write and
unfreeze(DCO bit or M bit) is not what has been written, but instead i got the startup values.

I have also checked many software implementations available on the net for si570 drivers, non of them is reading back the registers 7-13 after write for verification, so i assume this happens only to me. The other confusing thing is that i haven't seen any mention in the pdf of reset to default if illegal register values are present, error on the I2C bus, etc.

Right now i belive this is I2C bus related problem, as the behavior changes a bit with varying the speed on the bus.
But still is working fine for most of the frequencies in the range, only small sets can not be generated.

Any suggestions are welcome, thank you.

BR
« Last Edit: January 15, 2014, 05:46:17 pm by JuniorJack »
 

Offline JuniorJackTopic starter

  • Contributor
  • Posts: 16
Re: SI570 self-reset problem
« Reply #1 on: March 05, 2014, 09:50:40 am »
Just for the sake of future Google search results. I have found the problem, it was simple typo on large frequency change, i was setting the NewGreq bit to register 137, instead of 135.

So there is undocumented feature(bug) that resets the SI570 to default frequency on such error condition. So it seems verifying the frequency after every small or large change is absolutely needed, specially for critical implementations like mine(ham transceiver).
« Last Edit: March 05, 2014, 01:00:41 pm by JuniorJack »
 

Offline joedarock

  • Contributor
  • Posts: 13
  • Country: us
Re: SI570 self-reset problem
« Reply #2 on: April 03, 2014, 07:28:32 pm »
JuniorJack

I'm having a similar problem. I'm using a PIC877A's internal MSSP module in I2C mpde, running at 100 khz to communicate with the SI570. I can write to and read back all registers from 9 to 12 with any value, no problem. However, registers 7 & 8 will only accept numbers up to a certain value and anything over that resets the part to the defaults.  Going through the 'freeze', 'set frequency', 'unfreeze', 'NewFreq' process doesn't seem to help. Also, when I read register 137, I get decimal 8 instead of the expected decimal 16. It seems to get worse when I call the write function repeatedly, so it seems like it could be an I2C problem or a combination of 2 problems.

If you have any more insight from your work, I'd like to hear it.

Joe
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf