RM新时代网站-首页

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

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

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

CC1101工作原理 基于與STM32的CC1101接口移植

ss ? 作者:工程師譚軍 ? 2018-09-06 14:45 ? 次閱讀

本文主要是關(guān)于CC1101的相關(guān)介紹,并著重對(duì)CC1101工作原理進(jìn)行了詳盡的敘述。

CC1101

CC1101 [1] 是一款低于1GHz設(shè)計(jì)旨在用于極低功耗RF應(yīng)用。其主要針對(duì)工業(yè)、科研和醫(yī)療(ISM)以及短距離無線通信設(shè)備(SRD)。CC1101可提供對(duì)數(shù)據(jù)包處理、數(shù)據(jù)緩沖、突發(fā)傳輸、接收信號(hào)強(qiáng)度指示(RSSI)、空閑信道評(píng)估(CCA)、鏈路質(zhì)量指示以及無線喚醒(WOR)的廣泛硬件支持。CC1101在代碼、封裝和外引腳方面均與CC1100兼容,可用于全球最為常用的開放式低于1GHz頻率的RF設(shè)計(jì)?!?超低功耗無線收發(fā)器● 家庭和樓宇自動(dòng)化● 高級(jí)抄表架構(gòu)(AMI)● 無線報(bào)警安全系統(tǒng)◆ 387.0MHz~464.0MHz工作頻段。(433MHz,0.6kbps,1%誤碼率時(shí)為-116dBm)。(接收模式,433MHz,1.2kbps時(shí)僅16.0mA)。◆ 最高可設(shè)置為+10dBm的發(fā)射功率。◆ 支持0.6kbps~500kbps的數(shù)據(jù)傳輸速率?!?支持多種調(diào)制模式(OOK、ASK、GFSK、2-FSK、4-FSK和MSK)。◆ 提供對(duì)同步字檢測(cè)、地址校驗(yàn)、靈活的數(shù)據(jù)包長(zhǎng)度以及自動(dòng)CRC處理的支持?!?支持RSSI(接收信號(hào)強(qiáng)度指示)和LQI(鏈路質(zhì)量指示)?!?通過4線SPI接口MCU連接,同時(shí)提供2個(gè)可設(shè)定功能的通用數(shù)字輸出引腳?!?獨(dú)立的64字節(jié)RXFIFO和TX FIFO。◆ 工作電壓范圍:1.9V~3.6V,待機(jī)模式下電流僅為200nA?!?工作溫度范圍:-40℃~+85℃

CC1101工作原理 基于與STM32的CC1101接口移植

基于與STM32的CC1101接口移植

移植原來TI對(duì)于CC1101與MSP430接口庫到STM32平臺(tái),參考原TI庫應(yīng)用筆記“ MSP430 Interface to CC1100/2500 Code Library”,做到盡量保持所有函數(shù)名不改變,以方便以前基于MSP430的程序向STM32移植。

【要求】

1.編程要求:改寫原來基于MSP430的程序,使用于STM32,盡量保持所有函數(shù)名不改變,以方便以前基于MSP430的程序向STM32移植。

2.實(shí)現(xiàn)功能:STM32與CC1101通過SPI接口正常傳輸數(shù)據(jù),不同節(jié)點(diǎn)的CC1101可以正常傳輸數(shù)據(jù)。

3.實(shí)驗(yàn)現(xiàn)象:STM32與CC1101連接后,可以與另一個(gè)節(jié)點(diǎn)通信,節(jié)點(diǎn)初始在隨機(jī)時(shí)間發(fā)送一個(gè)數(shù)據(jù),任一節(jié)點(diǎn)收到數(shù)據(jù)后LED閃一下,并把數(shù)據(jù)回傳,如此循環(huán),會(huì)看到LED不停閃爍。

【硬件電路】

測(cè)試時(shí)CC1101與STM32引腳連接表如表1所示。

CC1101工作原理 基于與STM32的CC1101接口移植

原理】

CC1101是TI公司一款高性價(jià)比的單片UHF收發(fā)器,為低功耗無線電應(yīng)用而設(shè)計(jì)。它是CC1100器件的加強(qiáng)升級(jí)版,靈敏度更高,功耗更小,帶寬更大。CC1101可滿足多個(gè)領(lǐng)域中的低功耗無線應(yīng)用要求,如警報(bào)與安全、自動(dòng)抄表、工業(yè)監(jiān)控以及家庭和樓宇自動(dòng)化等。CC1101理想適用于工業(yè)、科學(xué)及醫(yī)藥設(shè)備(ISM)以及316、433、868及916MHz短距裝置(SRD)頻帶。但是,該器件也可方便編程,以支持其它頻率,如300-348MHz、387-467MHz及779-928MHz等。出色的頻帶與調(diào)制格式支持使其能與目前的RF終端設(shè)備相兼容。

