Basic part is,
Receiver initialize and setting receiving frequency
i2c_write(RADIO,0x01,0b10010000,0b00000101);//receive boot up command, receiver, crystal enabled, analogoutput i2c_write4(RADIO,0x20,0x00,s_upper2,s_lower2,0x05);//receive set frequency
Transmitting initialization part:
i2c_write(RADIO,0x01,0xd2,0x50); i2c_write5(RADIO,0x12,0x00,0x21,0x01,0x1d,0x4c); //TX FM deviation to 75kHz i2c_write5(RADIO,0x12,0x00,0x21,0x04,0b00000010,0b01111111); //TX line level i2c_write5(RADIO,0x12,0x00,0x21,0x06,0x00,0x01); //TX pre-emphasis to 50us i2c_write5(RADIO,0x12,0x00,0x22,0x00,0x00,0x03); //TX limiter enable i2c_write5(RADIO,0x12,0x00,0x21,0x04,0x21,0x5E); i2c_write5(RADIO,0x12,0x00,0x00,0x01,0x00,0xC1); i2c_write5(RADIO,0x12,0x00,0x21,0x07,0x4a,0x38); i2c_write4(RADIO,0x31,0x00,0x00,0x78,0x00); i2c_write3(RADIO,0x30,0x00,s_upper2,s_lower2);
Default deviation is not 75kHz so we have to set it. Also the default de-emphasis time constant of receiver is Asia Europe (50us) but transmitter is 75us of US.
Both SSD1306 OLED and Si4720 are connected to Mega328P through I2C.