Close

Source code (Arduino sketch) uploaded to GitHub

A project log for An exotic FM transceiver using Si4720

Incredible integration of Si4720 enables very simple and stable FM transceiver by single chip!

kodera2tkodera2t 04/19/2018 at 12:390 Comments

Here I uploaded Arduino sketch for Si4720 FM transceiver.

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.

Discussions