Appiko
cc1101_def.h
1 /******************************************************************************
2  * Filename: cc1101_def.h
3  *
4  * Description: This file contains definitions specific to the CC1101.
5  * The configuration registers, strobe commands, and status
6  * registers are defined, as well as some common masks for
7  * these registers.
8  *
9  * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
10  *
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  *
16  * Redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer.
18  *
19  * Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in the
21  * documentation and/or other materials provided with the distribution.
22  *
23  * Neither the name of Texas Instruments Incorporated nor the names of
24  * its contributors may be used to endorse or promote products derived
25  * from this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38  *
39  *******************************************************************************/
40 
41 // Configuration Registers
42 #define IOCFG2 0x00 // GDO2 output pin configuration
43 #define IOCFG1 0x01 // GDO1 output pin configuration
44 #define IOCFG0 0x02 // GDO0 output pin configuration
45 #define FIFOTHR 0x03 // RX FIFO and TX FIFO thresholds
46 #define SYNC1 0x04 // Sync word, high byte
47 #define SYNC0 0x05 // Sync word, low byte
48 #define PKTLEN 0x06 // Packet length
49 #define PKTCTRL1 0x07 // Packet automation control
50 #define PKTCTRL0 0x08 // Packet automation control
51 #define ADDR 0x09 // Device address
52 #define CHANNR 0x0A // Channel number
53 #define FSCTRL1 0x0B // Frequency synthesizer control
54 #define FSCTRL0 0x0C // Frequency synthesizer control
55 #define FREQ2 0x0D // Frequency control word, high byte
56 #define FREQ1 0x0E // Frequency control word, middle byte
57 #define FREQ0 0x0F // Frequency control word, low byte
58 #define MDMCFG4 0x10 // Modem configuration
59 #define MDMCFG3 0x11 // Modem configuration
60 #define MDMCFG2 0x12 // Modem configuration
61 #define MDMCFG1 0x13 // Modem configuration
62 #define MDMCFG0 0x14 // Modem configuration
63 #define DEVIATN 0x15 // Modem deviation setting
64 #define MCSM2 0x16 // Main Radio Cntrl State Machine config
65 #define MCSM1 0x17 // Main Radio Cntrl State Machine config
66 #define MCSM0 0x18 // Main Radio Cntrl State Machine config
67 #define FOCCFG 0x19 // Frequency Offset Compensation config
68 #define BSCFG 0x1A // Bit Synchronization configuration
69 #define AGCCTRL2 0x1B // AGC control
70 #define AGCCTRL1 0x1C // AGC control
71 #define AGCCTRL0 0x1D // AGC control
72 #define WOREVT1 0x1E // High byte Event 0 timeout
73 #define WOREVT0 0x1F // Low byte Event 0 timeout
74 #define WORCTRL 0x20 // Wake On Radio control
75 #define FREND1 0x21 // Front end RX configuration
76 #define FREND0 0x22 // Front end TX configuration
77 #define FSCAL3 0x23 // Frequency synthesizer calibration
78 #define FSCAL2 0x24 // Frequency synthesizer calibration
79 #define FSCAL1 0x25 // Frequency synthesizer calibration
80 #define FSCAL0 0x26 // Frequency synthesizer calibration
81 #define RCCTRL1 0x27 // RC oscillator configuration
82 #define RCCTRL0 0x28 // RC oscillator configuration
83 #define FSTEST 0x29 // Frequency synthesizer cal control
84 #define PTEST 0x2A // Production test
85 #define AGCTEST 0x2B // AGC test
86 #define TEST2 0x2C // Various test settings
87 #define TEST1 0x2D // Various test settings
88 #define TEST0 0x2E // Various test settings
89 
90 // Strobe commands
91 #define RF_SRES 0x30 // Reset chip.
92 #define RF_SFSTXON 0x31 // Enable/calibrate freq synthesizer
93 #define RF_SXOFF 0x32 // Turn off crystal oscillator.
94 #define RF_SCAL 0x33 // Calibrate freq synthesizer & disable
95 #define RF_SRX 0x34 // Enable RX.
96 #define RF_STX 0x35 // Enable TX.
97 #define RF_SIDLE 0x36 // Exit RX / TX
98 #define RF_SAFC 0x37 // AFC adjustment of freq synthesizer
99 #define RF_SWOR 0x38 // Start automatic RX polling sequence
100 #define RF_SPWD 0x39 // Enter pwr down mode when CSn goes hi
101 #define RF_SFRX 0x3A // Flush the RX FIFO buffer.
102 #define RF_SFTX 0x3B // Flush the TX FIFO buffer.
103 #define RF_SWORRST 0x3C // Reset real time clock.
104 #define RF_SNOP 0x3D // No operation.
105 
106 // Status registers
107 #define PARTNUM 0x30 // Part number
108 #define VERSION 0x31 // Current version number
109 #define FREQEST 0x32 // Frequency offset estimate
110 #define LQI 0x33 // Demodulator estimate for link quality
111 #define RSSI 0x34 // Received signal strength indication
112 #define MARCSTATE 0x35 // Control state machine state
113 #define WORTIME1 0x36 // High byte of WOR timer
114 #define WORTIME0 0x37 // Low byte of WOR timer
115 #define PKTSTATUS 0x38 // Current GDOx status and packet status
116 #define VCO_VC_DAC 0x39 // Current setting from PLL cal module
117 #define TXBYTES 0x3A // Underflow and # of bytes in TXFIFO
118 #define RXBYTES 0x3B // Overflow and # of bytes in RXFIFO
119 
120 // Other memory locations
121 #define PATABLE 0x3E
122 #define TXFIFO 0x3F
123 #define RXFIFO 0x3F
124 
125 // Masks for appended status bytes
126 #define RSSI_RX 0x00 // Position of LQI byte
127 #define LQI_RX 0x01 // Position of LQI byte
128 #define CRC_OK 0x80 // Mask "CRC_OK" bit within LQI byte
129 #define NUM_RXBYTES 0x7F // Mask "# of bytes" field in _RXBYTES
130 #define MARCSTATE_IDLE 0x01 // The status register indicates idle
131 
132 // Definitions to support burst/single access:
133 #define WRITE_BURST 0x40
134 #define READ_SINGLE 0x80
135 #define READ_BURST 0xC0