Go Down

Topic: I2C to Si570 (Read 3 times) previous topic - next topic

axman

Hello,

I am trying to interface the Si570 chip (numerical controlable oscillator) by I2C bus using the wires.h library. I can watch the signal on a 100MHz memory scope and on a bus pirate analyzer. Both signals look correctly compared by the I2C bus specification (Philips Semiconductors, V2.1, january 2000). The unit has a fixed address which is burned in by Silicon Labs, mostly 55h.

Cause using high frequencies inside the Si570, I used a coper cladded board as ground, very short wires for wiring ground and 100nF + 1uFTantal directly at the power supply pin. I use a voltage regulator 3,3V vor this unit and at the moment 1K pullup resistors on this voltage. The arduino nano is working with open collector outputs for the I2C lines.

I made dozens of approaches to adress the unit. The signals looks fine. The address is tranfered the right way (MSB first, 55h shifted to aah, R/W included). I tried to change the address in a loop between 0 and 127. There is no reaction from the unit. The answer is always NACK (bit 9 high). I also changed the unit to a new one, no difference. So I run out of ideas..... :smiley-sad-blue:

The Si570 is used successfully in other ham projects , but I did not find any project using arduino code. Is there someone with experience or some additional ideas how to fix the problem ? 

greetz
Axel

el_supremo

I haven't used one of those chips and a quick perusal of the datasheet only brings up a couple of questions/suggestions. The datasheet says that both SDA and SCL must be connected to the positive supply via external pullup resistors. A couple of the diagrams also seem to imply that the SDA won't work unless OE is asserted. Do you assert OE when you try to find the device?

Pete

axman

Hello Pete,

tnx for reacting. Indeed I have pullup resistors to 3,3V at SDA and SCL. Looking to the datasheet OE has an internal pullup resistor, so I left it open. I just looked to the schematics of another project and they connect OE to +3,3V ! Thanks for your idea, I will try. Maybe there is positive effect !

After reading tons of internet documents I have in my mind someone told about I2C-units which do not answer to addressing with ACKNOWLEDGE-bit. Nevertheless the units work internal correct. If Si570 works like that, the arduino-I2C-driver stops working after receiving a NACK. I analyzed drivers from other projects and found most oft the successful project use own I2C-drivers by writing and reading normal portpins. So the protocol runs in software. In this case it is easy to ignore a NACK signal.

My last chance is measuring the I2C-bus in running projects.. :smiley-roll-sweat:.  If I have a result I will post it here.

Axel


axman

Hi,

some weeks ago I found in a remark in the description of an assembly set: "It is wellknown, that the Si570 (especially the CMOS version) has a disturbed I2C communication, if the generator output does not work against a load resistor ". Sounds strange and there are no hints neither in the datasheets or in application note AN-291. I soldered a 100 ohm resistor from the (until now unconnected) output pin to ground. After that all I2C software was working correctly ! So at least the CMOS version seems to couple back internally from the generator output. The problem is: there is no way to find out this problem by measuring. The output showed before a nice signal at the initial frequency and the supply current was OK. Both values have been in the area of datasheet values.

The most simple arduino software samples to startup own development I got from WA5DBU after a email request.

Success with own eperiments...

Axel, DK4AQ

OK1MWW

Hi Alex,

I am starting with the project combinig Arduino and Si570 and because
I am total beginner in I2C communication, I was looking in Internet and I have found your posting.
I have aslo Si570 CMOS version up to 210 MHz. The datasheet says, that the output current
should be 32 mA for tests. It seems that your 100 Ohm resistor is just at the limit.
Did You try it with higher value of the resistor too ?
I do not like to load Si570 more than really necessary.

Best regards and 73!   Jirka OK1MWW

Go Up