FM发射功能在车载android系统的应用

 

       很久没有写android的文章了,今晚就写一篇FM发射功能在车载电子上的应用,以及软件需要注意的地方。所谓FM发射就是充当于FM电台,频率在76-108M之间都可以,我们选用的是QN8027。这个FM发射有什么意义呢?

      比如有些主机或者后座娱乐系统播放音乐,是没有喇叭或者喇叭比较差一点,用FM发射出去,在原厂配的FM里就可以搜到这个FM发射频点,听收音机一样来接受播放的音乐,再用原厂的音响放出来,整个在车上的人都可以享受这个音乐带来的高品质享受。那么这个系统怎么实现呢?

QN8027是用IIC控制的,对初始化有一定要求,参考时钟也有讲究,跟硬件电路设计很相关。初始化参考代码如下:

 

static void QN8027_init_setting(void) {unsigned char value = 0;int ret = -1;/*reset all regs to default value*/fm_radio_write_reg(gclient, 0x0, 0x81);msleep(20);/*sleep 20ms*//*-----xtal--setup----------*/fm_radio_write_reg(gclient, 0x3, 0x30);/*osc=12M--0x33-40k 0x32--20k 0x31--10k TX digital gain=2dB*/ fm_radio_write_reg(gclient, 0x4, 0x12);/*---recalibration-----*/fm_radio_write_reg(gclient, 0x0,0x41);fm_radio_write_reg(gclient, 0x0,0x01);msleep(20);/*sleep 20ms*//*-----default---------*/fm_radio_write_reg(gclient,0x18,0xe4);/*SNR improve*/fm_radio_write_reg(gclient,0x1b,0xf0);/*Increase RF power output maximum*/fm_radio_write_reg(gclient, 0x2, 0xb9);/*enable transmit*/ret = fm_radio_read_reg(gclient, 0x0, &value);value |= 0x20;fm_radio_write_reg(gclient, 0x00, value);/*No reset. FSM runs normally*/}


       必须特别强调的一点是在切换FM发射频点的时候,会发现在高频点的时候,也就是0x0寄存器的存储FM频率的第8-9bit有值的情况下,发射天线电压幅度会降低,后面跟着发现这种高频率点,同时需要更改两个寄存器的值,后面笔者在调频率的时候,先让fm进入standby模式,设置好新的频点的时候再让fm处于transmit的模式,这样就有效解决这个输出幅度异常的问题。参考代码如下:

static int QN8027_set_frequency(unsigned int freq) {int CH = 0, ret = -1;unsigned char value = 0;if(freq < 76000 || freq > 108000) {printk("Error,wrong freq %d KHz, [76--108MHz]\n", freq);return -1;}CH = (freq - 76000)/50;printk("QN8027_set_frequency: freq = %d KHz, CH = 0x%x\n", freq, CH);fm_radio_read_reg(gclient, 0X0, &value);value = (value & 0xFC) | ((CH&0X300)>>8);value &= 0xdf;/*set standby mode*/ret = fm_radio_write_reg(gclient, 0x00, value);/*update CH[8:9]*/if(ret <0)return -1;value = CH & 0xFF;ret = fm_radio_write_reg(gclient, 0x01, value);/*update CH[0:7]*/fm_radio_read_reg(gclient, 0X0, &value);value |= 0x20;/*set transmit mode*/ret = fm_radio_write_reg(gclient, 0x00, value);return ret;}


更多相关文章

  1. Android客户端WebService访问接口(Ksoap2Android调用.net服务端)
  2. android SurfaceView播放视频
  3. Android(安卓)Studio3.0 Annotation processors must be explici
  4. android10 su
  5. Android(安卓)Camera2 HAL3 高通Qualcomm Camera底层initialize
  6. Android仿简书、淘宝等APP View弹出效果
  7. Android(安卓)ConstraintLayout
  8. 别人看的书,拿来参考
  9. Android(安卓)KK上对ALC5616调试笔记——音量调节

随机推荐

  1. Fragment 和 Activity 全通讯
  2. android 白天模式/夜间模式切换
  3. Android轮播图 banner,图片视频混播banner
  4. Cocos2d-x在win32,android和IOS下的文件读
  5. Android的FastBoot的安装与环境变量设置
  6. 子墨庖丁Android的ActionBar源码分析 (一
  7. Adobe官网曝光Android版Flash网站优化列
  8. Android JIT带来的虚拟机崩溃问题及解决
  9. Android中RecyclerView的长按
  10. android 将一些信息保存到本地,以后更新版