CC1101工作原理 基于與STM32的CC1101接口移植

圖1 CC1101 的外引腳圖(俯視)

CC1100通過4線SPI兼容接口 (SI,SO,SCLK和 CSn)配置。這個(gè)接口同時(shí)用作寫和讀緩存數(shù)據(jù)。SPI 接口上所有的處理都同一個(gè)包含一個(gè)讀/寫位,一個(gè)突發(fā)訪問位和一個(gè) 6 位地址的頭字節(jié)一起作用。在地址和數(shù)據(jù)轉(zhuǎn)換期間, CSn 腳 (芯片選擇,低電平有效)必須保持為低電平。如果在過程中 CSn 變?yōu)楦唠娖?,則轉(zhuǎn)換取消。當(dāng) CSn 變低, 在開始轉(zhuǎn)換頭字節(jié)之前, MCU必須等待,直到 SO腳變低。這表明電壓調(diào)制器已經(jīng)穩(wěn)定,晶體正在運(yùn)作中。除非芯片處在 SLEEP 或 XOFF 狀態(tài),SO 腳在 CSn變低之后總會(huì)立即變低。關(guān)于CC1101對(duì)配置寄存器寫和讀操作如圖2所示。

芯片狀態(tài)位

當(dāng)頭字節(jié)在 SPI 接口上被寫入時(shí),芯片狀態(tài)字節(jié)在 SO 腳上被 CC1100 寫入。狀態(tài)字節(jié)包含關(guān)鍵狀態(tài)信號(hào),對(duì)MCU是有用的。第一位 s7,是CHIP_RDYn 信號(hào)。在 SCLK的在第一個(gè)正邊緣之前,這個(gè)信號(hào)必須變低。CHIP_RDYn 信號(hào)表明晶體正處于工作中,調(diào)節(jié)數(shù)字供給電壓是穩(wěn)定的。6,5 和4 位由狀態(tài)值組成。這個(gè)值反映了芯片的狀態(tài)。 當(dāng)使 XOSC 空閑并使數(shù)字中心的能量開啟,所有其他模塊處于低功耗狀態(tài)時(shí)。只有芯片處于此狀態(tài)時(shí),頻率和信道配置才能被更新。當(dāng)芯片處于接收模式時(shí), RX狀態(tài)是活動(dòng)的。同樣地,當(dāng)芯片處于發(fā)送模式時(shí),TX狀態(tài)是活動(dòng)的。狀態(tài)字節(jié)中的后四位( 3 :0)包含F(xiàn)IFO_BYTES_AVAILABLE。為了進(jìn)行讀操作,這個(gè)區(qū)域包含可從 RX FIFO 讀取的字節(jié)數(shù)。為了進(jìn)行寫操作,這個(gè)區(qū)域包含可寫入 TX FIFO 的 字節(jié)數(shù)。

寄存器訪問

CC1100配置寄存器位于SPI地址從0x00到0x2F之間。所有的配置寄存器均能讀和寫。當(dāng)對(duì)寄存器寫時(shí),每當(dāng)一個(gè)待寫入的數(shù)據(jù)字節(jié)傳輸?shù)?SI腳時(shí),狀態(tài)字節(jié)將被送至 SO腳。 通過在地址頭設(shè)置突發(fā)位,連續(xù)地址的寄存器能高效地被訪問。這個(gè)地址在內(nèi)部計(jì)數(shù)器內(nèi)設(shè)置起始地址。每增加一個(gè)新的字節(jié)計(jì)數(shù)器值增加 1。 突發(fā)訪問,不管是讀訪問還是寫訪問,必須通過設(shè)置CSn 為高來終止。對(duì) 0x30-0x3D間的地址來說, 突發(fā)位用以在狀態(tài)寄存器和命令濾波之間選擇。狀態(tài)寄存器只讀。突發(fā)讀取對(duì)狀態(tài)寄存器是不可取的,故它們每次只能被讀一個(gè)。

命令濾波

命令濾波可被視為 CC1100 的單字節(jié)指令。通過命令濾波寄存器的選址,內(nèi)部序列被啟動(dòng)。這些命令用來關(guān)閉晶體振蕩器,開啟傳輸模式和電磁波激活等。命令濾波寄存器的訪問和一個(gè)寄存器的寫操作一樣,但沒有數(shù)據(jù)被傳輸。就是說,只

有 R/W 位(置為 0) ,突發(fā)訪問(置為 0)和六個(gè)地址位(0x30和0x3D之間)被寫。一個(gè)命令濾波可能在任何其他 SPI 訪問之后,而不需要將 CSn 拉至高電平。命令濾波立即被執(zhí)行,當(dāng) CSn 高時(shí) SPWD和 SXOFF濾波是例外。

FIFO訪問

64 字節(jié) TX FIFO 和 64 字節(jié) RX FIFO 通過0x3F 被訪問。當(dāng)讀/寫位為 0 時(shí),TX FIFO被訪問,當(dāng)讀/寫位為 1 時(shí),RX FIFO 被訪問。 TX FIFO是只寫的,而 RX FIFO是只讀的。突發(fā)位用來決定 FIFO 訪問是單字節(jié)還是突發(fā)訪問。單字節(jié)訪問方式期望地址的突發(fā)位為 0 及1 數(shù)據(jù)字節(jié)。在數(shù)據(jù)字節(jié)之后等待一個(gè)新的地址,因此,CSn繼續(xù)保持低。突發(fā)訪問方式允許一地址字節(jié),然后是連續(xù)的數(shù)據(jù)字節(jié),直到通過設(shè)置 CSn 為高來關(guān)斷訪問。 當(dāng)對(duì) TX FIFO寫時(shí),狀態(tài)字節(jié)對(duì)每個(gè) SO腳上的新數(shù)據(jù)字節(jié)是輸出量,如圖 6 所示。這個(gè)狀態(tài)位能用來偵測(cè)對(duì) TX FIFO 寫數(shù)據(jù)時(shí)的下溢。注意,狀態(tài)字節(jié)包含在寫入字節(jié)到 TX FIFO 的過程前空閑的字節(jié)數(shù)。當(dāng)最后一個(gè)適合 TX FIFO的字節(jié)被傳送至 SI 腳后, 被 SO腳接收的狀態(tài)位會(huì)表明在 TX FIFO中只有一個(gè)字節(jié)是空閑的。

傳輸 FIFO 可能會(huì)通過發(fā)布一個(gè) SFTX 命令濾波而被淹沒。相似地,一個(gè) SFRX命令濾波會(huì)淹沒接收 FIFO。當(dāng)進(jìn)入休眠狀態(tài)時(shí), 兩個(gè) FIFO都被清空。PATABLE 訪問

0x3E 地址用來訪問 PATABLE。PATABLE用來選擇 PA 能量控制設(shè)置。在接收此地址之后,SPI 等待至少 8 個(gè)字節(jié)。通過控制PATABLE,能實(shí)現(xiàn)可控的 PA能量上升和下降,減少的帶寬的 ASK 調(diào)制整型也如此PATABLE 是一個(gè) 8 字節(jié)表, 定義了 PA控制 設(shè)置, 為 8 個(gè) PA 功率值(由FRENDO.PA_POWER 的 3 個(gè)位的值所選擇)的每一個(gè)所使用。這個(gè)表從最低位到最高位可讀和寫,一此一位。一個(gè)索引計(jì)數(shù)器用來控制對(duì)這個(gè)表的訪問。每讀出或?qū)懭氡碇械囊粋€(gè)字節(jié),計(jì)數(shù)器就加 1。當(dāng) CSn 為高時(shí),計(jì)數(shù)值置為最小值。當(dāng)達(dá)到最大值時(shí),計(jì)數(shù)器由零重新開始計(jì)數(shù)。

PATABLE 訪問

對(duì) PATABLE 的訪問是單字節(jié)或者突發(fā)訪問,由突發(fā)位決定。當(dāng)使用突發(fā)訪問時(shí),索引計(jì)數(shù)器的值增加;達(dá)到7時(shí)重新從0開始。讀/寫位控制訪問是寫訪問(R/W=0)或者讀訪問(R/W=1)。 如果一字節(jié)被寫入 PATABLE,且這個(gè)值將要被讀出,那么,為了設(shè)置索引計(jì)數(shù)器的值重為 0,CSn必須在讀訪問之前置為高。 注意,當(dāng) PATABLE 進(jìn)入休眠狀態(tài)時(shí),所存儲(chǔ)的內(nèi)容會(huì)丟失,特別是第一個(gè)字節(jié)。

