0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用STM32調(diào)試FMSDR模塊及解調(diào)FM電臺(tái)(3)

冬至子 ? 來源:硬木課堂語雀 ? 作者:硬木課堂語雀 ? 2022-10-13 16:04 ? 次閱讀

3. 調(diào)試8027使其發(fā)出單音FM信號(hào)

3.1 輸出24Mhz和驗(yàn)證I2C接口

1. 硬件連接

將FM_SDR板卡和STM32H750開發(fā)板連接。

本文中所有例子中我們都僅給MSI001使用天線,因?yàn)镼N8027離得很近,發(fā)射端不需要使用天線

本程序中操作的管腳如下描述:

pYYBAGNHxSeAW6rAAABbcGtd_0s636.png

2. PWM輸出24MHz

QN8027芯片需要輸入24MHz的時(shí)鐘作為參考信號(hào),在這里通過STM32H750的TIMER2產(chǎn)生24M的方波,提供給QN8027作為輸入?yún)⒖夹盘?hào)。

PWM信號(hào)的關(guān)鍵參數(shù)是頻率和占空比,我們分別看一下如何設(shè)定TIM2來確定輸出PWM的頻率和占空比:

PWM的輸出頻率=計(jì)數(shù)器計(jì)數(shù)頻率/(計(jì)數(shù)器的計(jì)數(shù)上限+1),計(jì)數(shù)器計(jì)數(shù)頻率在上圖中是CK_CNT,它由時(shí)鐘和觸發(fā)控制模塊輸出的CK_PSC經(jīng)過PSC分頻器得到,因此我們?cè)诔跏蓟疶IM1的時(shí)候選擇時(shí)鐘源為CK_INT,預(yù)分頻器比為1(寄存器中寫入為0),這樣我們的CK_CNT是240MHz;而計(jì)數(shù)器的計(jì)數(shù)上限就是自動(dòng)重載寄存器APR的值,設(shè)定為9;

PWM的占空比,由比較寄存器(CCR1-4的值)和計(jì)數(shù)器計(jì)數(shù)上限(APR的值)決定,設(shè)定CCR1為4的話,PWM1的占空比即為(4+1)/(9+1)= 50%。

具體TIMER輸出PWM方法介紹,可以回顧基礎(chǔ)實(shí)驗(yàn)“實(shí)驗(yàn)六TIM1輸出PWM”:

3. 硬件IIC接口配置

芯片的控制接口是I2C協(xié)議,要使芯片正常工作,首先I2C接口的操作要正常。這里利用QN8027的I2C支持可讀可寫,寫入0x00寄存器一個(gè)值,再讀出來。如果讀出和寫入的一致,說明I2C操作正常,芯片可以被控。這樣進(jìn)行后續(xù)調(diào)試才有初步把握。

需要配置STM32H750的硬件I2C,然后發(fā)出控制字操作8027芯片,確認(rèn)板卡和芯片正常工作。I2C工作速度設(shè)為100K.

也可以使用GPIO模擬I2C時(shí)序,可以回顧基礎(chǔ)實(shí)驗(yàn)“實(shí)驗(yàn)十五 矩陣鍵盤和數(shù)碼管顯示—模擬IIC”。

4. 編寫代碼

在main中使能PWM輸出,和讀寫QN8027寄存器

pYYBAGNHxUOAFqP3AACEIMt-yU4204.png

添加QN8027驅(qū)動(dòng)代碼

pYYBAGNHxWeAEEx6AAExuj22k3k629.pngpoYBAGNHxW6AXcn9AACH0QPBQKI211.png

5. PWM測(cè)試輸出

如果有條件,可以使用示波器測(cè)試QN8027_REFCLK管腳,觀測(cè)有無24M的波形。

6. Qn8027讀寫測(cè)試

keil中用debug單步調(diào)試,先向寄存器0x00寫入值0x31,再讀取寄存器0x00的值,通過Watch窗口觀察變量qn8027_read_byte值為0X31.說明I2C讀寫正確。

pYYBAGNHxYSALr8HAAD7gxpGj-8646.png

如果讀出的值和寫入的值一致,說明I2C時(shí)序和8027硬件都沒有問題。那么我們就可以繼續(xù)下一步配置。

注意,I2C時(shí)序?qū)懭脒@一步看上去雖然簡單,卻是最經(jīng)常出問題的步驟。如果遇到8027沒有反應(yīng),建議用如下方法排查:

電源測(cè)試:8027供電是否正常;

