QN8035设计指南是一份详尽的技术文档,旨在为工程师和开发者提供有关QN8035芯片的设计、应用及编程方面的全面指导与建议。
### qn8035设计指南
#### 一、软件部分
**1. 时钟的设置**
在设计过程中选择合适的时钟对于系统的稳定性和性能至关重要。针对不同的平台,需要根据实际情况调整时钟设置。
- **时钟源选择**:`qndriver.h`文件中定义了各种频率值供选择使用。
- **波形类型设定**:初始化程序需指定所需时钟的波形类型(正弦波或方波)。
- 正弦波参数为`QND_SINE_WAVE_CLOCK`,值为0x00;
- 方波参数为`QND_DIGITAL_CLOCK`,值为0x80。
硬件配置中需要注意:接入正弦波时钟源需要在外部电路添加大约56pF的耦合电容;而方波时钟源则不需要额外电容,可直接用0Ω电阻替代。
**2. 关键函数说明**
- **初始化函数**:`QND_Init()`用于系统初始化。
- **手动调台函数**:`QND_TuneToCH()`用于手动调整至指定频率。
- **设置搜频阈值的函数**:`QND_RXSetTH()`设定搜索电台时的灵敏度阈值。
- **自动搜索频道功能**:使用`QND_RXValidCH()`来查找可用频道。
**3. 函数调用流程**
1. 调用初始化函数 `QND_Init()`
2. 设置模式,可以使用宏定义或直接写入寄存器配置FM模式
- 示例代码: `QND_SetSysMode(QND_MODE_RX | QND_MODE_FM)` 或者 `QND_WriteReg(0x00, 0x11)`
3. 手动调台:`QND_TuneToCH(8980)` 设置频率为89.8MHz
4. 测试通信,如果能听到电台声音,则表明模块工作正常
**4. 搜频函数应用**
搜频功能是通过递增或减少当前的频道来实现:
1. 使用`QND_RXSetTH()`设定阈值。
2. 调用`QND_RXValidCH()`判断是否找到目标频率
3. 根据返回结果(1表示成功,0表示失败)调整搜索范围
**5. 搜频阈值设置**
搜频的灵敏度直接影响到搜台的效果:
- **IF Count**: `QND_RXSetTH()`中的参数应设定在0x01~0x05之间,数值越大搜台数量越多。
- **SNR RSSI**: 参数范围为+0~+10,值增大意味着减少搜索频道的数量
- **RSSI**: 范围设置8~11,更大值则会减少搜频的覆盖度。
为了增强抗干扰能力,在宏定义中启用立体声模式以提高性能。此方法同样适用于上述参数设定方式。
#### 二、PCB Layout设计
**1. FM铺地**
- **GND连接**: 所有FM芯片引脚直接连到底部的接地焊盘,再通过过孔与主板相连。
- **底部铺地**: 必须在底部为整个FM模块铺设大面积的地层。
**2. 各信号线设计和隔离**
- **信号线分离**: FM的关键线路(如VCC、I2C、XCLK等)之间需要足够的间距,并用GND隔离
- **I2C与XCLK**: 这些信号线上下左右都要有良好的接地,保持直线避免交叉。
- **滤波电容**: VCC线路上需安装滤波电容器,在其前加装磁珠以减少噪音。
**3. FM整体布局**
- **远离干扰源**: 避免将FM模块放置在可能产生强烈电磁干扰的元件附近(如MCU、FLASH等)。
- **屏幕设计**: 对于大屏设备,建议将FM模块置于屏幕背面,并且与排线保持一定距离。
**4. 天线位置**
- **靠近边缘**: 尽量让天线接近板子边缘并用GND隔离,至少3mm的距离
- **接口接近**: 使走线尽可能短并且避免其他干扰源
#### 三、硬件设计
**1. 时钟电路设计**
- **共晶振器使用**: FMR模块通常采用与MCU共享的晶体或由MCU产生信号供给。
- **有缘晶体选项**: 若成本不是问题,可考虑使用有缘晶体作为时钟源。
**2. 音频输出接法**
- **音频设计**: FM模块的音频直接连接到放大器或耳机接口。正确的设计会影响最终音量大小
- **影响因素**: 输出方式、负载阻