vlambda博客
学习文章列表

调频无线发送芯片QN8027性能测试

在前天推文“7”[1]给出了制作QN8027实验板的过程。下面是当天下午该实验板进行功能测试。这为今年信标组使用声音和FM电磁波导航做些验证。

一、实验硬件模块

1. I2C总结单片机实验板

由于QN8027需要使用I2C总线进行控制,所使用的STM32F030的I2C总线控制板与在小型化RDA5807调频收音模块实验板[2]博文中所使用的I2C总线控制板是相同的。I2C实验板在博文“RDA5807 FM收音机模块”中进行了介绍。

I2C 控制电路板

SPIF030 Hardware:

  1. SPIF030 原理图:
调频无线发送芯片QN8027性能测试
SPIF030 原理图
  1. SPIF030 PCB和电路板
调频无线发送芯片QN8027性能测试
SPIF030 PCB和电路板
  1. SPIF030 Firmware: D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2020\GeneralFSPIF030 该软件是一个通用软件测试平台。其中包括有多个项目所遗留下来的代码片段。

2. 搭建面包板上的实验电路

QN8027实验板接口

下图显示了QN8027的实验接口。

调频无线发送芯片QN8027性能测试
QN8027实验板接口

在面包板上搭建实验电路板,将AN8027的I2C总线与SPIF030的I2C总结连接起来。在面包板上,从左到右的模块分别是:

1 名称 功能
1 3.3V稳压 将5V工作电源转换成3.3V
2 STM32单片机 编程产生I2C总线控制命令
3 QN8027 QN8027实验转接板
调频无线发送芯片QN8027性能测试
实验电路板

二、软件调试

1. 测试软件

测试软件是有STM32CubeMX生成的程序框架,然后再使用IAR编辑和编译环境完成代码的生成。

2. QN8027 I2C protocl

 关于QN8027I2C的软件协议以及相关的程序代码,可以查看CSDN中相关的博文。


调频无线发送芯片QN8027性能测试

点击识别其中二维码跳转至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天线输出信号。

调频无线发送芯片QN8027性能测试
DSA815频谱仪测量QN8027天线输出

测试实际输出频谱,如下图所示,对应的峰值在108Mhz,与前面所设置的位置基本相同。

调频无线发送芯片QN8027性能测试
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。测量所得到的输出频谱为:

调频无线发送芯片QN8027性能测试
设置输出频谱为90Mhz之后的输出信号频谱

这说明对于QN8027输出频谱设置功能正确。

通过收音机接收发射信号

使用一台TECSUM收音机接收信号,分别使用不同的调制波形,查看收音机输出的波形。

(1)接收的不同调制信号波形

调频无线发送芯片QN8027性能测试
正弦调制(400Hz)收音机接收到的波形
调频无线发送芯片QN8027性能测试
方波调制(400Hz)收音机接收到的波形
调频无线发送芯片QN8027性能测试
三角波调制(400Hz)收音机接收到的波形
调频无线发送芯片QN8027性能测试
锯齿波调制(400Hz)收音机接收到的波形

(2)最大调制信号幅值

通过改变调制信号的幅值,检查接收信号的失真情况。发现当输入信号的峰峰值小于1.2V的时候,输出的波形基本上没有失真。当输入信号的峰峰值超过1.2V时,输出信号开始有失真。

下面波形是输入调制信号的峰峰值等于1.5V时,接收到的正弦波开始了顶部有了饱和失真。

调制正弦波峰峰值1.5V

(3)发送与接收信号之间的延时

下面使用频率为3kHz的信号进行调制,对比发送和接收信号之间的相位,可以看到发送和接收信号中之间有了明显的相位延迟。经过波形参数估计,延迟相位大约是67.5°。

发送信号与接收信号之间的延迟

参考文献

  1. 小型化RDA5807调频收音模块实验板[3]

  2. 信标的调频发送[4]

  3. 使用AD9833谐波发送调频广播[5]

  4. 单片调频收音机[6]

  5. 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