Si4703 FM Radio of Open Source Engineering Series

  I received a task not long ago to make a gadget with Arduino, and it needs to be convenient for beginners to make PCB and solder. As a correspondent, the first thing that pops into my mind is a radio with a DSP. I found it on the Internet, and there are ready-made modules abroad. The chip solution is Silicon Labs' Si4703. The information is very complete. Later, I found a domestic version of the module. Except for the pin definition that is slightly different from the foreign version, everything else is the same. So happy to make a decision.

 

Features:

  • Receiving range 76MHz~108MHz, support coarse adjustment (1MHz step) and fine adjustment (0.1MHz step)
  • With signal strength indicator
  • With Stereo Status Indicator
  • Support up and down search
  • Support volume adjustment
  • Powered by Micro-USB interface, the working current is about 31mA

  The Arduino library of Si4703 comes from GitHub , but it doesn't quite meet my needs and habits, so I changed a lot in the end. The I 2 C clock frequency has been increased to 400kHz (measured and the rise time is acceptable), and improvements have been made to the I 2 C bus not being silent during tuning and station search.

  Since the Si4703 module can only work under the condition of 3.3V voltage, and its I/O port can only withstand 3.3V level, the whole system is powered by 3.3V power supply. According to the manual of Atmega328, the maximum clock frequency of 3.3V is not recommended to exceed 13.333MHz. However, in order to be compatible with the official bootloader and library functions of Arduino UNO, Atmega328 is used for overclocking, instead of using a low-frequency crystal or a system clock prescaler. .

  This board basically leads out all I/O. After programming the boot program to the Atmega328, the user program can be programmed to this board through the CH340 serial port board. The DTR of CH340 can be led out and connected to the TP29 of the board to avoid the need to manually reset the board when programming the program.

  The liquid crystal used this time uses the same 7660 chip as the negative pressure generating circuit reserved for the liquid crystal used last time , but the connection method of the contrast adjustment pin is different. The third pin of the liquid crystal used last time is directly connected to the resistor divider output terminal of the negative pressure generating circuit, and an external resistor can be used to adjust the voltage. The connection method this time is rather strange. Try referring to the 3.3V version of the 1602 LCD jumper in the store (disconnect J1, J2, and connect J3), and then connect the third leg of the LCD to the 3.3V power supply through a 100Ω resistor, although the display is normal , but the working current of the entire liquid crystal is as high as 84mA, among which the working current of the negative pressure generating circuit is as high as 80mA, which is obviously abnormal, so this scheme is abandoned. Finally, the third leg of the liquid crystal is suspended, disconnect J1, connect J2 and J3, cut the negative voltage output line, connect a 10kΩ resistor in series in the middle, and the working current of the liquid crystal drops to 4mA (the backlight current is 2mA). The LCD drawings used when drawing the casing are from another company, and the screen frame is larger than the last one I bought, so I made another frame to fill the gap between the LCD screen frame and the top cover. The frame and the upper cover are glued with plate washing water.

  The wall thickness of the shell is only 2mm. If the countersunk head screws are used, the PLA may explode, and the mounting holes are not designed as countersunk holes.

Attached files include schematics, light drawing files, source code, enclosure drawings

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325073546&siteId=291194637
FM