IO通斷測(cè)試:使用IO輸出高低電平,通過測(cè)量確定PCB焊接正確,且插對(duì)了孔位;

I2C時(shí)序測(cè)試:確定I2C的上拉電阻正確,使用示波器或邏輯分析儀捕獲發(fā)出的I2C時(shí)序,判斷是否I2C配置寄存器有錯(cuò)誤;FPGA寫的I2C程序,則要特別留意是否有代碼bug。

8027如果沒有應(yīng)答,觀察是否有虛焊等情況(開發(fā)板發(fā)貨前經(jīng)過測(cè)試,基本上可以排除電源和8027的焊接問題)。

3.2 將H750內(nèi)部DAC輸出的1KHz正弦波調(diào)制到98.5MHz

下面,我們將使用單片機(jī)的PA4管腳發(fā)出單音(正弦波),頻率1KHz,峰峰值1600mVpp,直流偏置1.65V。接入FMSDR開發(fā)板的調(diào)制信號(hào)管腳DAC_L。單片機(jī)管腳PA15發(fā)出24MHz的PWM信號(hào),提供芯片的參考時(shí)鐘。通過I2C接口控制QN8027芯片。

1. 硬件連接

將FM_SDR板卡和STM32H750開發(fā)板連接。

程序中操作的管腳如下描述:

pYYBAGNHxaCAaVR5AAB0mCfwZCM482.png

2. DAC輸出1kHz正弦波

STM32H750開發(fā)板輸出1kHz的正弦波,通過Timer6產(chǎn)生25k頻率的觸發(fā)事件,DAC配置為外部timer6觸發(fā)中斷。正弦波表長度為25字長,每次timer6觸發(fā)事件發(fā)送,在中斷服務(wù)程序中一直循環(huán)發(fā)送波表。

也可以使用TIMER事件觸發(fā)DMA輸出波形方法,可以回顧基礎(chǔ)實(shí)驗(yàn)“實(shí)驗(yàn)二十八 DAC應(yīng)用定時(shí)器觸發(fā)實(shí)現(xiàn)DMA輸出波形”。

DAC驅(qū)動(dòng)設(shè)計(jì)

定時(shí)器觸發(fā)DAC做DMA數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)思路 實(shí)現(xiàn)思路框圖如下:

poYBAGNHxb2ACB5OAACXG68dvhU835.png

3. QN8027設(shè)置輸出頻率為98.5MHZ

在qn8027.c文件中,添加如下代碼,配置qn8027寄存器如下,第一行是寄存器地址,第二行是寫入寄存器值。(下表對(duì)應(yīng)98.5M的頻點(diǎn))。寄存器取值參考前面調(diào)試文檔。

pYYBAGNHxdqABtsSAABFzZCbjRM737.png

I2C配置和操作在前一小節(jié)已經(jīng)講解,可以回顧前一小節(jié)查看。

4. 編寫代碼

在main中使能PWM輸出,初始化正弦波碼表,開啟TIM6和DAC。初始化qn8027頻率為98.5M.在TIM6_DAC_IRQHandler中斷中更新DAC值。

pYYBAGNHxgeAI73jAAFYP1aBspI813.png

5. 1khz正弦波輸出測(cè)試

用示波器測(cè)量DAC輸出(PA4管腳),和經(jīng)過濾波后波形。CH1(黃色)是DAC發(fā)出的1Khz正弦波,CH2(藍(lán)色)是經(jīng)過硬件濾波后qn8027輸入管腳的波形。

poYBAGNHxheALW8KAAD-kLv8V0A545.png

測(cè)試點(diǎn)如下圖(濾波前波形測(cè)量R45下側(cè),濾波后波形測(cè)量R8左右都行):

pYYBAGNHxjCAW40nAAIFcWl6kjs562.png

6. 98.5MHz FM信號(hào)測(cè)試

配置好QN8027后,1KHz的正弦波單音就被調(diào)制在98.5MHz上,用FM收音機(jī)調(diào)到98.5MHz頻點(diǎn)上就可以聽到這個(gè)1KHz的“嘟”聲。 注意:如果當(dāng)?shù)?8.5MHz上有電臺(tái),可以換一個(gè)空白的頻點(diǎn),避開已有的電臺(tái)。

成品收音機(jī)的功能是已知的,用已知來調(diào)試未知,是調(diào)試的基本思路。

除了使用成品收音機(jī)來驗(yàn)證98.5M上FM調(diào)制的1KHz信號(hào)之外,我們也可以用m302的頻譜儀來驗(yàn)證,因?yàn)閙302的帶寬有50MHz,輸入的100MHz信號(hào)雖然有衰減,但是在頻域上還是能看見的。

