最新萌生想听收音机的想法,早上跑步的时候想听一下广播,就想着自己做一个,上班路上也比较近,基本都是电动车上下班,在路上也可以听一下。交通广播有很多实时信息,不一样的体验。
制作数字收音机,支持全球频段。自动搜台功能,耳机收听效果更好。
方案:主控+收音机芯片+功放芯片实现外放功能+电池+充放电管理。
于是先网上找了一遍,有没有适合我的模块,方便开发集成。
这货要77块钱,显示有库存是假的,至少要一个月的订货周期,要一个?我都不好意思给卖家说,算了吧。
某宝找了一下,有分散的模块,能凑合用;这几根线折腾了一两个小时,RDA5807绿色的模块边上的焊盘容易扯掉,用的时候要很小心。
RDA5807M是一款IIC通讯的芯片,实现的功能有自动搜台、音量加减、切台、屏保、时钟、电量显示、及低功耗管理等。
验证完之后自己做了一个小模块
RDA5807M+PAM8403+耳机+喇叭接口
参考:
https://oshwhub.com/yiplay/mu-kuai-rda5807-pam8403-1-01
下图为设计好的原型:
左侧为输入接口:
3.3V供电,GND,SCL,SDA,SHND(功放静音低电平有效)
右侧为输出接口:
左声道,右声道,和耳机接口,当耳机插入后外音自动停止,FM的天线并在耳机的MIC上面,所以插入耳机的音效质量会更好。
/**
* @brief Initialize RDA5807P
* @author
* @date
* @param void
* @return bool:if true,the operation is successful;otherwise is failed
* @retval
*/
bool RDA5807P_Intialization(void)
{
uint8 error_ind = 0;
uint8 RDA5807P_REGR[10]={
0x0};
uint8 i = 0;
RDA5807P_REGW[0] = 0x00;
RDA5807P_REGW[1] = 0x02;
error_ind = OperationRDAFM_2w(WRITE, (uint8 *)&RDA5807P_REGW[0], 2);
delayms(50);
error_ind = OperationRDAFM_2w(READ, (uint8 *)&RDA5807P_REGR[0], 10);
delayms(50);
gChipID = RDA5807P_REGR[8];
gChipID = ((gChipID<<8) | RDA5807P_REGR[9]);
if (gChipID == 0x5808) //RDA5807N
{