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