一、功能介紹
CW32W031 的射頻部分支持 CAD 中斷。從 Deepsleep 進(jìn)入 STB3,開(kāi)啟 CAD 功能并進(jìn)入 RX 模式后, CW32W031 會(huì)檢測(cè)信道中是否會(huì)有 ChirpIOT ?信號(hào) , 如果存在將 CAD-IRQ 置高,MCU 內(nèi)核可以通過(guò)一定的時(shí)間來(lái)檢測(cè) CAD-IRQ 信號(hào)是否拉高來(lái)判斷信道中是否存在 ChirpIOT ?信號(hào)。
用戶可通過(guò) GPIO11 端口檢測(cè) CAD-IRQ 信號(hào),信號(hào)檢測(cè)流程如下:
?圖:信道活躍檢測(cè)(CAD)
![wKgaomUBEjCADwSYAADKwKu7wF0122.jpg](https://file1.elecfans.com/web2/M00/A4/27/wKgaomUBEjCADwSYAADKwKu7wF0122.jpg)
注:CW32W031 的 RF 部分有多種中斷源,MCU 超時(shí)設(shè)置是在等待中斷的產(chǎn)生,然后判斷中斷是否為 CAD 中斷,從而執(zhí)行不同的命令。
二、軟件設(shè)計(jì)參考
2.1 軟件設(shè)計(jì)流程
1. 芯片初始化;
2. 配置 CAD 初始化;
3. 芯片進(jìn)入接收模式;
4. 觀察 CAD-IRQ 信號(hào)。
2.2 軟件設(shè)計(jì)驗(yàn)證
2.2.1 驗(yàn)證步驟
1. 發(fā)送模組周期性發(fā)送數(shù)據(jù)包;
2. 接收模組配置為接收模式;
3. 使用邏輯分析儀抓取接收端 CAD-IRQ 信號(hào)。
2.2.2 SDK 示例
參考代碼
ret = rf_init();
if(ret != OK)
{
dis_err(" RF Init Fail");
while(1);
}
rf_set_default_para();
rf_set_cad();
while (1)// 等待邏輯分析儀檢測(cè) CAD-IRQ 信號(hào)
{
rf_irq_process();
}?
示例代碼配置了 CAD 初始化,配置 GPIO11 作為 CAD 檢測(cè) IO 口,隨后進(jìn)入接收模式。
發(fā)送模組周期性發(fā)送數(shù)據(jù)包(數(shù)據(jù)包 preamble+payload 的持續(xù)時(shí)間約 20.5ms),用邏輯分析儀抓取接收
模組 GPIO11 波形,觀察檢測(cè)結(jié)果。
2.2.3 驗(yàn)證結(jié)果
邏輯分析儀抓取結(jié)果如下圖所示:
圖:邏輯分析儀抓取結(jié)果(CAD)
![wKgZomUBEjCAQeCdAAFB-ayVNI0136.jpg](https://file1.elecfans.com/web2/M00/A2/BA/wKgZomUBEjCAQeCdAAFB-ayVNI0136.jpg)
根據(jù)結(jié)果顯示,當(dāng)發(fā)送模組發(fā)送數(shù)據(jù)包時(shí),接收模組發(fā)生了 CAD-IRQ,CAD 檢測(cè)引腳 GPIO11 被拉高約 20.5ms,維持一個(gè)完整 ChirpIOT ?數(shù)據(jù)包的時(shí)間長(zhǎng)度。
三、注意事項(xiàng)
3.1 關(guān)于 CAD 影響芯片的接收靈敏度
CAD 功能初始化時(shí),修改了芯片的接收閾值,設(shè)置不同的接收閾值,會(huì)影響芯片的接收靈敏度,并可能存在CAD 誤觸發(fā)的情況。
uint32_t PAN3028_cad_en(void)
{
PAN3028_set_gpio_output(MODULE_GPIO_CAD_IRQ);
If(PAN3028_write_spec_page_reg(PAGE1_SEL,0x0f,0x10)!=OK)
{
return FAIL;
}
return OK;
}
接收閾值的設(shè)置,需修改 PAN3028_cad_en() 函數(shù)中的寄存器配置,默認(rèn)值為 0x10,修改接收閾值對(duì)接收靈
敏度及誤觸發(fā)概率的影響如下(實(shí)驗(yàn)數(shù)據(jù)在屏蔽放環(huán)境下測(cè)試):
![wKgaomUBEjCATjNZAADGej8S8c0997.jpg](https://file1.elecfans.com/web2/M00/A4/27/wKgaomUBEjCATjNZAADGej8S8c0997.jpg)
用戶在使用 CAD 功能時(shí),需根據(jù)應(yīng)用場(chǎng)景選擇修改 PAN3028_cad_en() 函數(shù)中的寄存器值(PAGE1_SEL,0x0f, 默認(rèn)值為 0x10),在使用完 CAD 功能后,建議調(diào)用 rf_set_cad_off() 函數(shù),rf_set_cad_off() 函數(shù)可以關(guān)閉 CAD 功能并將接收閾值恢復(fù)。
3.2 關(guān)于 SDK 及演示系統(tǒng)板
SDK 中提供了 CAD 功能所需的函數(shù)接口,CAD-IRQ 被觸發(fā)時(shí),檢測(cè)引腳 GPIO11 會(huì)被拉高。演示系統(tǒng)板將GPIO11 連接到了 PB07, 具體信息可前往官網(wǎng)查看 CW32W031 的開(kāi)發(fā)板原理圖。
3.3 關(guān)于 CAD 使用方法
CW32W031 的射頻部分可以對(duì) preamble 和 payload 進(jìn)行 CAD 檢測(cè)。
3.3.1 對(duì) preamble 檢查方式
當(dāng)完整的 preamble+payload 信號(hào)到來(lái)時(shí),用戶可以在接收端通過(guò) GPIO 口讀取到 CAD-IRQ 信號(hào),CAD 檢測(cè)引腳 GPIO11被拉高,拉高時(shí)間為 preamble+payload的持續(xù)時(shí)間。此時(shí),接收端可以產(chǎn)生正確的 rxdone結(jié)果。
圖:邏輯分析儀抓取結(jié)果(完整 CAD)
![wKgaomUBEjCAXJBmAAE9Mfl0y4o741.jpg](https://file1.elecfans.com/web2/M00/A4/27/wKgaomUBEjCAXJBmAAE9Mfl0y4o741.jpg)
當(dāng)不完整的 preamble+payload 信號(hào)到來(lái)時(shí)(發(fā)射端先進(jìn)行數(shù)據(jù)發(fā)送,隨后接收端在 preamble 時(shí)間段內(nèi)打開(kāi)了 CAD 檢測(cè)),此時(shí),用戶可以在接收端通過(guò) GPIO 口讀取到 CAD-IRQ 信號(hào),CAD 檢測(cè)引腳 GPIO11 的變化有兩種情況:
1.preamble(部分)內(nèi)含有較完整信息,GPIO11 會(huì)被拉高 preamble(部分)+payload 的持續(xù)時(shí)間。此時(shí),接收端可以產(chǎn)生正確的 rxdone 結(jié)果。
圖:邏輯分析儀抓取結(jié)果(較完整 preamble)
![wKgZomUBEjCAE54PAAEAQRhPI98016.jpg](https://file1.elecfans.com/web2/M00/A2/BA/wKgZomUBEjCAE54PAAEAQRhPI98016.jpg)
2.preamble(部分)內(nèi)未含有完整信息,GPIO11 會(huì)呈現(xiàn)不規(guī)則高 - 低 - 高 - 低變換的現(xiàn)象。此時(shí),接收端不會(huì)產(chǎn)生正確的接收結(jié)果。
圖:邏輯分析儀抓取結(jié)果(不完整 preamble)
![wKgZomUBEjCAEeVvAAFH5hAr5-I407.jpg](https://file1.elecfans.com/web2/M00/A2/BA/wKgZomUBEjCAEeVvAAFH5hAr5-I407.jpg)
3.3.2 對(duì) payload 檢查方式
當(dāng)只有 payload 信號(hào)到來(lái)時(shí)(發(fā)射端先進(jìn)行數(shù)據(jù)發(fā)射,隨后接收端在 payload 時(shí)間段內(nèi)打開(kāi)了 CAD 檢測(cè)),此時(shí),由于 RX-CAD 檢測(cè)不到 preamble,CAD-IRQ 會(huì)呈現(xiàn)不規(guī)則高 - 低 - 高 - 低變換的現(xiàn)象。此時(shí),接收端不會(huì)產(chǎn)生正確的接收結(jié)果。
圖:邏輯分析儀抓取結(jié)果(只含 payload)
![wKgZomUBEjCAc0XdAAFObCv7sMo108.jpg](https://file1.elecfans.com/web2/M00/A2/BA/wKgZomUBEjCAc0XdAAFObCv7sMo108.jpg)
3.3.3 軟件應(yīng)用參考
當(dāng)設(shè)置的 CAD 誤觸發(fā)概率較少,或存在少量誤觸發(fā)率但不影響軟件應(yīng)用時(shí),可以通過(guò)檢測(cè) CAD-IRQ,GPIO11 上升沿來(lái)判斷 CAD 觸發(fā),可以認(rèn)為只要收到上升沿就是收到了 payload 信號(hào)(建議使用這種方法的接收閾值設(shè)為 0x15~0x20)。
當(dāng)設(shè)置的 CAD 誤觸發(fā)概率較高時(shí),需要結(jié)合 CAD 檢測(cè)時(shí)間用軟件方法來(lái)判斷 payload 信號(hào),CAD 檢測(cè)的時(shí)間以單個(gè) chirp 持續(xù)時(shí)間作為單位計(jì)算。單個(gè) chirp 持續(xù)時(shí)間為 2SF/BW(SF 為擴(kuò)頻因子,BW 為帶寬,BW單位為 Hz,時(shí)間單位為秒)。使用時(shí),建議將檢測(cè)時(shí)間窗口設(shè)置為 3 個(gè) chirp 持續(xù)時(shí)間為佳。用戶可以分別在 3 個(gè) chirp 對(duì)應(yīng)的位置檢測(cè) CAD 信號(hào),如果同時(shí)檢測(cè)到 CAD 信號(hào)(GPIO11 高電平),則可以認(rèn)為有信號(hào)存在。同時(shí),軟件設(shè)計(jì)需要參考 3.3.1 對(duì) preamble 檢查方式和 3.3.2 對(duì) payload 檢查方式,進(jìn)行靈活調(diào)整。
在打開(kāi) CAD 接收后,如果當(dāng)前空中存在信號(hào),那么芯片需要至少 2 個(gè) chirp 持續(xù)時(shí)間的檢測(cè),GPIO11 才能首次對(duì)外輸出高電平。一個(gè)典型的應(yīng)用方法為:
1.計(jì)算 one_chirp_time = 2SF/BW;
2.配置需要檢測(cè)的信道,rf_set_cad(),enter_rx;
3.檢測(cè) check_cad_inactive(),判斷是否檢測(cè)到 CAD 信號(hào)(下面的例程檢測(cè)了三次,適用于誤觸發(fā)較多的情況)。
uint32_t check_cad_inactive(void)
{
delay10us(one_chirp_time*2/10);
if(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1)
{
return LEVEL_INACTIVE;// 沒(méi)有 cad
}
delay10us(one_chirp_time/10);
if(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1)
{
return LEVEL_INACTIVE;
}
delay10us(one_chirp_time/10);
if(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1)
{
return LEVEL_INACTIVE;
}
return LEVEL_ACTIVE;// 有 cad
}
如果誤觸發(fā)較少,或存在少量誤觸發(fā)但不影響軟件應(yīng)用時(shí),可以將檢測(cè)次數(shù)減少為一次(例程如下),或者通過(guò) GPIO11 上升沿作為判斷依據(jù)。
uint32_t check_cad_inactive(void)
{
delay10us(one_chirp_time*2/10);
If(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1)
{
return LEVEL_INACTIVE;// 沒(méi)有 cad
}
return LEVEL_ACTIVE;// 有 cad
}
-
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44628瀏覽量
638989 -
mcu
+關(guān)注
關(guān)注
146文章
17358瀏覽量
352806 -
射頻
+關(guān)注
關(guān)注
104文章
5622瀏覽量
168284 -
CAD
+關(guān)注
關(guān)注
18文章
1097瀏覽量
72813 -
CW32
+關(guān)注
關(guān)注
1文章
218瀏覽量
751 -
CW32W031
+關(guān)注
關(guān)注
0文章
5瀏覽量
95
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
N32G451系列產(chǎn)品簡(jiǎn)介
![N32<b class='flag-5'>G</b>451<b class='flag-5'>系列產(chǎn)品</b>簡(jiǎn)介](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN4875-AVR DD系列單片機(jī)入門(mén)
![AN4875-AVR DD<b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>入門(mén)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何優(yōu)化單片機(jī)項(xiàng)目的功耗
CW32L010安全低功耗MCU,樹(shù)立M0+產(chǎn)品行業(yè)新標(biāo)桿!
生產(chǎn)單片機(jī)的公司有哪些?
單片機(jī)燒錄程序的基本步驟是什么
提高M(jìn)SP430G系列單片機(jī)的Flash擦寫(xiě)壽命的方法
![提高M(jìn)SP430<b class='flag-5'>G</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>的Flash擦寫(xiě)壽命的方法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CC13xx Sub-1G接收機(jī)靈敏度性能的實(shí)用評(píng)估及優(yōu)化方法
![CC13xx <b class='flag-5'>Sub-1G</b>接收機(jī)靈敏度性能的實(shí)用評(píng)估及優(yōu)化方法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機(jī)boot0和boot1怎么設(shè)置
國(guó)產(chǎn)單片機(jī)(MCU)崛起 —— 51系列
![國(guó)產(chǎn)<b class='flag-5'>單片機(jī)</b>(MCU)崛起 —— 51<b class='flag-5'>系列</b>](https://file1.elecfans.com/web2/M00/02/F1/wKgaoma5syyAYzztAAA5LSZZo34694.png)
HOLTEK推出BC68R2123 Sub-1GHz RF發(fā)射器OTP MCU
![HOLTEK推出BC68R2123 <b class='flag-5'>Sub-1</b>GHz RF發(fā)射器OTP MCU](https://file1.elecfans.com/web2/M00/00/F8/wKgZomay6mKAFn82AAAXd8WQhNs105.jpg)
愛(ài)普生研發(fā)S1C17W00系列16位單片機(jī)用于自動(dòng)化生產(chǎn)及其他行業(yè)
![愛(ài)普生研發(fā)S<b class='flag-5'>1C17W</b>00<b class='flag-5'>系列</b>16位<b class='flag-5'>單片機(jī)</b>用于自動(dòng)化生產(chǎn)及其他行業(yè)](https://file1.elecfans.com/web2/M00/EA/62/wKgZomZYKTeAEzCBAAEt5T1xl1M957.png)
評(píng)論