硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3468|回复: 3
收起左侧

Si4704收音机芯片获取信号质量使用寄存器23比寄存器22效果更好

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2016-3-8 15:07:35 | 显示全部楼层 |阅读模式
下面这个是通过寄存器23获取FM信号质量:
  1. /*
  2. *********************************************************************************************************
  3. *    函 数 名: SI4730_GetFMSignalQuality
  4. *    功能说明: 读取FM接收信号质量
  5. *    形    参: _ReadBuf 返回结果存放在此缓冲区,请保证缓冲区大小大于等于7
  6. *    返 回 值: 0 失败, 1 成功
  7. *********************************************************************************************************
  8. */
  9. uint8_t SI4730_GetFMSignalQuality(uint8_t *_ReadBuf)
  10. {
  11.     /*
  12.         FM_RSQ_STATUS
  13.         Queries the status of the Received Signal Quality (RSQ) for
  14.         the current channel.
  15.         CMD      0x23    FM_RSQ_STATUS
  16.         ARG1     0x01    Clear RSQINT
  17.         STATUS   ?0x80   Reply Status. Clear-to-send high.
  18.         RESP1    ?0x00   No blend, SNR high, low, RSSI high or low interrupts.
  19.         RESP2    ?0x01   Soft mute is not engaged, no AFC rail, valid frequency.
  20.         RESP3    ?0xD9   Pilot presence, 89% blend
  21.         RESP4    ?0x2D   RSSI = 45 dBμV
  22.         RESP5    ?0x33   SNR = 51 dB
  23.         RESP6    ?0x00
  24.         RESP7    ?0x00   Freq offset = 0 kHz
  25.     */
  26.     uint8_t ucCmdBuf[32];
  27.     uint32_t uiTimeOut;
  28.     uint32_t i;
  29.     ucCmdBuf[0] = 0x23;
  30.     ucCmdBuf[1] = 0x01;
  31.     SI4730_SendCmd(ucCmdBuf, 2);
  32.     uiTimeOut = SI4730_WaitStatus80(1000, 0);
  33.     if (uiTimeOut == 0)
  34.     {
  35.         return 0;
  36.     }
  37.     /* 连续读取7个字节的器件返回信息 */
  38.     for (i = 0; i < 7; i++)
  39.     {
  40.         i2c_Ack();
  41.         _ReadBuf[i] = i2c_ReadByte();
  42.     }
  43.     i2c_NAck();
  44.     i2c_Stop();
  45.     return 1;
  46. }
复制代码
下面这个是通过寄存22获取信号质量:
  1. /*
  2. *********************************************************************************************************
  3. *    函 数 名: SI4730_GetFMTuneStatus
  4. *    功能说明: 读取FM调谐状态
  5. *    形    参: 返回结果存放在此缓冲区,请保证缓冲区大小大于等于7
  6. *    返 回 值: 0 失败, 1 成功
  7. *********************************************************************************************************
  8. */
  9. uint8_t SI4730_GetFMTuneStatus(uint8_t *_ReadBuf)
  10. {
  11.     /*
  12.         CMD      0x22     FM_TUNE_STATUS
  13.         ARG1     0x01     Clear STC interrupt.
  14.         STATUS   ?0x80    Reply Status. Clear-to-send high.
  15.         RESP1    ?0x01    Valid Frequency.
  16.         RESP2    ?0x27    Frequency = 0x27F6 = 102.3 MHz
  17.         RESP3    ?0xF6
  18.         RESP4    ?0x2D    RSSI = 45 dBμV
  19.         RESP5    ?0x33    SNR = 51 dB
  20.         RESP6    ?0x00    MULT[7:0]
  21.         RESP7    ?0x00    Antenna tuning capacitor = 0 (range = 0–191)  READANTCAP[7:0] (Si4704/05/06/2x only)
  22.     */
  23.     uint8_t ucCmdBuf[32];
  24.     uint32_t uiTimeOut;
  25.     uint32_t i;
  26.     ucCmdBuf[0] = 0x22;
  27.     ucCmdBuf[1] = 0x01;
  28.     SI4730_SendCmd(ucCmdBuf, 2);
  29.     uiTimeOut = SI4730_WaitStatus80(100, 0);
  30.     if (uiTimeOut == 0)
  31.     {
  32.         return 0;
  33.     }
  34.     /* 连续读取7个字节的器件返回信息 */
  35.     for (i = 0; i < 7; i++)
  36.     {
  37.         i2c_Ack();
  38.         _ReadBuf[i] = i2c_ReadByte();
  39.     }
  40.     i2c_NAck();
  41.     i2c_Stop();
  42.     return 1;
  43. }
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2016-3-8 15:08:42 | 显示全部楼层
使用寄存器23有更好的动态效果,使用22的话,有时候寄存器没有变化。
回复

使用道具 举报

4

主题

11

回帖

23

积分

新手上路

积分
23
发表于 2016-3-9 14:55:59 | 显示全部楼层
大爱啊,按理说,芯片不应该这样设计吧,求更深入解释[s:123]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2016-3-9 15:16:23 | 显示全部楼层

回 luyuansheng 的帖子

luyuansheng:大爱啊,按理说,芯片不应该这样设计吧,求更深入解释[s:123] (2016-03-09 14:55) 
22寄存器还有个别的用途,在使用自动搜索的时候使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 10:15 , Processed in 0.220645 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表