CC1101工作原理 基于與STM32的CC1101接口移植

圖2 配置寄存器寫和讀操作

STM32的串行外設(shè)接口(SPI)

STM32的串行外設(shè)接口(SPI)有如下特性:

● 3線全雙工同步傳輸

● 帶或不帶第三根雙向數(shù)據(jù)線的雙線單工同步傳輸

● 8或16位傳輸幀格式選擇

● 主或從操作

● 支持多主模式

● 8個(gè)主模式波特率預(yù)分頻系數(shù)(最大為fPCLK/2)

● 從模式頻率 (最大為fPCLK/2)

● 主模式和從模式的快速通信

● 主模式和從模式下均可以由軟件或硬件進(jìn)行NSS管理:主/從操作模式的動(dòng)態(tài)改變

● 可編程的時(shí)鐘極性和相位

● 可編程的數(shù)據(jù)順序,MSB在前或LSB在前

● 可觸發(fā)中斷的專用發(fā)送和接收標(biāo)志

● SPI總線忙狀態(tài)標(biāo)志

● 支持可靠通信的硬件CRC

─ 在發(fā)送模式下,CRC值可以被作為最后一個(gè)字節(jié)發(fā)送

─ 在全雙工模式中對(duì)接收到的最后一個(gè)字節(jié)自動(dòng)進(jìn)行CRC校驗(yàn)

● 可觸發(fā)中斷的主模式故障、過載以及CRC錯(cuò)誤標(biāo)志

● 支持DMA功能的1字節(jié)發(fā)送和接收緩沖器:產(chǎn)生發(fā)送和接受請(qǐng)求

通常SPI通過4個(gè)引腳與外部器件相連: MISO:主設(shè)備輸入/從設(shè)備輸出引腳。該引腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù)。 MOSI:主設(shè)備輸出/從設(shè)備輸入引腳。該引腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù)。 SCK:串口時(shí)鐘,作為主設(shè)備的輸出,從設(shè)備的輸入 NSS:從設(shè)備選擇。這是一個(gè)可選的引腳,用來選擇主/從設(shè)備。它的功能是用來作為“片

選引腳”,本實(shí)驗(yàn)中沒有使用。SPI的方框圖如圖3所示。

CC1101工作原理 基于與STM32的CC1101接口移植

圖3 SPI內(nèi)部框圖

CC1101工作原理 基于與STM32的CC1101接口移植

圖4 數(shù)據(jù)幀格式圖

表2 源文件用途分類說明

CC1101工作原理 基于與STM32的CC1101接口移植

結(jié)語

關(guān)于CC1101的相關(guān)介紹就到這了,如有不足之處歡迎指正。

相關(guān)閱讀推薦:一文看懂CC110L與CC1101的區(qū)別

相關(guān)閱讀推薦:無線芯片CC1100和CC1101的區(qū)別

