一、實(shí)驗(yàn)硬件模塊
1. I2C 總結(jié)單片機(jī)實(shí)驗(yàn)板
由于 QN8027 需要使用 I2C 總線進(jìn)行控制,所使用的 STM32F030 的 I2C 總線控制板與在小型化 RDA5807 調(diào)頻收音模塊實(shí)驗(yàn)板[2]博文中所使用的 I2C 總線控制板是相同的。I2C 實(shí)驗(yàn)板在博文“RDA5807 FM 收音機(jī)模塊”中進(jìn)行了介紹。
I2C 控制電路板
SPIF030 Hardware:
SPIF030 原理圖:
SPIF030 原理圖
SPIF030 PCB 和電路板
SPIF030 PCB 和電路板
SPIF030 Firmware: D:zhuoqingwindowARMIARSTM32ApplicationTest2020GeneralFSPIF030 該軟件是一個(gè)通用軟件測(cè)試平臺(tái)。其中包括有多個(gè)項(xiàng)目所遺留下來(lái)的代碼片段。
2. 搭建面包板上的實(shí)驗(yàn)電路
QN8027 實(shí)驗(yàn)板接口
下圖顯示了 QN8027 的實(shí)驗(yàn)接口。
QN8027 實(shí)驗(yàn)板接口
在面包板上搭建實(shí)驗(yàn)電路板,將 AN8027 的 I2C 總線與 SPIF030 的 I2C 總結(jié)連接起來(lái)。在面包板上,從左到右的模塊分別是:
實(shí)驗(yàn)電路板
二、軟件調(diào)試
1. 測(cè)試軟件
測(cè)試軟件是有 STM32CubeMX 生成的程序框架,然后再使用 IAR 編輯和編譯環(huán)境完成代碼的生成。
2. QN8027 I2C protocl
關(guān)于 QN8027I2C 的軟件協(xié)議以及相關(guān)的程序代碼,可以查看 CSDN 中相關(guān)的博文。
點(diǎn)擊識(shí)別其中二維碼跳轉(zhuǎn)至 CSDN 博文
三、QN8027 性能測(cè)試
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 所對(duì)應(yīng)的發(fā)送頻道設(shè)定值 CH=027e。根據(jù)手冊(cè)中計(jì)算輸出頻率的公式:
根據(jù)上面數(shù)值,此時(shí)輸出頻率應(yīng)該為:107.9MHz.
2. 輸出頻譜
使用 DSA815 頻譜儀測(cè)量 QN8027 天線輸出信號(hào)。
DSA815 頻譜儀測(cè)量 QN8027 天線輸出
測(cè)試實(shí)際輸出頻譜,如下圖所示,對(duì)應(yīng)的峰值在 108Mhz,與前面所設(shè)置的位置基本相同。
QN8027 輸出頻譜
3. 設(shè)置 QN8027 的頻譜
使用如下的代碼來(lái)修改輸出的頻率。
//------------------------------------------------------------------------------
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 設(shè)置輸出頻譜為 90MHz。測(cè)量所得到的輸出頻譜為:
設(shè)置輸出頻譜為 90Mhz 之后的輸出信號(hào)頻譜
這說(shuō)明對(duì)于 QN8027 輸出頻譜設(shè)置功能正確。
通過(guò)收音機(jī)接收發(fā)射信號(hào)
使用一臺(tái) TECSUM 收音機(jī)接收信號(hào),分別使用不同的調(diào)制波形,查看收音機(jī)輸出的波形。
(1)接收的不同調(diào)制信號(hào)波形
正弦調(diào)制(400Hz)收音機(jī)接收到的波形
?
方波調(diào)制(400Hz)收音機(jī)接收到的波形
?
三角波調(diào)制(400Hz)收音機(jī)接收到的波形
?
鋸齒波調(diào)制(400Hz)收音機(jī)接收到的波形
(2)最大調(diào)制信號(hào)幅值
通過(guò)改變調(diào)制信號(hào)的幅值,檢查接收信號(hào)的失真情況。發(fā)現(xiàn)當(dāng)輸入信號(hào)的峰峰值小于 1.2V 的時(shí)候,輸出的波形基本上沒(méi)有失真。當(dāng)輸入信號(hào)的峰峰值超過(guò) 1.2V 時(shí),輸出信號(hào)開(kāi)始有失真。
下面波形是輸入調(diào)制信號(hào)的峰峰值等于 1.5V 時(shí),接收到的正弦波開(kāi)始了頂部有了飽和失真。
調(diào)制正弦波峰峰值 1.5V
(3)發(fā)送與接收信號(hào)之間的延時(shí)
下面使用頻率為 3kHz 的信號(hào)進(jìn)行調(diào)制,對(duì)比發(fā)送和接收信號(hào)之間的相位,可以看到發(fā)送和接收信號(hào)中之間有了明顯的相位延遲。經(jīng)過(guò)波形參數(shù)估計(jì),延遲相位大約是 67.5°。
發(fā)送信號(hào)與接收信號(hào)之間的延遲
參考文獻(xiàn)
小型化 RDA5807 調(diào)頻收音模塊實(shí)驗(yàn)板[3]
信標(biāo)的調(diào)頻發(fā)送[4]
使用 AD9833 諧波發(fā)送調(diào)頻廣播[5]
單片調(diào)頻收音機(jī)[6]
RDA5807 FM 收音機(jī)模塊[7]
參考資料
[1]
信標(biāo)的調(diào)頻發(fā)送: https://blog.csdn.net/zhuoqingjoking97298/article/details/104710034
[2]
小型化 RDA5807 調(diào)頻收音模塊實(shí)驗(yàn)板: https://blog.csdn.net/zhuoqingjoking97298/article/details/104121689
[3]
小型化 RDA5807 調(diào)頻收音模塊實(shí)驗(yàn)板: https://blog.csdn.net/zhuoqingjoking97298/article/details/104121689
[4]
信標(biāo)的調(diào)頻發(fā)送: https://blog.csdn.net/zhuoqingjoking97298/article/details/104710034
[5]
使用 AD9833 諧波發(fā)送調(diào)頻廣播: https://blog.csdn.net/zhuoqingjoking97298/article/details/104113891
[6]
單片調(diào)頻收音機(jī): https://blog.csdn.net/zhuoqingjoking97298/article/details/104131905
[7]
RDA5807 FM 收音機(jī)模塊: https://blog.csdn.net/zhuoqingjoking97298/article/details/104116006