This Old Mill

The journey of a guy getting an old CNC milling machine up and running in his garage…

Si4703 (FM radio) and Raspberry Pi

Using the Sparkfun FM Tuner evaluation board – ready designed to be used with Arduino

Other are or have tried using with RPi

My connection:

RPi     Si4703

I2C (Inter-Integrated Circuit) is an extremely simple communication scheme.  It requires only two lines to exchange data between devices, a clock line and a data line.  These two lines together are referred to as the “bus”, and the devices connected together on the bus are either masters or slaves.  I won’t try to explain the I2C basics beyond that because there are so many good resources already available.  If you don’t read anything else, please read the Texas Instruments document titled “Understanding the I2C Bus” .  It’s a quick read, and even if you think you have a good understanding of I2C, it will serve as a refresher.

Understanding how I2C works on an electronics level is one thing, but there are a few other items I’ve learned that weren’t obvious to me.

When writing data to a slave device with multiple registers (memory locations), it’s not-possible to single out a specific register on that device to write to.  When a device receives notice from the master of a write, it will begin writing at the same register each time, and sequentially iterate through the other registers for each data byte provided by the master.   There is no industry standard for which register is first written to, so each device will have it’s own scheme.  It’s important to study it’s device’s data sheet(s), to figure all this out.

%d bloggers like this: