02.硬件08nrfm無線通信模塊rf905開發(fā)_第1頁
02.硬件08nrfm無線通信模塊rf905開發(fā)_第2頁
02.硬件08nrfm無線通信模塊rf905開發(fā)_第3頁
02.硬件08nrfm無線通信模塊rf905開發(fā)_第4頁
02.硬件08nrfm無線通信模塊rf905開發(fā)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Fytoo TechnRF905無線收發(fā)模塊開發(fā)指南(V3.0)一、模塊介紹目前我公司共有3款基于nRF905的微功率無線模塊(客戶定制款除外),此幾款的管腳排列及程序均完全兼容:RF905B(PCB板載天線),模塊尺寸:38mm*44mm(最寬處)Fytoo TechRF905SE(標(biāo)配短膠棒天線,其它天線可選;尺寸32*19mm)RF905RD(新推本,尺寸更小,精度更高,標(biāo)配水平外置天線)模塊尺寸25mm*19mm(尺寸不含天線及SMA座);(可配置高品質(zhì)鍍銀彈簧天線,極具性價(jià)比,適合大批量使用)模塊性能及特點(diǎn):(1) 433MHz 開放ISM頻段免證使用(2) 最高工作速率50kbps

2、,高效GFSK調(diào)制,能力強(qiáng),特別適合工業(yè)控制場(chǎng)合(3)最多可設(shè)125頻道,滿足多點(diǎn)通信和跳頻通信需要(4)內(nèi)置硬件CRC檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制(5)低功耗1.9 -3.6V 工作,待機(jī)模式下狀態(tài)僅為2.5uA(6)收發(fā)模式切換時(shí)間 650us(7)模塊可設(shè)地址,只有收到本機(jī)地址時(shí)才會(huì)輸出數(shù)據(jù)(提供中斷指示),可直接接各種單片機(jī)使用,編程非常方便Fytoo Tech(8) TX Mode: 在+10dBm情況下,電流為30mA; RX Mode: 12.2mA(9) 標(biāo)準(zhǔn)雙排2.54mm間距DIP接口,便于應(yīng)用(10) 本公司提供目前幾大主流單片機(jī)(AVR,MSP430,51,C8051F等

3、)的開發(fā)代碼,客戶只需要將代碼移植,就能輕松應(yīng)用本模塊;同時(shí)配套基于目前主流單片機(jī)(AVR,MSP430,51等)的無線開發(fā)系統(tǒng),便于實(shí)地測(cè)試評(píng)估及幫助更快實(shí)現(xiàn)無線應(yīng)用,歡迎配套選購(gòu)(11) RF905B為PCB載天線,直線可視通訊距離約100米,RF905SE及RF905RD,外置膠棒天線,直線可視通訊距離可達(dá)200-300米。如果配備高增益天線,則可以達(dá)到更遠(yuǎn)二、接口電路管腳說明管腳名稱管腳功能說明1VCC電源電源+3.33.6V DC2TX_EN數(shù)字輸入TX_EN= 1 TX 模式 TX_EN= 0 RX 模式Fytoo Tech說明:(1) VCC腳接電壓范圍為3.3V3.6V之間,不

4、能在這個(gè)區(qū)間之外,超過3.6V將會(huì)燒毀模塊。電壓3.3V左右(2) 除電源VCC和接地端,其余腳都可以直接和普通的5V單片機(jī)IO口直接相連,無需電平轉(zhuǎn)換。當(dāng)然對(duì)3V左右的單片機(jī)更加適用(3) 硬件上沒有SPI的單片機(jī),可以用普通單片機(jī)IO口模擬SPI,不需要單片機(jī)SPI模塊介入,只需添加代碼模擬SPI時(shí)序即可3TRX_CE數(shù)字輸入使能發(fā)射或接收4PWR_UP數(shù)字輸入上電5uCLK時(shí)鐘輸出本模塊該腳廢棄不用,向后兼容6CD數(shù)字輸出載波檢測(cè)7AM數(shù)字輸出地址匹配8DR數(shù)字輸出接收或發(fā)射數(shù)據(jù)完成9MISOSPI 接口SPI 輸出10MOSISPI 接口SPI 輸入11SCKSPI 時(shí)鐘SPI 時(shí)鐘1

5、2CSNSPI 使能SPI 使能13GND地接地14GND地接地Fytoo Tech(4) 13腳、14腳為接地腳,需要和母板的邏輯地連接起來(5) 排針間距為100mil/2.54mm,標(biāo)準(zhǔn)DIP插針,如果需要其他封裝接口,比如密腳插針,或者其他形式的接口,可以們定做(6) 與51系列單片機(jī)P0口連接時(shí)候,需要加10K的上拉電阻,與其余口連接不需要(7) 其他系列的單片機(jī),如果是5V的,請(qǐng)參考該系列單片機(jī)IO口輸出電流大小,如果超過10mA,需要串聯(lián)電阻分壓,否則容易燒毀模塊! 如果是3.3V的,可以直接和RF905模塊的IO口線連接。三、模塊引腳和電氣參數(shù)說明模塊使用公司的 RF905開發(fā)

6、而成。RF905 單片無線收發(fā)器工作在433/868/915MHZ 的ISM 頻段由一個(gè)完全集成的頻率調(diào)制器一個(gè)帶解調(diào)器的一個(gè)功率放大器一個(gè)晶體震蕩器和一個(gè)調(diào)節(jié)器組成ShockBurst 工作模式的特點(diǎn)是自動(dòng)產(chǎn)生前導(dǎo)碼 和 CRC 可以很容易通過SPI 接口進(jìn)行編程配置電流消耗很低在為10dBm 時(shí)發(fā)射電流為30mA 接收電流為12.5mA. 進(jìn)入ERDOWN 模式可以很容易實(shí)現(xiàn)節(jié)電.nRF905模塊性能參考數(shù)據(jù)參數(shù)數(shù)值最低工作電壓3.0V最大10dBmFytooTechnRF905模塊工作電壓與最大發(fā)射增益參考數(shù)據(jù)四、模塊工作方式RF905一共有四種工作模式, 其中有兩種活動(dòng)RX/TX 模式

7、和兩種節(jié)電模式?;顒?dòng)模式ShockBurst RX; ShockBurst TX節(jié)電模式:工作電壓(模塊VCC供電電壓)模塊最大發(fā)射增益(dBm)+3.3V+7.3dBm+3.6V+10dBm最大數(shù)據(jù)傳輸率50kbps輸出功率為-10 dBm 時(shí)工作電流9mA接收模式時(shí)工作電流12.5mA溫度范圍-40 to +85典型靈敏度-100dBmERDOWN 模式時(shí)工作電流2.5uAFytoo Tech掉電 ;STANDBYnRF905 工作模式由TRX_CE、TX_EN、PWR_UP的設(shè)置來設(shè)定。4.1 ShockBurst 模式ShockBurstTM收發(fā)模式下,使用片內(nèi)的先入先出堆棧區(qū),數(shù)據(jù)低

8、速?gòu)奈⒖刂破魉腿?,但高速發(fā)射,這樣可以盡量節(jié)能,因此,使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率。與射頻協(xié)議相關(guān)的所有高速信號(hào)處理都在片內(nèi)進(jìn)行,這種做法有三大好處:盡量節(jié)能;低的系統(tǒng)費(fèi)用(低速微處理器也能進(jìn)行高速射頻發(fā)射);數(shù)據(jù)在空中停留時(shí)間短,性高。ShockBurstTM技術(shù)同時(shí)也減小了整個(gè)系統(tǒng)的平均工作電流。在ShockBurstTM收發(fā)模式下, RF905自動(dòng)處理字頭和CRC。在接收數(shù)據(jù)時(shí),自動(dòng)把字頭和CRC移去。在發(fā)送數(shù)據(jù)時(shí),自動(dòng)加上字頭和CRC,當(dāng)發(fā)送過程完成后,DR引腳通知微處理器數(shù)據(jù)發(fā)射完畢。4.1.1 ShockBurst TX 發(fā)送流程PWR_UPTRX_CETX_E

9、N工作模式0XX掉電和SPI 編程10XStandby 和SPI 編程110ShockBurst RX111ShockBurst TXFytoo Tech典型的RF905發(fā)送流程分以下幾步:A. 當(dāng)微控制器有數(shù)據(jù)要發(fā)送時(shí),通過SPI接口,按時(shí)序把的地址和要發(fā)送的數(shù)據(jù)送傳給RF905,SPI接口的速率在通信協(xié)議和器件配置時(shí)確定;B. 微控制器置高TRX_CE和TX_EN,激發(fā)RF905的ShockBurstTM發(fā)送模式;C. RF905的ShockBurstTM發(fā)送:(1)射頻寄存器自動(dòng)開啟;(2)數(shù)據(jù)打包(加字頭和CRC);(3)發(fā)送數(shù)據(jù)包;(4)當(dāng)數(shù)據(jù)發(fā)送完成,數(shù)據(jù)準(zhǔn)備好引腳被置高;D. A

10、UTO_RETRAN被置高,RF905不斷重發(fā),直到TRX_CE被置低;E. 當(dāng)TRX_CE被置低,RF905發(fā)送過程完成,自動(dòng)進(jìn)入空閑模式。 注意:ShockBurstTM工作模式保證,一旦發(fā)送數(shù)據(jù)的過程開始,無論TRX_EN和TX_EN引腳是高或低,發(fā)送過程都會(huì)被處理完。只有一個(gè)數(shù)據(jù)包被發(fā)送完畢,RF905才能接受下一個(gè)發(fā)送數(shù)據(jù)包。4.1.2 ShockBurst RX 接收流程接收流程A.當(dāng)TRX_CE為高、TX_EN為低時(shí),RF905進(jìn)入ShockBurstTM接收模式;B.650us后,RF905不斷監(jiān)測(cè),等待接收數(shù)據(jù);C.當(dāng)RF905檢測(cè)到同一頻段的載波時(shí),載波檢測(cè)引腳被置高;D.

11、當(dāng)接收到一個(gè)相匹配的地址,AM引腳被置高;Fytoo TechE. 當(dāng)一個(gè)正確的數(shù)據(jù)包接收完畢, RF905自動(dòng)移去字頭、地址和CRC校驗(yàn)位,然后把DR引腳置高F.微控制器把TRX_CE置低,nRF905進(jìn)入空閑模式;G.微控制器通過SPI口,以一定的速率把數(shù)據(jù)移到微控制器內(nèi);H.當(dāng)所有的數(shù)據(jù)接收完畢,nRF905把DR引腳和AM引腳置低;I.nRF905此時(shí)可以進(jìn)入ShockBurstTM接收模式、ShockBurstTM發(fā)送模式或關(guān)機(jī)模式。當(dāng)正在接收一個(gè)數(shù)據(jù)包時(shí),TRX_CE或TX_EN引腳的狀態(tài)發(fā)生改變,RF905立即把其工作模式改變,數(shù)據(jù)包則丟失。當(dāng)微處理器接到AM引腳的信號(hào)之后,其就

12、知道RF905正在接收數(shù)據(jù)包,其可以決定是讓RF905繼續(xù)接收該數(shù)據(jù)包還是進(jìn)入另一個(gè)工作模式。4.1.3節(jié)能模式RF905的節(jié)能模式包括關(guān)機(jī)模式和節(jié)能模式。在關(guān)機(jī)模式,RF905的工作電流最小,一般為2.5uA。進(jìn)入關(guān)機(jī)模式后,RF905保持配置字中的內(nèi)容,但不會(huì)接收或發(fā)送任何數(shù)據(jù)。 空閑模式有利于減小工作電流,其從空閑模式到發(fā)送模式或接收模式的啟動(dòng)時(shí)間也比較短。在空閑模式下,RF905的部分晶體振蕩器處于工作狀態(tài)。五、配置RF905模塊所有配置字都是通過SPI接口送給RF905。SIP接口的工作方式可通過SPI指令進(jìn)行設(shè)置。當(dāng)RF905處于空閑模式或關(guān)機(jī)模式時(shí),SPI接口可以保持在工Fyto

13、o Tech作狀態(tài)。5.1 SPI接口寄存器配置SPI接口由狀態(tài)寄存器、射頻配置寄存器、發(fā)送地址寄存器、發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器5個(gè)寄存器組成。狀態(tài)寄存器包含數(shù)據(jù)準(zhǔn)備好引腳狀態(tài)信息和地址匹配引腳狀態(tài)信息;射頻配置寄存器包含收發(fā)器配置信息,如頻率和輸出功能等;發(fā)送地址寄存器包含的地址和數(shù)據(jù)的字節(jié)數(shù);發(fā)送數(shù)據(jù)寄存器包含待發(fā)送的數(shù)據(jù)包的信息,如字節(jié)數(shù)等;接收數(shù)據(jù)寄存器包含要接收的數(shù)據(jù)的字節(jié)數(shù)等信息。SPI接口由5個(gè)寄存器組成執(zhí)行寄存器的回讀模式來確認(rèn)寄存器的內(nèi)容SPI接口和5個(gè)寄存器狀態(tài)寄存器Sus-Register寄存器包含數(shù)據(jù)就緒DR 和地址匹配AM 狀態(tài)RF配置寄存器RF-Configu

14、ration RegisterFytoo Tech寄存器包含收發(fā)器的頻率,輸出功率等配置信息發(fā)送地址TX-Address寄存器包含目標(biāo)器件地址字節(jié)長(zhǎng)度由配置寄存器設(shè)置發(fā)送有效數(shù)據(jù)TX-Payload寄存器包含發(fā)送的有效ShockBurst 數(shù)據(jù)包數(shù)據(jù)字節(jié)長(zhǎng)度由配置寄存器設(shè)置接收有效數(shù)據(jù)TX-Payload寄存器包含接收到的有效ShockBurst 數(shù)據(jù)包數(shù)據(jù)字節(jié)長(zhǎng)度由配置寄存器設(shè)置在寄存器中的有效數(shù)據(jù)由數(shù)據(jù)準(zhǔn)備就緒DR 指示5.2 SPI 指令設(shè)置當(dāng)CSN 為低時(shí), SPI接口開始等待一條指令。任何一條新指令均由CSN 的由高到低的轉(zhuǎn)換開始。用于SPI 接口的有用命令見下表:SPI 串行接口指

15、令設(shè)置指令名稱指令格式SPI 串行接口指令操作W_CONFIG (WC)0000AAAA寫配置寄存器AAAA寫操作的開始字節(jié)字節(jié)數(shù)量取決于AAAA的開始地址R_CONFIG (RC)0001AAAA讀配置寄存器AAAA讀操作的開始字節(jié)字節(jié)數(shù)量取決于AAAA的開始地址FytooTech5.3 SPI 時(shí)序SPI 讀操作W_TX_PAYLOA D (WTP)00100000寫TX 有效數(shù)據(jù)1-32 字節(jié)寫操作全部從字節(jié)0 開始R_TX_PAYLOA D (RTP)00100001讀TX 有效數(shù)據(jù)1-32 字節(jié)讀操作全部從字節(jié)0 開始W_TX_ADDRES S (WTA)00100010寫TX 地址

16、1-4 字節(jié)寫操作全部從字節(jié)0開始R_TX_ADDRES S (RTA)00100011讀TX 地址1-4 字節(jié)讀操作全部從字節(jié)0開始R_RX_PAYLOA D (RRP)00100100讀RX 有效數(shù)據(jù)1-32 字節(jié)讀操作全部從字節(jié)0 開始CHANNEL_CON FIG (CC)1000pphc cccccccc快速設(shè)置配置寄存器中CH_NO HFREQ_PLL和PA_PWR 的命令CH_NO=ccccccccc HFREQ_PLL=h PA_PWR=ppFytooTechSPI 寫操作5.4 配置寄存器RF-Configuration-Register說明參數(shù)位寬說明CH_NO9同HFRE

17、Q_PLL 一起設(shè)置中心頻率默認(rèn)值=001101100b=180d FRF= 422.4+ CH_NOd/10 *(1+ HFREQ_PLLd)MHZHFREQ_ PLL1設(shè)置PLL 在433 或868/915MHZ 模式默認(rèn)值=0; 0Fytoo Tech-器件工作在433MHZ 頻段;1-器件工作在 868/915MHZ 頻段PA_PWR2輸出功率默認(rèn)值=00 00 -10dBm 01 -2dBm 10 +6dBm11 +10dBmRX_RED_ PWR1降低接收模式電流消耗至1.6mA 靈敏度降低默認(rèn)值=0 0 -正常模式1 -低功耗模式AUTO_ RETRAN1重發(fā)數(shù)據(jù)如果TX 寄存器

18、的TRX_CE 和TX_EN 被設(shè)置為高默認(rèn)值=0 0 -不重發(fā)數(shù)據(jù)1 -重發(fā)數(shù)據(jù)包RX_AWF3RX 地址寬度默認(rèn)值=100 001 -1 字節(jié)RX 地址寬度100 -4 字節(jié)RX 地址寬度TX_AWF3TX 地址寬度默認(rèn)值=100 001 -1 字節(jié)TX 地址寬度100 -4 字節(jié)TX 地址寬度RX_PW6RX 接收有效數(shù)據(jù)寬度默認(rèn)值=100000 000001 -1字節(jié)RX 有效數(shù)據(jù)寬度000010 -2 字節(jié)RX 有效數(shù)據(jù)寬度100000 -32 字節(jié)RX 有效數(shù)據(jù)寬度TX_PW6TX 有效數(shù)據(jù)寬度默認(rèn)值=100000 000001 -1 字節(jié) TX 有效數(shù)據(jù)寬度000010 -2 字

19、節(jié)TX 有效數(shù)據(jù)寬度100000 -32 字節(jié)TX 有效數(shù)據(jù)寬度RX_ ADDRESS32RX 地址使用字節(jié)依賴于RX_AFW 默認(rèn)值=E7E7E7E7hUP_CLK_ FREQ2輸出時(shí)鐘頻率默認(rèn)值=11 00 -4MHZ 01 -2MHZ 10-1MHZ 11 -500KHZFytooTech5.5 配置寄存器內(nèi)容RF-Configuration-Register( R/W)字節(jié)#內(nèi)容位7 0 MSB=BIT7初始化值0Bit7 00110_11001Bit7:6沒用AUTO_RETRAN RX_RED_PWR PA_PWR1:0 HFREQ_PLL CH_NO80000_00002Bit7

20、 沒用TX_AFW2:0 Bit3 沒用 RX_AFW2:00100_01003Bit7:6沒用RX_PWR5:00010_00004Bit7:6沒用TX_PWR5:00010_00005RX 地址0 字節(jié)E7UP_CLK_EN1輸出時(shí)鐘使能默認(rèn)值=1 0 -沒有外部時(shí)鐘1 -外部時(shí)鐘信號(hào)使能XOF3晶體振蕩器頻率必須依據(jù)外部晶體的標(biāo)稱頻率設(shè)置默認(rèn)值=100 000 -4MHZ 001 -8MHZ 010 -12MHZ011 -16MHZ 100 -20MHZCRC_EN1CRC 校驗(yàn)允許默認(rèn)值=1 0 -不允許1 -允許CRC_ MODE1CRC 模式默認(rèn)值=1 0 -8 位CRC 校驗(yàn)位1

21、 -16 位 CRC 校驗(yàn)位Fytoo TechTX_ADDRESS(R/W)字節(jié)#內(nèi)容位7 0 MSB=BIT7初始化值0TX_ADDRESS7:0E71TX_ ADDRESS 15:8E7TX_PAYLOAD(R/W)字節(jié)#內(nèi)容位7 0 MSB=BIT7初始化值0TX_PAYLOAD7:0X1TX_PAYLOAD15:8XXX30TX_PAYLOAD247:240X31TX_PAYLOAD255:248X6RX 地址1 字節(jié)E77RX 地址2 字節(jié)E78RX 地址3 字節(jié)E79CRC_ 模式 CRC 校驗(yàn)允許X OF2:0 UP_CLK_EN UP_CLK_FREQ1:01110_0111

22、FytooTech注意:射頻寄存器的各位的長(zhǎng)度是固定的。然而,在ShockBurstTM收發(fā)過,TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS 4個(gè)寄存器使用字節(jié)數(shù)由配置字決定。RF905進(jìn)入關(guān)機(jī)模式或空閑模式時(shí),寄存器中的內(nèi)容保持不變。SUS_REGISTER(R)字節(jié)#內(nèi)容位7 0 MSB=BIT7初始化值0AM bit6 沒用DR bit4:0 沒用E7RX_PAYLOAD(R)字節(jié)#內(nèi)容位7 0 MSB=BIT7初始化值0RX_PAYLOAD7:0X1RX_PAYLOAD15:8XXX30RX_PAYLOAD247:240X31RX_PAYLOA

23、D255:248X2TX_ ADDRESS 23:16E73TX_ ADDRESS 31:24E7Fytoo Tech六、RF905編程指南使用RF905模塊無需掌握任何專業(yè)無線或高頻方面的理論,讀者只需要具備一定的單片機(jī)應(yīng)用基礎(chǔ)即可。本文檔沒有涉及到,讀者可以參考nRF905手冊(cè)。6.1nRF905配置寄存器字節(jié)0:7:0 CH_NO7:0:連同字節(jié)1的CH_NO8和HFREQ_PLL控制905的載波頻段參考設(shè)置:Operating frequency HFREQ_PLLCH_NO430.0 MHz0001001100Fytoo Tech433.1MHz0001101011433.2MHz0

24、001101100434.7MHz0001111011862.0MHz1001010110868.2MHz1001110101868.4MHz1001110110869.8MHz1001111101902.2MHz1100011111902.4MHz1100100000927.8MHz1110011111載波頻率的計(jì)算公式:字節(jié)1:0CH_NO 8 :參見字節(jié)01HFREQ_PLL :Fytoo Tech0- 器件工作在433MHZ頻段1- 期間工作在868/915MHZ頻段3:2 PA_PWR :輸出功率00-10dBm (默認(rèn))01-2dBm10+6dBm11+10dBm4 RX_RED_

25、PWR :降低接收模式電流消耗至1.6mA,靈敏度降低。0- 正常模式 (默認(rèn))1- 低功耗模式5AUTO_RETRAN:自動(dòng)重發(fā)TX寄存器中的數(shù)據(jù)包,如果TRX_CE和TX_EN被設(shè)置為高。0- 不重發(fā)數(shù)據(jù)包 (默認(rèn))1- 自動(dòng)重發(fā)數(shù)據(jù)包7:6 保留字節(jié)2Fytoo Tech2:0 RX_AWF 2:0 :RX地址寬度001- 1字節(jié)RX地址寬度(默認(rèn))100- 4字節(jié)RX地址寬度3保留6:4 TX_AWF 2:0 :TX地址寬度001- 1字節(jié)TX地址寬度100- 4 字節(jié)TX地址寬度7保留字節(jié)35:0RX_PW 5:0 :RX接收有效數(shù)據(jù)寬度000001-1字節(jié)RX有效數(shù)據(jù)寬度00001

26、0-2字節(jié)RX有效數(shù)據(jù)寬度100000-32字節(jié)RX有效數(shù)據(jù)寬度7:6 保留Fytoo Tech字節(jié)45:0TX_PW 5:0 :TX發(fā)送有效數(shù)據(jù)寬度000001-1字節(jié)TX有效數(shù)據(jù)寬度000010-2字節(jié)TX有效數(shù)據(jù)寬度100000-32字節(jié)TX有效數(shù)據(jù)寬度7:6保留字節(jié)5:RX地址0字節(jié)字節(jié)6:RX地址1字節(jié)字節(jié)7:RX地址2字節(jié)字節(jié)8:RX地址3字節(jié)字節(jié) 91:0UP_CLK_FREQ 1:0:輸出時(shí)鐘頻率Fytoo Tech00-4MHZ01-2MHZ10-1MHZ11-500KHZ2UP_CLK_EN :輸出時(shí)鐘使能0-沒有外部時(shí)鐘1-外部時(shí)鐘信號(hào)使能 (默認(rèn))5:3XOF 2:0

27、:晶體振蕩器頻率,必須依據(jù)外部晶體的標(biāo)稱頻率設(shè)置(無線模塊上905外接晶振的頻率)000-4MHZ001-8MHZ010-12MHZ011-16MHZ100-20MHZ(默認(rèn))6CRC_EN :CRC校驗(yàn)允許0- 部允許1- 允許(默認(rèn))Fytoo Tech7CRC_MODE :CRC模式0- 8位CRC校驗(yàn)位1-16位CRC校驗(yàn)位 (默認(rèn))范例程序中的相關(guān)代碼段:/*nRF905寄存器配置參數(shù)*/typedef struct RFConfiguchar n;uchar buf10;RFConfig;code RFConfig RxTxConf =10,0 x4c, 0 x0c, 0 x44,

28、 0 x20,0 x20,0 xcc, 0 xcc, 0 xcc,0 xcc, 0 x58;/buf10 中數(shù)據(jù)對(duì)應(yīng) 字節(jié)0 字節(jié)9 ,具體內(nèi)容可參考上文寄存器配置章節(jié)Fytoo Tech/注:對(duì)于頻段設(shè)置參數(shù)CH_NO,在提供的范例程序中CH_NO7:0的值為0 x4c。不建議各位用戶使用其他數(shù)值,因?yàn)榈哪K在硬件上只適應(yīng)430MHz左右的頻率,為了達(dá)到最好的效果,參數(shù)上應(yīng)當(dāng)與硬件匹配,否則會(huì)影響通訊距離。6.2 通過SPI接口向nRF905 配置寄存器讀寫配置信息nRF905通過SPI接口與單片機(jī)通訊,因此必須首先了解SPI接口。SPI概念 SPI串行接口由四條線:MOSI主機(jī)輸出從機(jī)輸入

29、(主機(jī)寫操作)MISO主機(jī)輸入從機(jī)輸出(主機(jī)讀操作)SCK 串行時(shí)鐘信號(hào),由主機(jī)控制CSN 片選信號(hào),低電平有效/void SpiWrite(ucharbyte)uchar i;DATA_BUF=byte;/ 將需要發(fā)送的數(shù)據(jù)寫入緩存for (i=0;i8;i+)/ 循環(huán)8次發(fā)送一個(gè)字節(jié)的數(shù)據(jù)if (flag)/ flag = DATA_BUF7;Fytoo TechMOSI=1;elseMOSI=0;SCK=1;/ SCKDATA_BUF=DATA_BUF1; /一位,為下一位的發(fā)送做準(zhǔn)備SCK=0;/ SCK 低電平步驟一:MOSI線準(zhǔn)備好需要發(fā)送的數(shù)據(jù)位步驟二:SCK置高,器件MOSI線

30、上的數(shù)據(jù)步驟三:SCK置低,準(zhǔn)備發(fā)送數(shù)據(jù)的下一位以上步驟循環(huán)執(zhí)行8次,通過SPI向器件發(fā)送數(shù)據(jù)完成!注意:數(shù)據(jù)的傳輸時(shí),低位在后。/uchar SpiRead(void)uchar i;for (i=0;i8;i+)/循環(huán)8次發(fā)送一個(gè)字節(jié)的數(shù)據(jù)Fytoo TechDATA_BUF=DATA_BUF1; /一位,準(zhǔn)備接收下一位數(shù)據(jù)SCK=1;/ SCKif (MISO)flag1=1;/ flag1 = DATA_BUF0;elseflag1=0;SCK=0;/ SCK低電平return DATA_BUF;/ DATA_BUF 為接收到的完整數(shù)據(jù)步驟一:MISO線準(zhǔn)備好需要發(fā)送的數(shù)據(jù)位步驟二:S