聲明:本文內(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)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50714

    瀏覽量

    423131
  • CC1101
    +關(guān)注

    關(guān)注

    4

    文章

    36

    瀏覽量

    23140
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CC1101組網(wǎng)與假死問題

    CC1101的異步串行工作模式?CC1101為什么無緣無故自動(dòng)進(jìn)入空閑模式?CC1101配置空閑信道評(píng)估CCA,導(dǎo)致發(fā)送死掉CC1101發(fā)射
    發(fā)表于 08-29 17:45

    TI CC1101學(xué)習(xí)筆記:工作原理簡(jiǎn)單入門

    的重要地位,還不能被新的協(xié)議完全取代。在之前的文章中,小編也說過了部分的通信協(xié)議,在此不作一一細(xì)說了。言歸正傳,今天要說的主角是SUB-1G的TI品牌的CC1101工作原理。 產(chǎn)品概述:CC1101
    發(fā)表于 11-09 10:44

    TI CC1101學(xué)習(xí)筆記:工作原理簡(jiǎn)單入門

    的重要地位,還不能被新的協(xié)議完全取代。在之前的文章中,小編也說過了部分的通信協(xié)議,在此不作一一細(xì)說了。言歸正傳,今天要說的主角是SUB-1G的TI品牌的CC1101工作原理。產(chǎn)品概述:CC1101
    發(fā)表于 11-12 10:35

    cc1101天線設(shè)計(jì)

    cc1101天線設(shè)計(jì),又需要的朋友下來看看。
    發(fā)表于 02-15 15:10 ?102次下載

    cc1101數(shù)據(jù)手冊(cè)

    cc1101數(shù)據(jù)手冊(cè),此數(shù)據(jù)手冊(cè)為ti最新版本。
    發(fā)表于 02-17 17:11 ?16次下載

    cc1101產(chǎn)品手冊(cè)(English)

    CC1101的Datasheet,德州儀器英文原版。
    發(fā)表于 04-28 11:51 ?5次下載

    cc1101中文數(shù)據(jù)手冊(cè)

    cc1101中文數(shù)據(jù)手冊(cè)
    發(fā)表于 09-22 11:05 ?79次下載
    <b class='flag-5'>cc1101</b>中文數(shù)據(jù)手冊(cè)

    CC1101無線模塊如何使用_cc1101無線模塊的程序及使用介紹

    CC1101無線模塊是采用TI公司的CC1101芯片制作的模塊,一般是工作在433M。長(zhǎng)沙云寶電子科技有限公司的生產(chǎn)的CC1101無線模塊比較穩(wěn)定。
    發(fā)表于 04-12 15:29 ?1.8w次閱讀

    無線芯片CC1100和CC1101的區(qū)別 淺談CC1101芯片的特點(diǎn)

    CC1101 [1] 是一款低于1GHz設(shè)計(jì)旨在用于極低功耗RF應(yīng)用。其主要針對(duì)工業(yè)、科研和醫(yī)療(ISM)以及短距離無線通信設(shè)備(SRD)。
    發(fā)表于 09-06 09:43 ?1w次閱讀

    淺談CC1101驅(qū)動(dòng)在STM32F103的移植

    最后,TI驅(qū)動(dòng)里提供的是輪詢的方式收發(fā)數(shù)據(jù),對(duì)于初期來說,首先需要實(shí)現(xiàn)CC1101工作,編譯調(diào)試移植STM32上的CC1101驅(qū)動(dòng)代碼,
    的頭像 發(fā)表于 09-06 15:18 ?7814次閱讀
    淺談<b class='flag-5'>CC1101</b>驅(qū)動(dòng)在<b class='flag-5'>STM32</b>F103的<b class='flag-5'>移植</b>

    CC1101與STC單片機(jī)通信

    很多CC1101的通信代碼進(jìn)行移植都不能成功通信,很苦惱,只能自己細(xì)細(xì)研究,最后發(fā)現(xiàn)網(wǎng)上的CC1101與單片機(jī)通信的絕大多數(shù)代碼都是基于51單片機(jī)普通IO與CC1101進(jìn)行通信,而我手
    發(fā)表于 11-15 16:51 ?18次下載
    <b class='flag-5'>CC1101</b>與STC單片機(jī)通信

    無線射頻芯片CC1101的特點(diǎn)和區(qū)別

    本文主要是關(guān)于無線芯片CC1100和CC1101的相關(guān)介紹,并著重對(duì)無線芯片CC1100和CC1101進(jìn)行了詳盡的對(duì)比分析。 CC1101
    發(fā)表于 03-09 12:44 ?1410次閱讀

    無線射頻芯片CC1101的特點(diǎn)和區(qū)別

    本文主要是關(guān)于無線芯片CC1100和CC1101的相關(guān)介紹,并著重對(duì)無線芯片CC1100和CC1101進(jìn)行了詳盡的對(duì)比分析。 CC1101CC110
    的頭像 發(fā)表于 03-09 18:28 ?2302次閱讀

    【芯選擇】CC1101芯片的模塊實(shí)例

    CC1101芯片CC1101是一款低于1GHz設(shè)計(jì)旨在用于極低功耗RF應(yīng)用。其主要針對(duì)工業(yè)、科研和醫(yī)療(ISM)以及短距離無線通信設(shè)備(SRD)。CC1101可提供對(duì)數(shù)據(jù)包處理、數(shù)據(jù)緩沖、突發(fā)傳輸
    的頭像 發(fā)表于 12-02 09:51 ?1378次閱讀
    【芯選擇】<b class='flag-5'>CC1101</b>芯片的模塊實(shí)例

    CC2500和CC1101移植說明

    主要通過如何移植、移植注意、關(guān)于芯片配置、如何生成導(dǎo)出配置四大步驟來說明CC2500和CC1101移植
    的頭像 發(fā)表于 06-15 14:32 ?606次閱讀
    <b class='flag-5'>CC</b>2500和<b class='flag-5'>CC1101</b><b class='flag-5'>移植</b>說明
    RM新时代网站-首页