CC2500 無線雙向通訊
簡介
CC2500 功能介紹
 1) CC2500 控制電路
 2) CC2500 操作類型
SPI 通訊
 1)   CC2500 SPI 操作
 2)   SPI 規劃
 3)   SPI 驅動控制
 4)   CC2500 晶片行為之指令分析與設計
CC2500 傳送功能設計
CC2500 接收功能設計
                  2
CC2500 特色

 2.4GHz RF(射頻)收發器
 頻率範圍:2400-2483.5MHz
 資料傳輸率:可達500kbps
 輸出功率:可達+1dBm
 獨立的64位元組RX和TX資料FIFO
 SPI 控制介面
 數位RSSI輸出



             3
CC2500 方塊圖




             4
CC2500 模組




            5
CC2500 模組


                             CC2500

            GDO0   ↔   RB1
            SI     ↔   RC5
            SO     ↔   RC4
            SCLK   ↔   RC3
            CSn    ↔   RC2



                   6
MCU 與 CC2500 配接線路




           RC3/SCK       SCLK
          RC5/SDO        SI
           RC4/SDI       SO
               RC2       CSn
          RB1/INT1       GDO0

     PIC18F46K20                CC2500




                     7
MSSP SPI MODE


Serial Data Out – SDO
Serial Data In – SDI/SDA
Serial Clock – SCK/SCL




                           8
IC 腳位定義




          9
CC2500 SPI 模式




 SCLK


SDO/SDI




    fSCLK = 10 MHz Max


                         10
Max clock speed


          9 MHz for single access
          6.5 MHz for burst access




                      11
CC2500 SPI 操作模式




                  12
13
規劃 PIC18F46K20 SPI模式




               14
CC2500 操作類型

 操作規劃暫存器

 操作狀態暫存器

 晶片控制指令

 操作傳送、接收緩衝區(FIFO)




              15
暫存器存取


HStrobe   HStrobe   HStrobe

HReg      Data       HReg      Data        HReg    Data

 HReg     Datan     Datan+1   Datan+2

HFIFO     Datan     Datan+1   Datan+2

 HReg     Data      HStrobe        HFIFO   Datan   Datan+1


                              16
ccSetReg()
             ccGetReg()




ccStrobe()   ccStatus()




             ccSetPw()
             ccGetPw()
                   17
18
19
20
21
規劃暫存器(0x00~0x2E)

 CC2500 有 47 個規劃暫存器
 (位址 0x00~0x2E)
 存取方式:Header + Data



        R/W B/S   A5        A4   A3   A2   A1   A0

  讀/寫

連續/單一

暫存器位址                  22
Single Byte Access




       R/W   0   A5   A4        A3   A2   A1   A0




                           23
Burst Access




       R/W     1   A5   A4        A3   A2   A1   A0




                             24
控制指令 & 狀態暫存器

位址(0x30~0x3D)

burst bit is 1,讀取狀態暫存器


    1   1   A5   A4        A3   A2   A1   A0
burst bit is 0,送出晶片控制指令


    x   0   A5   A4        A3   A2   A1   A0


                      25
PATABLE

 位址(0x3E)




            26
SPI 操作練習

 SPI 硬體規劃
 1) 定義I/O接腳
 2) 硬體啟始規劃
 SPI 功能測試
 1) CC2500 SPI功能測試
 2) 指定記憶體位址寫入資料
 3) 指定記憶體位址寫入讀取




              27
CC2500 I/O 定義




                28
SPI 啟始規劃




           29
CC2500
Power On Reset




                 30
PIC單晶片 SPI讀寫操作

 清除SPI中斷旗號 PIR1bits.SSPIF

 要傳送的資料寫入 SSPBUF
 等待SPI中斷旗號 = 1
 從SSPBUF讀取接收到的值




                 31
CC2500 SPI 寫入操作

 指定CC2500記憶體位址 addr 資料寫入操作
 將 buf 指標位址,連續寫入 n個BYTE




                  32
CC2500 SPI 讀取操作

 指定CC2500記憶體位址 addr 資料讀取操作
 連續讀取 n個BYTE,存放在 buf 指標位址




                  33
CC2500 控制指令

 指定操作指令 cmd




              34
CC2500 狀態暫存器操作

 指定狀態暫存器位址 reg
 讀取內容




             35
CC2500 FIFO 操作

 指定記憶體存取位址 str
 讀取或寫入 len 個BYTE




                 36
CC2500 PATABLE 讀寫操作




                37
38
資料封包

固定長度
 1) PKTLEN暫存器的數值會決定資料收發的長度


變動長度
 1) PKTLEN暫存器的數值會決定最大的資料收發
    長度


  封包
  長度       資料        CRC16


             39
封包格式




       40
接收資料封包

預先規劃:GDO0工作模式(0x06)

設定接收模式(SRX)
GDO0

偵測到GDO0下降緣(接收完成)
 1) 讀取 1個BYTE資料長度(n)
 2) 讀取 n個BYTE資料
 3) 讀取 2個BYTE CRC16


   封包
   長度         資料       CRC16
                41
傳送資料封包

預先規劃:GDO0工作模式(0x06)

資料預先寫入 TX FIFO
GDO0
 1) 寫入 1個BYTE資料長度(n)
 2) 寫入 n個BYTE資料
設定傳送模式(STX)
偵測到GDO0下降緣(傳送完成)


   封包
   長度         資料       CRC16
                42

艾鍗學院-單晶片韌體-CC2500通訊實驗