31、CK置高,主機(jī)MISO線上的數(shù)據(jù)步驟三:SCK置低,準(zhǔn)備接收數(shù)據(jù)的下一位以上步驟循環(huán)執(zhí)行8次,通過SPI從器件上讀數(shù)據(jù)完成!注意:數(shù)據(jù)的傳輸時(shí),低位在后。/void Config905(void)uchar i;Fytoo TechCSN=0;/ CSN片選信號(hào),SPI使能SpiWrite(WC);/ 向905寫配置命令for (i=0;iRxTxConf.n;i+)/ 循環(huán)寫入配置信息SpiWrite(RxTxConf.bufi);/RxTxConf保存預(yù)先設(shè)置好的配置信息CSN=1;/ 結(jié)束SPI數(shù)據(jù)傳輸步驟一:CSN置低電平,SPI接口開始等待第一條指令步驟二:調(diào)用SpiWrite函數(shù),

32、向器件發(fā)送WC信號(hào),準(zhǔn)備寫入配置信息(SpiWrite函數(shù)在上文講解)步驟三:反復(fù)調(diào)用SpiWrite函數(shù),向器件配置寄存器寫入配置信息步驟四:CSN置,結(jié)束SPI通訊。nRF905配置完成!代碼中nRF905 SPI接口指令的宏定義/(以下操作全部從對(duì)應(yīng)寄存器的字節(jié)0開始)#defineWC0 x00/ 寫配置寄存器(RF-Configuration Register)#defineRC0 x10/ 讀配置寄存器(RF-Configuration Register)#defineWTP0 x20/ 向TX-Payload寄存器寫入發(fā)送有效數(shù)據(jù)Fytoo Tech#defineRTP0 x21

33、/從TX-Payload寄存器發(fā)送有效數(shù)據(jù)#defineWTA0 x22/向TX-Address寄存器寫入發(fā)送地址#defineRTA0 x23/從TX-Address寄存器發(fā)送地址#defineRRP0 x24/從RX-Payload寄存器接收到的有效數(shù)據(jù)/使用nRF905發(fā)送數(shù)據(jù)void TxPacket(void)uchar i;CSN=0;SpiWrite(WTP);/Write payloaddfor (i=0;i32;i+)SpiWrite(TxBufi);/ 寫入32直接發(fā)送數(shù)據(jù)CSN=1;/關(guān)閉SPI,保存寫入的數(shù)據(jù)Delay(1);CSN=0;/SPI使能,準(zhǔn)備寫入地址信息S

34、piWrite(WTA);/ 寫數(shù)據(jù)至地址寄存器for (i=0;i4;i+)/ 寫入4字節(jié)地址Fytoo TechSpiWrite(RxTxConf.bufi+5);CSN=1;/ 關(guān)閉SPITRX_CE=1;/ 進(jìn)入發(fā)送模式,啟動(dòng)射頻發(fā)送Delay(1);/ 進(jìn)入ShockBurst發(fā)送模式后,保證數(shù)據(jù)發(fā)送完成后返回STANDBY模式TRX_CE=0;步驟一:通過SpiWrite 函數(shù)發(fā)送WTP命令,準(zhǔn)備寫入TX有效數(shù)據(jù)步驟二:循環(huán)調(diào)用SpiWrite向TX-Payload寄存器寫入TX有效數(shù)據(jù)(中間夾有CSN電平變化)步驟三:延時(shí)步驟四:通過SpiWrite函數(shù)發(fā)送WTA命令,準(zhǔn)備寫入TX地址步驟五:循環(huán)調(diào)用SpiWrite向TX-Address寄存器寫入TX地址步驟六:TRX_CE=1; 開始發(fā)送數(shù)據(jù)延時(shí),nRF905數(shù)據(jù)發(fā)送完成當(dāng)nRF905接收到一條完成的信息時(shí),會(huì)將DR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論