CC2500寄存器设置

//========================================================
//  CC2500寄存器中的数据
局部镀锡//========================================================
// 2.4GHz
// Product = CC2500
// Crystal accuracy = 40 ppm
// X-tal frequency = 26 MHz
// RF output power = 0 dBm
// RX filterbandwidth = 232.000000 kHz
// Deviation = 0.000000
// Return state:  Return to RX state upon leaving either TX or RX
/
/ Datarate = 10.000000 kbps
灭茬机// Modulation = 2-FSK
// Manchester enable = (0) Manchester disabled
// RF Frequency = 2433.000000 MHz
// Channel spacing = 199.950000 kHz
// Channel number = 0
// Optimization = Sensitivity
// Sync mode = (3) 30/32 sync word bits detected
// Format of RX/TX data = (0) Normal mode, use FIFOs for RX and TX
// CRC operation = (1) CRC calculation in TX and CRC check in RX enabled
// Forward Error Correction = (0) FEC disabled
/
/ Length configuration = (1) Variable length packets, packet length configured by the first received byte after sync word.
// Packetlength = 255
// Preamble count = (2)  4 bytes
// Append status = 1
// Address check = (0) No address check
// FIFO autoflush = 0
// Device address = 0
// GDO0 signal selection = ( 6) Asserts when sync word has been sent / received, and de-asserts at the end of the packet
// GDO2 signal selection = (11) Serial Clock
RF_REGISTER_TAB:
ADDAR              PCL,          R
//===
RETIA              0X04        ;//0x07  Packet automation control.
RETIA              0X05        ;//0x08  Packet automation control
RETIA              0X00        ;//0x09  Device address.
RETIA              0X00        ;// 0X0A  Channel number.
RETIA              0X0B        ;//0x0B  Freq synthesizer control.
RETIA              0X00        ;//0x0C  Freq synthesizer control.
RETIA              0x5D        ;// 0X0D  Freq control word, high byte
RETIA              0x93        ;// 0X0E  Freq control word, mid byte.
RETIA              0xB1        ;// 0X0F  Freq control word, low byte.
RETIA              0x78        ;//0x10  Modem configuration.
RETIA              0x93        ;//0x11  Modem configuration (DATARATE)
RETIA              0x83        ;//0x12  Modem configuration. BIT7:0 = Enable (better sensitivity)
//    1 = Disable (current optimized). Only for data rates ≤ 250 kBaud
//      BIT6:4 = 0x111 MSK
//      BIT3  = 0 禁止曼切斯特编码/译码
//        BIT2:0 = 0X011 开启TX时的重复同步词汇发送和RX时的32 位同步词汇侦测
//                  (只有32 位中的30 位需要匹配):
RETIA              0x22        ;//0x13  Modem configuration. 禁止前导位纠错;前导4个字节;信道空间的2个指数
RETIA              0xF8        ;//0x14    Modem configuration. (channal)信道空间(初始为1)的8位尾数26000000/2^18*(256+0xF8)*2^2*(channal)=199.951171875khz
//      此信道的频率单位与基频相加后,就是运行的频率
RETIA              0x44        ;//0x15  Modem dev (when FSK mod en) 背离指数为0
RETIA              0x07        ;//0x16  MCSM2 至到数据包终止
RETIA              0x30        ;//0x17  MainRadio Cntrl State Machine 若RSSI 在门限之下,清理数据包指示,除非当前接收一个数据包
//      在数据包被接受后的下一个状态:空闲
//      在数据包已发送到(TX)后的下个状态:空闲
RETIA              0x18        ;//0x18  MainRadio Cntrl State Machine 当从空闲到TX 或RX时,进行自动校准
//      终止次数64次,禁止引脚通讯控制选项,XOSC_FORCE_OFF
RETIA              0x16        ;//0x19  Freq Offset Compens. Config  频率偏移补偿配置
RETIA              0x6C        ;//0x1A  Bit synchronization config.  位同步控制
RETIA              0x43        ;//0x1B  AGC control.  AGC控制寄存器
RETIA              0x40        ;//0x1C  AGC control  AGC控制寄存器
RETIA              0x91        ;//0x1D  AGC control  AGC控制寄存器
RETIA              0x87        ;//0X1E  WOREVT1    High Byte Event0 Timeout
RETIA              0x6B        ;//0X1F  WOREVT0    Low Byte Event0 Timeout
RETIA              0xF8        ;//0X20  WORCTRL    Wake On Radio Control
RETIA              0x56        ;//0X21  Front end RX configuration. 前端rx配置
RETIA              0x10        ;//0X22  Front end RX configuration  前端TX配置,调整当前TX LO 缓冲(输入到PA)
RETIA              0xA9        ;//0x23  Frequency synthesizer cal      频率合成器校准配置和结果寄存器
RETIA              0x0A        ;//0x24  Frequency synthesizer cal.      FSCAL3
CHIP_CURR_CAL_EN FSCAL3
RETIA              0x00        ;//0X25  Frequency synthesizer calibration.
RETIA              0x11        ;//0X26  Frequency synthesizer calibration.(38)
;=========================================================
;          初始化德州仪器CC2500
//========================================================
INSTALL_CC2500:
/*让CC2500进入待机模式
*/
MOVIA              CC2500_SIDLE    ;让CC2500先工作起来,命令滤波
CALL                HAND_SPI_WRITE
//====重启CC2500芯片            时序上的延时
BSR                CSN        ;关闭芯片的选择
CALL                DELAY100US  ;状态延时
BCR                CSN        ;开启芯片的选择
CALL                DELAY100US  ;状态延时
BSR                CSN
CALL                DELAY100US ;延时200微秒
CALL                DELAY100US
BCR                CSN        ;选择CC2500
BTRSC              SO        //等待CC2500的电压调制器稳定
GOTO                $-1
MOVIA              CC2500_SRES    //重启CC2500芯片
CALL                HAND_SPI_WRITE
BSR                CSN
BCR                SCLK                    //关闭CC2500的选择
BCR                SI
/*
设置CC2500的寄存器
*/
MOVIA              0X20  ;数据个数32
MOVAR              COUNTER1
MOVIA              0X07
MOVAR              TEMP1        ;地址的初始值
REGISTER_LOOP:
BCR                CSN                  ;选择CC2500芯片
BTRSC              SO                  ;等待SO腿输出低电平
GOTO                $-1
小球归位BCR                SCLK                ;数据的时钟线变低,锁住数据线上的电平
MOVR                TEMP1,  A
ANDIA              0X7F                ;写第一个数据,第7位必须为低电平表示写(时序图上是这样描述的)
MOVAR              WRITE_VALUE          ;写寄存器的初始值
CALL                SPI_WRITE
MOVR                TEMP1,  A
ADDIA              0XF9                ;相当A-07H
CALL                RF_REGISTER_TAB      ;查表指令
MOVAR              WRITE_VALUE          ;写进寄存器的的数据
CALL                SPI_WRITE
INCR                TEMP1,  R                ;寄存器的地址加一
BCR                SI
BSR                CSN                  ;由于每次都是突发访问,根据芯片的说明,突发位的访问不管是读还是写,读必须通过设置CSN为高来终止芯片的选择
DECRSZ              COUNTER1, R
GOTO                REGISTER_LOOP        ;循环写入32个数据
/*
设置CC2500的IOCFG2
*/
ca3358
MOVIA              0X00              //寄存器0
MOVAR              TEMP1
MOVIA              0X29              //数据0B
超滤膜壳
MOVAR              TEMP2
CALL                DOUBLE_DATA
NOP
NOP                                    //空指令
/*
设置CC2500的IOCFG0            非温度检测,不反转,当同步词汇被送出/收到时声明,在数据包末端时反声明。对RX,当可选地址检测失败
或RX FIFO 溢出时,引脚被反声明。若TX FIFO 下溢,这个引脚将同样被反声明*/
//
MOVIA              0X02              //寄存器1
MOVAR              TEMP1
灭苍蝇器MOVIA              0X06              //数据06
MOVAR              TEMP2
CALL                DOUBLE_DATA
NOP
NOP
/*
设置CC2500的TX字节
*/
MOVIA              0X03              //寄存器3
MOVAR              TEMP1
MOVIA              0X07              //数据07
MOVAR              TEMP2
CALL                DOUBLE_DATA
NOP
NOP
/*
设置CC2500的长度        Packet length.
*/
MOVIA              0X06              //寄存器6
MOVAR              TEMP1
MOVIA              0XFF            //数据3D
MOVAR              TEMP2
CALL                DOUBLE_DATA
NOP
NOP
/*
设置CC2500的发射功率
*/
PATABLE_LOOP:
MOVIA              0X3E              //寄存器3E  PATABLE
MOVAR              TEMP1
MOVIA              0XFF
MOVAR              TEMP2
CALL                DOUBLE_DATA1
NOP
NOP
/*
设置CC2500的命令
*/
MOVIA              CC2500_SCAL  ;启动CC2500
CALL                HAND_SPI_WRITE
MOVIA              CC2500_SFRX
CALL                HAND_SPI_WRITE        //清零接收FIFO寄存器
MOVIA              CC2500_SFTX
CALL                HAND_SPI_WRITE        //清零发送FIFO寄存器
CALL                DELAY10MS
CALL                DELAY10MS
//亮LED灯表示连接CC2500成功等待发射数据出去
READ_M_LOOP:
MOVIA              0X30
MOVAR              WRITE_VALUE
CALL                READ_REGISTER
MOVR                READ_VALUE,    A      //读芯片的状态判断是否为80H,若为这个数据则表示芯片连接成功
XORIA              0X80
BTRSS              Z
GOTO                READ_M_LOOP
MOVIA              CC2500_SIDLE          //让CC2500进入空闲状态
CALL                HAND_SPI_WRITE
BCR                LED_PIN                //芯片握手成功点亮LED灯
RETURN

本文发布于:2024-09-21 15:49:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/170525.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:芯片   数据   寄存器   频率   等待
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议