一、实验硬件模块
由于 QN8027 需要使用 I2C 总线进行控制,所使用的 STM32F030 的 I2C 总线控制板与在小型化 RDA5807 调频收音模块实验板[2]博文中所使用的 I2C 总线控制板是相同的。I2C 实验板在博文“RDA5807 FM 收音机模块”中进行了介绍。
I2C 控制电路板
SPIF030 Hardware:
SPIF030 原理图:
SPIF030 原理图
SPIF030 PCB 和电路板
SPIF030 PCB 和电路板
SPIF030 Firmware: D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2020\GeneralFSPIF030 该软件是一个通用软件测试平台。其中包括有多个项目所遗留下来的代码片段。
2. 搭建面包板上的实验电路
QN8027 实验板接口
下图显示了 QN8027 的实验接口。
QN8027 实验板接口
在面包板上搭建实验电路板,将 AN8027 的 I2C 总线与 SPIF030 的 I2C 总结连接起来。在面包板上,从左到右的模块分别是:
实验电路板
二、软件调试
1. 测试软件
测试软件是有 STM32CubeMX 生成的程序框架,然后再使用 IAR 编辑和编译环境完成代码的生成。
2. QN8027 I2C protocl
关于 QN8027I2C 的软件协议以及相关的程序代码,可以查看 CSDN 中相关的博文。
点击识别其中二维码跳转至 CSDN 博文
三、QN8027 性能测试
1. 初始话程序
//------------------------------------------------------------------------------
void QN8027Init(void) {
QN8027WriteRegister(0x00, 0x81); // Set the All the register to default values
WaitTime(20); // Delay 20MS
QN8027WriteRegister(0x03, 0x10); // Using the default setting
QN8027WriteRegister(0x04, 0x33); // Set the OSC frequency : 12MHz
QN8027WriteRegister(0x00, 0x41);
QN8027WriteRegister(0x00, 0x1);
WaitTime(20);
QN8027WriteRegister(0x01, 0x7e);
QN8027WriteRegister(0x02, 0xb9);
QN8027WriteRegister(0x00, 0x22);
}
读出的寄存器值:
22 7e b9 10 33 41 44 55 00....7f 81 06
寄存器 00,01 所对应的发送频道设定值 CH=027e。根据手册中计算输出频率的公式:
根据上面数值,此时输出频率应该为:107.9MHz.
2. 输出频谱
使用 DSA815 频谱仪测量 QN8027 天线输出信号。
DSA815 频谱仪测量 QN8027 天线输出
测试实际输出频谱,如下图所示,对应的峰值在 108Mhz,与前面所设置的位置基本相同。
QN8027 输出频谱
3. 设置 QN8027 的频谱
使用如下的代码来修改输出的频率。
//------------------------------------------------------------------------------
void QN8027SetFrequency(float fMHz) {
unsigned int nChannel = (unsigned int)(fMHz - 76) * 20;
unsigned char uc00 = (unsigned char)(nChannel >> 8) | 0x20;
unsigned char uc01 = (unsigned char)(nChannel & 0xff);
unsigned char ucDim[2];
ucDim[0] = uc00;
ucDim[1] = uc01;
QN8027WriteRegisterDim(0x00, ucDim, 2);
}
在主程序初始化之后,使用 QN8027SetFrequency 设置输出频谱为 90MHz。测量所得到的输出频谱为:
设置输出频谱为 90Mhz 之后的输出信号频谱
这说明对于 QN8027 输出频谱设置功能正确。
通过收音机接收发射信号
使用一台 TECSUM 收音机接收信号,分别使用不同的调制波形,查看收音机输出的波形。
(1)接收的不同调制信号波形
正弦调制(400Hz)收音机接收到的波形
方波调制(400Hz)收音机接收到的波形
三角波调制(400Hz)收音机接收到的波形
锯齿波调制(400Hz)收音机接收到的波形
(2)最大调制信号幅值
通过改变调制信号的幅值,检查接收信号的失真情况。发现当输入信号的峰峰值小于 1.2V 的时候,输出的波形基本上没有失真。当输入信号的峰峰值超过 1.2V 时,输出信号开始有失真。
下面波形是输入调制信号的峰峰值等于 1.5V 时,接收到的正弦波开始了顶部有了饱和失真。
调制正弦波峰峰值 1.5V
(3)发送与接收信号之间的延时
下面使用频率为 3kHz 的信号进行调制,对比发送和接收信号之间的相位,可以看到发送和接收信号中之间有了明显的相位延迟。经过波形参数估计,延迟相位大约是 67.5°。
发送信号与接收信号之间的延迟
参考文献
小型化 RDA5807 调频收音模块实验板[3]
信标的调频发送[4]
使用 AD9833 谐波发送调频广播[5]
单片调频收音机[6]
RDA5807 FM 收音机模块[7]
参考资料
[1]
信标的调频发送: https://blog.csdn.net/zhuoqingjoking97298/article/details/104710034
[2]
小型化 RDA5807 调频收音模块实验板: https://blog.csdn.net/zhuoqingjoking97298/article/details/104121689
[3]
小型化 RDA5807 调频收音模块实验板: https://blog.csdn.net/zhuoqingjoking97298/article/details/104121689
[4]
信标的调频发送: https://blog.csdn.net/zhuoqingjoking97298/article/details/104710034
[5]
使用 AD9833 谐波发送调频广播: https://blog.csdn.net/zhuoqingjoking97298/article/details/104113891
[6]
单片调频收音机: https://blog.csdn.net/zhuoqingjoking97298/article/details/104131905
[7]
RDA5807 FM 收音机模块: https://blog.csdn.net/zhuoqingjoking97298/article/details/104116006