Information about the Device
这个芯片是Silicon Labs的产品。它是一个I2C设备,当前在0x63地址上。基本上,它具有传输和信号噪声级别测量功能。
Si4713集成了FM广播立体声传输的传输功能。该芯片还允许进行集成接收功率扫描,以识别低信号功率的FM频道。
该芯片使用命令和响应进行编程。此外,还有几个属性可以改变该芯片的行为。
用户必须遵守当地有关无线电频率(RF)传输的法规。
Device driver description
处理这个设备有两个模块,一个是I2C设备驱动程序,另一个是平台驱动程序。
I2C设备驱动程序向内核导出一个v4l2-subdev接口。所有属性也可以通过v4l2扩展控件接口访问,使用v4l2-subdev调用(g_ext_ctrls、s_ext_ctrls)即可。
平台设备驱动程序向用户空间导出一个v4l2无线电设备接口。因此,它将I2C设备驱动程序作为子设备以向实际设备发送用户命令。基本上,它是I2C设备驱动程序的包装器。
应用程序可以使用v4l2无线电API指定操作频率、静音状态等。但是大多数属性将存在于扩展控件中。
当v4l2静音属性设置为1(true)时,驱动程序将关闭芯片。
Properties description
可以使用v4l2扩展控件访问属性。这里是来自v4l2-ctl实用程序的输出:
这是它们的摘要:
• Pilot是设备发送的可听到的音调。
• pilot_frequency - 配置立体声导频音调的频率。
• pilot_deviation - 配置导频音调频率偏差水平。
• pilot_enabled - 启用或禁用导频音调特性。
• si4713设备能够对传输信号应用音频压缩。
• acomp_enabled - 启用或禁用音频动态范围控制特性。
• acomp_gain - 为音频动态范围控制设置增益。
• acomp_threshold - 设置音频动态范围控制的阈值级别。
• acomp_attack_time - 设置音频动态范围控制的攻击时间。
• acomp_release_time - 设置音频动态范围控制的释放时间。
• Limiter设置了音频偏差限制器功能。一旦发生超过偏差,就可以调整音频输入的前端增益,并始终防止超过偏差。
• limiter_enabled - 启用或禁用限制器特性。
• limiter_deviation - 配置音频频率偏差水平。
• limiter_release_time - 设置限制器释放时间。
• 调谐功率
• power_level - 设置信号传输的输出功率水平。
• antenna_capacitor - 手动选择天线调谐电容器的值,如果设置为零,则自动选择。
• 与RDS有关
• rds_ps_name - 为传输设置RDS ps name字段。
• rds_radio_text - 为传输设置RDS电台文本。
• rds_pi - 为传输设置RDS PI字段。
• rds_pty - 为传输设置RDS PTY字段。
• 与地区有关
• preemphasis - 设置要应用于传输的预加重。
RNL
这个设备还有一个接口用于测量接收到的噪声级别。要做到这一点,您应该使用ioctl设备节点。下面是一个示例代码:
struct si4713_rnl和SI4713_IOC_MEASURE_RNL在include/linux/platform_data/media/si4713.h中定义。
Stereo/Mono and RDS subchannels
该设备还可以使用可用的子通道进行配置以进行传输。为此,请使用S / G_MODULATOR ioctl并正确配置txsubchans。有关此ioctl的正确使用,请参阅V4L2 API规范。
Testing
通常使用v4l2-ctl工具来测试管理FM调谐器卡。该工具可以在v4l-dvb存储库的v4l2-apps/util目录下找到。
设置RDS ps名称的示例:
v4l2-ctl -d /dev/radio0 -c rds_ps_name="YOUR RDS PS NAME"
这将通过设备节点/dev/radio0配置RDS PS名称为"YOUR RDS PS NAME"。