這里涉及到欠采樣理論。欠采樣理論不在這里講解,以圖示來說明。

poYBAGNHxlyAUIUyAABDDxjAhGU937.png

以98M的頻點(diǎn)為例,用100M采樣。信號(hào)是周期連續(xù)波,采樣脈沖是δ函數(shù)。采樣過程就相當(dāng)于時(shí)域相乘,對(duì)應(yīng)頻域卷積。就是把信號(hào)的正負(fù)頻譜進(jìn)行搬移。圖中畫出0附近的幾個(gè)搬移,-200M,-100M,0,100M,200M。為了看清楚,每對(duì)之間的高度畫的不一樣,便于區(qū)分。可以看到,在100M位置的搬移上,-98M落在2M位置。

同樣的,如果以10M采樣率采樣,經(jīng)過多個(gè)奈奎斯特域的翻折,98M的信號(hào)也會(huì)落到2M位置上。

我們將AIN1連接到FM輸出端口,開啟FFT功能:

pYYBAGNHxm6AAaIQAABpypxxpQA508.png

選擇5M帶寬(采樣率10MSPS),可以看到混疊到1.5MHz的FM信號(hào)和4MHz上的時(shí)鐘信號(hào)。如下圖。

poYBAGNHxoCAJ_5fAAHshU01Lc4447.png

從實(shí)驗(yàn)過程可以看到,欠采樣會(huì)出現(xiàn)頻譜翻折,諧波翻折,混頻翻折,會(huì)有多個(gè)頻譜線。所以實(shí)際中如果要利用欠采樣來采樣高頻信號(hào),需要添加濾波器。這里只是利用了欠采樣來查看QN8027是否發(fā)出了設(shè)置的頻點(diǎn)。

