Radiono is an adaptation of Arduino for rigs and radio test equipment by Ashhar Farhan, VU2ESE.
A 28 pin DIP Amtel ATMEGA328P IC is the heart of this system. It controls an Si570 as the local oscillator for the rigs. The source code for tuning, band-switching etc. is released under GPL on github.
Interfacing the Si570
The Si570 is programmed through I2C control lines.
Briefly, the I2C is a bidirectional serial data bus between a master device and a slave device. The master device provides clock pulses on a separate line and on each clock pulse a single bit of data is read or written.
As the data line should be capable of being driven by the Master as well as Slave devices, I2C protocol uses external pull up resistors on the data as well as clock lines. The data line can be pulled low by either the master or the slave, depending upon whether it is a write or a read operation.
The Si570 uses 3.3V supply and behaves as an I2C slave device. It expects I2C signals that toggles between 0 and 3.3V. External pull-up resistors connected to 3.3V supply line will satisfy the Si570 requirements. They are also compatible with the 5V Arduino when running 3.3V.
Wire.h and Wire.cpp are two files from Arduino's library that implement the I2C protocol. However, they enable Arduino's internal pull-up resistors which put 5V on the I2C lines. This voltage is too much for the Si570. Hence, the internal pull-ups done by the Wire library has to be disabled.
This is mentioned in the radiono code as well.
To disable the software pull ups find the file twi.c and comment out the following two digitalWrite instructions:
// activate internal pullups for twi. digitalWrite(SDA, 1); digitalWrite(SCL, 1);
then when you recompile the main Sketch the software pull ups will be disabled.
NOTE: If you are compiling for Mega2560 board, this contains hardware pull-up resistors to the 5V line - you need to PHYSICALLY REMOVE THE RESISTORS from the board. There is a 4 block chip resistor package next to the power on light - only two out of the four resistors are used in total and these tie the SDA (pin 20) and SCL (pin 21)high, so you can safely remove the entire chip.
It is a good idea to confirm with meter that the SDA and SCL pins are not at 5V before connecting si570!