使用成品收音機(jī)或者使用頻譜儀,確認(rèn)QN8027發(fā)出正確的單音FM信號(hào)后,我們就可以使用這個(gè)“已知的單音FM信號(hào)”來調(diào)試MSi001了。單音比直接收電臺(tái)的音頻更簡單直觀的看到MSi001的采集、解調(diào)和濾波各個(gè)步驟的波形,并和已知正確波形進(jìn)行對(duì)比。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5058

    瀏覽量

    212202
  • I2C接口
    +關(guān)注

    關(guān)注

    1

    文章

    124

    瀏覽量

    25020
  • QN8027
    +關(guān)注

    關(guān)注

    2

    文章

    3

    瀏覽量

    1834
  • STM32H750
    +關(guān)注

    關(guān)注

    1

    文章

    16

    瀏覽量

    1638
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用STM32調(diào)試FMSDR模塊解調(diào)FM電臺(tái)(1)

    示波器:本實(shí)驗(yàn)我們使用硬木課堂的口袋儀器產(chǎn)品進(jìn)行測(cè)量
    的頭像 發(fā)表于 10-13 15:52 ?2556次閱讀
    使用<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>FMSDR</b><b class='flag-5'>模塊</b>及<b class='flag-5'>解調(diào)</b><b class='flag-5'>FM</b><b class='flag-5'>電臺(tái)</b>(1)

    教你最簡單做一個(gè)隨身FM電臺(tái)!X各種使用方法#電臺(tái)

    電臺(tái)FM
    Dimsmary
    發(fā)布于 :2022年07月12日 14:29:14

    FM解調(diào)器電路

    幾種FM解調(diào)器電路
    發(fā)表于 04-21 11:49 ?1883次閱讀
    <b class='flag-5'>FM</b><b class='flag-5'>解調(diào)</b>器電路

    哈爾濱文藝電臺(tái)fm頻道列表

    哈爾濱文藝電臺(tái)fm頻道列表 [FM]CH01=09980,黑龍江交通廣播CH02=10450,黑龍江生活廣播 CH03=09250,哈爾濱經(jīng)濟(jì)電臺(tái) CH04=10210,黑龍江婦女兒
    發(fā)表于 05-15 23:12 ?3687次閱讀

    FM解調(diào)器A電路

    FM解調(diào)器A電路
    發(fā)表于 03-21 19:00 ?802次閱讀
    <b class='flag-5'>FM</b><b class='flag-5'>解調(diào)</b>器A電路

    線性FM解調(diào)器電路

    線性FM解調(diào)器電路
    發(fā)表于 03-21 19:14 ?964次閱讀
    線性<b class='flag-5'>FM</b><b class='flag-5'>解調(diào)</b>器電路

    FM解調(diào)電路圖

    FM解調(diào)電路圖
    發(fā)表于 07-15 16:47 ?1078次閱讀
    <b class='flag-5'>FM</b><b class='flag-5'>解調(diào)</b>電路圖

    FM解調(diào)

    FM解調(diào)器 LM311
    發(fā)表于 09-15 10:28 ?1478次閱讀
    <b class='flag-5'>FM</b><b class='flag-5'>解調(diào)</b>器

    455KHz FM解調(diào)

    455KHz FM解調(diào)
    發(fā)表于 09-15 11:04 ?1129次閱讀
    455KHz <b class='flag-5'>FM</b><b class='flag-5'>解調(diào)</b>器

    FM調(diào)制/解調(diào)電路的設(shè)計(jì)方案分析

    ,我們得到的載波信號(hào)的電壓大于3V,最大頻率偏移5KHz,解調(diào)電路輸出的FM調(diào)制信號(hào)的電壓大于200mV可以看出我們的具體設(shè)計(jì)符合設(shè)計(jì)指標(biāo)。 關(guān)鍵詞:鎖相環(huán)、調(diào)制、解調(diào)、濾波器 一、概
    發(fā)表于 10-27 17:04 ?54次下載
    <b class='flag-5'>FM</b>調(diào)制/<b class='flag-5'>解調(diào)</b>電路的設(shè)計(jì)方案分析

    使用STM32調(diào)試FMSDR模塊解調(diào)FM電臺(tái)(2)

    當(dāng)我們使用FPGA或者STM32模塊配合FMSDR模塊使用的時(shí)候,需要從零開始調(diào)試這個(gè)電路,逐步完成:硬件好壞判斷、8027和MSI001寄
    的頭像 發(fā)表于 10-13 15:56 ?3627次閱讀
    使用<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>FMSDR</b><b class='flag-5'>模塊</b>及<b class='flag-5'>解調(diào)</b><b class='flag-5'>FM</b><b class='flag-5'>電臺(tái)</b>(2)

    使用STM32調(diào)試FMSDR模塊解調(diào)FM電臺(tái)(1)

    當(dāng)我們使用FPGA或者STM32模塊配合FMSDR模塊使用的時(shí)候,需要從零開始調(diào)試這個(gè)電路,逐步完成:硬件好壞判斷、8027和MSI001寄
    的頭像 發(fā)表于 07-06 10:50 ?1686次閱讀
    使用<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>FMSDR</b><b class='flag-5'>模塊</b>及<b class='flag-5'>解調(diào)</b><b class='flag-5'>FM</b><b class='flag-5'>電臺(tái)</b>(1)

    使用STM32調(diào)試FMSDR模塊解調(diào)FM電臺(tái)(2)

    本文中所有例子中我們都僅給MSI001使用天線,因?yàn)镼N8027離得很近,發(fā)射端不需要使用天線
    的頭像 發(fā)表于 07-06 10:54 ?1405次閱讀
    使用<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>FMSDR</b><b class='flag-5'>模塊</b>及<b class='flag-5'>解調(diào)</b><b class='flag-5'>FM</b><b class='flag-5'>電臺(tái)</b>(2)

    使用STM32調(diào)試FMSDR模塊解調(diào)FM電臺(tái)3

    MSI001芯片需要輸入24MHz的時(shí)鐘作為參考信號(hào),在這里使用專門的時(shí)鐘產(chǎn)生單元RCC產(chǎn)生24M的方波,提供給MSI001作為輸入?yún)⒖夹盘?hào)。
    的頭像 發(fā)表于 07-06 11:00 ?4006次閱讀
    使用<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>FMSDR</b><b class='flag-5'>模塊</b>及<b class='flag-5'>解調(diào)</b><b class='flag-5'>FM</b><b class='flag-5'>電臺(tái)</b>(<b class='flag-5'>3</b>)

    使用STM32調(diào)試FMSDR模塊解調(diào)FM電臺(tái)(4)

    本實(shí)驗(yàn)是在配置MSI001的頻點(diǎn)為101.7Mhz已知交通廣播電臺(tái),觀察喇叭是否能聽到交通廣播聲音,再調(diào)整MSI001的輸出幅度。
    的頭像 發(fā)表于 07-06 11:05 ?985次閱讀
    使用<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>FMSDR</b><b class='flag-5'>模塊</b>及<b class='flag-5'>解調(diào)</b><b class='flag-5'>FM</b><b class='flag-5'>電臺(tái)</b>(4)