CC1000Const.h
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:16k
源码类别:

网络

开发平台:

Others

  1. // $Id: CC1000Const.h,v 1.1.1.1 2005/04/22 04:26:45 acwarrie Exp $
  2. /* -*- Mode: C; c-basic-indent: 2; indent-tabs-mode: nil -*- */ 
  3. /* tab:4
  4.  *  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.  By
  5.  *  downloading, copying, installing or using the software you agree to
  6.  *  this license.  If you do not agree to this license, do not download,
  7.  *  install, copy or use the software.
  8.  *
  9.  *  Intel Open Source License 
  10.  *
  11.  *  Copyright (c) 2002 Intel Corporation 
  12.  *  All rights reserved. 
  13.  *  Redistribution and use in source and binary forms, with or without
  14.  *  modification, are permitted provided that the following conditions are
  15.  *  met:
  16.  * 
  17.  * Redistributions of source code must retain the above copyright
  18.  *  notice, this list of conditions and the following disclaimer.
  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.  *      Neither the name of the Intel Corporation nor the names of its
  23.  *  contributors may be used to endorse or promote products derived from
  24.  *  this software without specific prior written permission.
  25.  *  
  26.  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27.  *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28.  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  29.  *  PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE INTEL OR ITS
  30.  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  31.  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  32.  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  33.  *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  34.  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  35.  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  36.  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  37.  * 
  38.  * 
  39.  */
  40. /*
  41.  *
  42.  * Authors: Phil Buonadonna
  43.  * Date last modified:  1/10/03
  44.  *
  45.  */
  46. /**
  47.  * @author Phil Buonadonna
  48.  */
  49. #ifndef _CC1KCONST_H
  50. #define _CC1KCONST_H
  51. #include <avr/pgmspace.h>
  52. /* Constants defined for CC1K */
  53. /* Register addresses */
  54. #define CC1K_MAIN            0x00
  55. #define CC1K_FREQ_2A         0x01
  56. #define CC1K_FREQ_1A         0x02
  57. #define CC1K_FREQ_0A         0x03
  58. #define CC1K_FREQ_2B         0x04
  59. #define CC1K_FREQ_1B         0x05
  60. #define CC1K_FREQ_0B         0x06
  61. #define CC1K_FSEP1           0x07
  62. #define CC1K_FSEP0           0x08
  63. #define CC1K_CURRENT         0x09
  64. #define CC1K_FRONT_END       0x0A //10
  65. #define CC1K_PA_POW          0x0B //11
  66. #define CC1K_PLL             0x0C //12
  67. #define CC1K_LOCK            0x0D //13
  68. #define CC1K_CAL             0x0E //14
  69. #define CC1K_MODEM2          0x0F //15
  70. #define CC1K_MODEM1          0x10 //16
  71. #define CC1K_MODEM0          0x11 //17
  72. #define CC1K_MATCH           0x12 //18
  73. #define CC1K_FSCTRL          0x13 //19
  74. #define CC1K_FSHAPE7         0x14 //20
  75. #define CC1K_FSHAPE6         0x15 //21
  76. #define CC1K_FSHAPE5         0x16 //22
  77. #define CC1K_FSHAPE4         0x17 //23
  78. #define CC1K_FSHAPE3         0x18 //24
  79. #define CC1K_FSHAPE2         0x19 //25
  80. #define CC1K_FSHAPE1         0x1A //26
  81. #define CC1K_FSDELAY         0x1B //27
  82. #define CC1K_PRESCALER       0x1C //28
  83. #define CC1K_TEST6           0x40 //64
  84. #define CC1K_TEST5           0x41 //66
  85. #define CC1K_TEST4           0x42 //67
  86. #define CC1K_TEST3           0x43 //68
  87. #define CC1K_TEST2           0x44 //69
  88. #define CC1K_TEST1           0x45 //70
  89. #define CC1K_TEST0           0x46 //71
  90. // MAIN Register Bit Posititions
  91. #define CC1K_RXTX 7
  92. #define CC1K_F_REG 6
  93. #define CC1K_RX_PD 5
  94. #define CC1K_TX_PD 4
  95. #define CC1K_FS_PD 3
  96. #define CC1K_CORE_PD 2
  97. #define CC1K_BIAS_PD 1
  98. #define CC1K_RESET_N 0
  99. // CURRENT Register Bit Positions
  100. #define CC1K_VCO_CURRENT 4
  101. #define CC1K_LO_DRIVE 2
  102. #define CC1K_PA_DRIVE 0
  103. // FRONT_END Register Bit Positions
  104. #define CC1K_BUF_CURRENT 5
  105. #define CC1K_LNA_CURRENT 3
  106. #define CC1K_IF_RSSI 1
  107. #define CC1K_XOSC_BYPASS 0
  108. // PA_POW Register Bit Positions
  109. #define CC1K_PA_HIGHPOWER 4
  110. #define CC1K_PA_LOWPOWER 0
  111. // PLL Register Bit Positions
  112. #define CC1K_EXT_FILTER 7
  113. #define CC1K_REFDIV 3
  114. #define CC1K_ALARM_DISABLE 2
  115. #define CC1K_ALARM_H 1
  116. #define CC1K_ALARM_L 0
  117. // LOCK Register Bit Positions
  118. #define CC1K_LOCK_SELECT 4
  119. #define CC1K_PLL_LOCK_ACCURACY 3
  120. #define CC1K_PLL_LOCK_LENGTH 2
  121. #define CC1K_LOCK_INSTANT 1
  122. #define CC1K_LOCK_CONTINUOUS 0
  123. // CAL Register Bit Positions
  124. #define CC1K_CAL_START 7
  125. #define CC1K_CAL_DUAL 6
  126. #define CC1K_CAL_WAIT 5
  127. #define CC1K_CAL_CURRENT 4
  128. #define CC1K_CAL_COMPLETE 3
  129. #define CC1K_CAL_ITERATE 0
  130. // MODEM2 Register Bit Positions
  131. #define CC1K_PEAKDETECT 7
  132. #define CC1K_PEAK_LEVEL_OFFSET 0
  133. // MODEM1 Register Bit Positions
  134. #define CC1K_MLIMIT 5
  135. #define CC1K_LOCK_AVG_IN 4
  136. #define CC1K_LOCK_AVG_MODE 3
  137. #define CC1K_SETTLING 1
  138. #define CC1K_MODEM_RESET_N 0
  139. // MODEM0 Register Bit Positions
  140. #define CC1K_BAUDRATE 4
  141. #define CC1K_DATA_FORMAT 2
  142. #define CC1K_XOSC_FREQ 0
  143. // MATCH Register Bit Positions
  144. #define CC1K_RX_MATCH 4
  145. #define CC1K_TX_MATCH 0
  146. // FSCTLR Register Bit Positions
  147. #define CC1K_DITHER1 3
  148. #define CC1K_DITHER0 2
  149. #define CC1K_SHAPE 1
  150. #define CC1K_FS_RESET_N 0
  151. // PRESCALER Register Bit Positions
  152. #define CC1K_PRE_SWING 6
  153. #define CC1K_PRE_CURRENT 4
  154. #define CC1K_IF_INPUT 3
  155. #define CC1K_IF_FRONT 2
  156. // TEST6 Register Bit Positions
  157. #define CC1K_LOOPFILTER_TP1 7
  158. #define CC1K_LOOPFILTER_TP2 6
  159. #define CC1K_CHP_OVERRIDE 5
  160. #define CC1K_CHP_CO 0
  161. // TEST5 Register Bit Positions
  162. #define CC1K_CHP_DISABLE 5
  163. #define CC1K_VCO_OVERRIDE 4
  164. #define CC1K_VCO_AO 0
  165. // TEST3 Register Bit Positions
  166. #define CC1K_BREAK_LOOP 4
  167. #define CC1K_CAL_DAC_OPEN 0
  168. /* 
  169.  * CC1K Register Parameters Table
  170.  *
  171.  * This table follows the same format order as the CC1K register 
  172.  * set EXCEPT for the last entry in the table which is the 
  173.  * CURRENT register value for TX mode.
  174.  *  
  175.  * NOTE: To save RAM space, this table resides in program memory (flash). 
  176.  * This has two important implications:
  177.  * 1) You can't write to it (duh!)
  178.  * 2) You must read it using the PRG_RDB(addr) macro. IT CANNOT BE ACCESSED AS AN ORDINARY C ARRAY.  
  179.  * 
  180.  * Add/remove individual entries below to suit your RF tastes.
  181.  * 
  182.  */
  183. #define CC1K_433_002_MHZ 0x00
  184. #define CC1K_915_998_MHZ 0x01
  185. #define CC1K_434_845_MHZ        0x02
  186. #define CC1K_914_077_MHZ        0x03
  187. #define CC1K_315_178_MHZ        0x04
  188. #ifdef CC1K_DEFAULT_FREQ
  189. #define CC1K_DEF_PRESET (CC1K_DEFAULT_FREQ)
  190. #endif
  191. #ifdef CC1K_MANUAL_FREQ
  192. #define CC1K_DEF_FREQ (CC1K_MANUAL_FREQ)
  193. #endif
  194. #ifndef CC1K_DEF_PRESET
  195. #define CC1K_DEF_PRESET (CC1K_433_002_MHZ)
  196. #endif 
  197. //#define CC1K_SquelchInit        0x02F8 // 0.90V using the bandgap reference
  198. #define CC1K_SquelchInit        0x120
  199. #define CC1K_SquelchTableSize   9     
  200. #define CC1K_MaxRSSISamples     5
  201. #define CC1K_Settling           1
  202. #define CC1K_ValidPrecursor     2
  203. #define CC1K_SquelchIntervalFast 128
  204. #define CC1K_SquelchIntervalSlow 2560
  205. #define CC1K_SquelchCount       30
  206. #define CC1K_SquelchBuffer      16
  207. #define CC1K_LPL_STATES         9
  208. #define CC1K_LPL_PACKET_TIME    16
  209. static const prog_uchar CC1K_LPL_PreambleLength[CC1K_LPL_STATES*2] = {
  210.     0, 6,       // Always on, 6 byte preamble
  211.     0x0, 48,    // 10ms check interval
  212.     0x0, 60,    // 25ms 
  213.     0x0, 144,   // 50ms 
  214.     0x1, 0x0f,  // 100ms
  215.     0x1, 0xf8,  // 200ms
  216.     0x3, 0xd9,  // 400ms
  217.     0x7, 0x9b,  // 800ms
  218.     0xf, 0x06,  // 1600ms
  219. };
  220. static const prog_uchar CC1K_LPL_SleepTime[CC1K_LPL_STATES*2] = {
  221.     0, 0,       //0
  222.     0x0, 10,    // 10ms
  223.     0x0, 25,    // 25ms
  224.     0x0, 50,    // 50ms
  225.     0x0, 100,   // 100ms
  226.     0x0, 200,   // 200ms
  227.     0x1, 0x90,  // 400ms
  228.     0x3, 0x20,  // 800ms
  229.     0x6, 0x40,  // 1600ms
  230. };
  231. static const prog_uchar CC1K_LPL_SleepPreamble[CC1K_LPL_STATES] = {
  232.     0, 
  233.     8,
  234.     8,
  235.     8, 
  236.     8,
  237.     8,
  238.     8,
  239.     8
  240. };
  241. static const prog_uchar CC1K_Params[6][31] = {
  242.   // (0) 433.002 MHz channel, 19.2 Kbps data, Manchester Encoding, High Side LO
  243.   { // MAIN   0x00
  244.     0x31,
  245.     // FREQ2A,FREQ1A,FREQ0A  0x01-0x03
  246.     0x58,0x00,0x00,
  247.     // FREQ2B,FREQ1B,FREQ0B  0x04-0x06
  248.     0x57,0xf6,0x85,    //XBOW
  249.     // FSEP1, FSEP0     0x07-0x08
  250.     0X03,0x55,
  251.     // CURRENT (RX MODE VALUE)   0x09 (also see below)
  252.     ((4<<CC1K_VCO_CURRENT) | (1<<CC1K_LO_DRIVE)),
  253.     // FRONT_END  0x0a
  254.     ((1<<CC1K_IF_RSSI)),
  255.     // PA_POW  0x0b
  256.     ((0x0<<CC1K_PA_HIGHPOWER) | (0xf<<CC1K_PA_LOWPOWER)), 
  257.     // PLL  0x0c
  258.     ((12<<CC1K_REFDIV)),
  259.     // LOCK  0x0d
  260.     ((0xe<<CC1K_LOCK_SELECT)),
  261.     // CAL  0x0e
  262.     ((1<<CC1K_CAL_WAIT) | (6<<CC1K_CAL_ITERATE)),
  263.     // MODEM2  0x0f
  264.     ((0<<CC1K_PEAKDETECT) | (28<<CC1K_PEAK_LEVEL_OFFSET)),
  265.     // MODEM1  0x10
  266.     ((3<<CC1K_MLIMIT) | (1<<CC1K_LOCK_AVG_MODE) | (CC1K_Settling<<CC1K_SETTLING) | (1<<CC1K_MODEM_RESET_N)), 
  267.     // MODEM0  0x11
  268.     ((5<<CC1K_BAUDRATE) | (1<<CC1K_DATA_FORMAT) | (1<<CC1K_XOSC_FREQ)),
  269.     // MATCH  0x12
  270.     ((0x7<<CC1K_RX_MATCH) | (0x0<<CC1K_TX_MATCH)),
  271.     // FSCTRL 0x13
  272.     ((1<<CC1K_FS_RESET_N)),
  273.     // FSHAPE7 - FSHAPE1   0x14-0x1a
  274.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  275.     // FSDELAY   0x1b
  276.     0x00,
  277.     // PRESCALER    0x1c
  278.     0x00,
  279.     // CURRENT (TX MODE VALUE)  0x1d
  280.     ((8<<CC1K_VCO_CURRENT) | (1<<CC1K_PA_DRIVE)),
  281.     // High side LO  0x1e (i.e. do we need to invert the data?)
  282.     TRUE
  283.   },
  284.   // (1) 915.9988 MHz channel, 19.2 Kbps data, Manchester Encoding, High Side LO
  285.   { // MAIN   0x00 
  286.     0x31,
  287.     // FREQ2A,FREQ1A,FREQ0A  0x01-0x03
  288.     0x7c,0x00,0x00,
  289.     // FREQ2B,FREQ1B,FREQ0B  0x04-0x06
  290.     0x7b,0xf9,0xae,
  291.     // FSEP1, FSEP0     0x07-0x8
  292.     0x02,0x38,
  293.     // CURRENT (RX MODE VALUE)   0x09 (also see below)
  294.     ((8<<CC1K_VCO_CURRENT) | (3<<CC1K_LO_DRIVE)),
  295.     //0x8C,
  296.     // FRONT_END  0x0a
  297.     ((1<<CC1K_BUF_CURRENT) | (2<<CC1K_LNA_CURRENT) | (1<<CC1K_IF_RSSI)),
  298.     //0x32,
  299.     // PA_POW  0x0b
  300.     ((0x8<<CC1K_PA_HIGHPOWER) | (0x0<<CC1K_PA_LOWPOWER)), 
  301.     //0xff,
  302.     // PLL  0xc
  303.     ((8<<CC1K_REFDIV)),
  304.     //0x40,
  305.     // LOCK  0xd
  306.     ((0x1<<CC1K_LOCK_SELECT)),
  307.     //0x10,
  308.     // CAL  0xe
  309.     ((1<<CC1K_CAL_WAIT) | (6<<CC1K_CAL_ITERATE)),
  310.     //0x26,
  311.     // MODEM2  0xf
  312.     ((1<<CC1K_PEAKDETECT) | (33<<CC1K_PEAK_LEVEL_OFFSET)),
  313.     //0xA1,
  314.     // MODEM1  0x10
  315.     ((3<<CC1K_MLIMIT) | (1<<CC1K_LOCK_AVG_MODE) | (CC1K_Settling<<CC1K_SETTLING) | (1<<CC1K_MODEM_RESET_N)), 
  316.     //0x6f, 
  317.     // MODEM0  0x11
  318.     ((5<<CC1K_BAUDRATE) | (1<<CC1K_DATA_FORMAT) | (1<<CC1K_XOSC_FREQ)),
  319.     //0x55,
  320.     // MATCH 0x12
  321.     ((0x1<<CC1K_RX_MATCH) | (0x0<<CC1K_TX_MATCH)),
  322.     //0x10,
  323.     // FSCTRL  0x13
  324.     ((1<<CC1K_FS_RESET_N)),
  325.     //0x01,
  326.     // FSHAPE7 - FSHAPE1   0x14..0x1a
  327.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  328.     // FSDELAY   0x1b
  329.     0x00,
  330.     // PRESCALER    0x1c
  331.     0x00,
  332.     // CURRENT (TX MODE VALUE)  0x1d
  333.     ((15<<CC1K_VCO_CURRENT) | (3<<CC1K_PA_DRIVE)),
  334.     //0xf3,
  335.     // High side LO  0x1e (i.e. do we need to invert the data?)
  336.     TRUE
  337.   },
  338.   // (2) 434.845200 MHz channel, 19.2 Kbps data, Manchester Encoding, High Side LO
  339.   { // MAIN   0x00
  340.     0x31,
  341.     // FREQ2A,FREQ1A,FREQ0A  0x01-0x03
  342.     0x51,0x00,0x00,
  343.     // FREQ2B,FREQ1B,FREQ0B  0x04-0x06
  344.     0x50,0xf7,0x4F,    //XBOW
  345.     // FSEP1, FSEP0     0x07-0x08
  346.     0X03,0x0E,
  347.     // CURRENT (RX MODE VALUE)   0x09 (also see below)
  348.     ((4<<CC1K_VCO_CURRENT) | (1<<CC1K_LO_DRIVE)),
  349.     // FRONT_END  0x0a
  350.     ((1<<CC1K_IF_RSSI)),
  351.     // PA_POW  0x0b
  352.     ((0x0<<CC1K_PA_HIGHPOWER) | (0xf<<CC1K_PA_LOWPOWER)), 
  353.     // PLL  0x0c
  354.     ((11<<CC1K_REFDIV)),
  355.     // LOCK  0x0d
  356.     ((0xe<<CC1K_LOCK_SELECT)),
  357.     // CAL  0x0e
  358.     ((1<<CC1K_CAL_WAIT) | (6<<CC1K_CAL_ITERATE)),
  359.     // MODEM2  0x0f
  360.     ((1<<CC1K_PEAKDETECT) | (33<<CC1K_PEAK_LEVEL_OFFSET)),
  361.     // MODEM1  0x10
  362.     ((3<<CC1K_MLIMIT) | (1<<CC1K_LOCK_AVG_MODE) | (CC1K_Settling<<CC1K_SETTLING) | (1<<CC1K_MODEM_RESET_N)), 
  363.     // MODEM0  0x11
  364.     ((5<<CC1K_BAUDRATE) | (1<<CC1K_DATA_FORMAT) | (1<<CC1K_XOSC_FREQ)),
  365.     // MATCH  0x12
  366.     ((0x7<<CC1K_RX_MATCH) | (0x0<<CC1K_TX_MATCH)),
  367.     // FSCTRL 0x13
  368.     ((1<<CC1K_FS_RESET_N)),
  369.     // FSHAPE7 - FSHAPE1   0x14-0x1a
  370.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  371.     // FSDELAY   0x1b
  372.     0x00,
  373.     // PRESCALER    0x1c
  374.     0x00,
  375.     // CURRENT (TX MODE VALUE)  0x1d
  376.     ((8<<CC1K_VCO_CURRENT) | (1<<CC1K_PA_DRIVE)),
  377.     // High side LO  0x1e (i.e. do we need to invert the data?)
  378.     TRUE
  379.   },
  380.  
  381.   // (3) 914.077 MHz channel, 19.2 Kbps data, Manchester Encoding, High Side LO
  382.   { // MAIN   0x00 
  383.     0x31,
  384.     // FREQ2A,FREQ1A,FREQ0A  0x01-0x03
  385.     0x5c,0xe0,0x00,
  386.     // FREQ2B,FREQ1B,FREQ0B  0x04-0x06
  387.     0x5c,0xdb,0x42,
  388.     // FSEP1, FSEP0     0x07-0x8
  389.     0x01,0xAA,
  390.     // CURRENT (RX MODE VALUE)   0x09 (also see below)
  391.     ((8<<CC1K_VCO_CURRENT) | (3<<CC1K_LO_DRIVE)),
  392.     //0x8C,
  393.     // FRONT_END  0x0a
  394.     ((1<<CC1K_BUF_CURRENT) | (2<<CC1K_LNA_CURRENT) | (1<<CC1K_IF_RSSI)),
  395.     //0x32,
  396.     // PA_POW  0x0b
  397.     ((0x8<<CC1K_PA_HIGHPOWER) | (0x0<<CC1K_PA_LOWPOWER)), 
  398.     //0xff,
  399.     // PLL  0xc
  400.     ((6<<CC1K_REFDIV)),
  401.     //0x40,
  402.     // LOCK  0xd
  403.     ((0x1<<CC1K_LOCK_SELECT)),
  404.     //0x10,
  405.     // CAL  0xe
  406.     ((1<<CC1K_CAL_WAIT) | (6<<CC1K_CAL_ITERATE)),
  407.     //0x26,
  408.     // MODEM2  0xf
  409.     ((1<<CC1K_PEAKDETECT) | (33<<CC1K_PEAK_LEVEL_OFFSET)),
  410.     //0xA1,
  411.     // MODEM1  0x10
  412.     ((3<<CC1K_MLIMIT) | (1<<CC1K_LOCK_AVG_MODE) | (CC1K_Settling<<CC1K_SETTLING) | (1<<CC1K_MODEM_RESET_N)), 
  413.     //0x6f, 
  414.     // MODEM0  0x11
  415.     ((5<<CC1K_BAUDRATE) | (1<<CC1K_DATA_FORMAT) | (1<<CC1K_XOSC_FREQ)),
  416.     //0x55,
  417.     // MATCH 0x12
  418.     ((0x1<<CC1K_RX_MATCH) | (0x0<<CC1K_TX_MATCH)),
  419.     //0x10,
  420.     // FSCTRL  0x13
  421.     ((1<<CC1K_FS_RESET_N)),
  422.     //0x01,
  423.     // FSHAPE7 - FSHAPE1   0x14..0x1a
  424.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  425.     // FSDELAY   0x1b
  426.     0x00,
  427.     // PRESCALER    0x1c
  428.     0x00,
  429.     // CURRENT (TX MODE VALUE)  0x1d
  430.     ((15<<CC1K_VCO_CURRENT) | (3<<CC1K_PA_DRIVE)),
  431.     //0xf3,
  432.     // High side LO  0x1e (i.e. do we need to invert the data?)
  433.     TRUE 
  434.   },
  435.   // (4) 315.178985 MHz channel, 38.4 Kbps data, Manchester Encoding, High Side LO
  436.   { // MAIN   0x00
  437.     0x31,
  438.     // FREQ2A,FREQ1A,FREQ0A  0x01-0x03
  439.     0x45,0x60,0x00,
  440.     // FREQ2B,FREQ1B,FREQ0B  0x04-0x06
  441.     0x45,0x55,0xBB,
  442.     // FSEP1, FSEP0     0x07-0x08
  443.     0X03,0x9C,
  444.     // CURRENT (RX MODE VALUE)   0x09 (also see below)
  445.     ((8<<CC1K_VCO_CURRENT) | (0<<CC1K_LO_DRIVE)),
  446.     // FRONT_END  0x0a
  447.     ((1<<CC1K_IF_RSSI)),
  448.     // PA_POW  0x0b
  449.     ((0x0<<CC1K_PA_HIGHPOWER) | (0xf<<CC1K_PA_LOWPOWER)), 
  450.     // PLL  0x0c
  451.     ((13<<CC1K_REFDIV)),
  452.     // LOCK  0x0d
  453.     ((0xe<<CC1K_LOCK_SELECT)),
  454.     // CAL  0x0e
  455.     ((1<<CC1K_CAL_WAIT) | (6<<CC1K_CAL_ITERATE)),
  456.     // MODEM2  0x0f
  457.     ((1<<CC1K_PEAKDETECT) | (33<<CC1K_PEAK_LEVEL_OFFSET)),
  458.     // MODEM1  0x10
  459.     ((3<<CC1K_MLIMIT) | (1<<CC1K_LOCK_AVG_MODE) | (CC1K_Settling<<CC1K_SETTLING) | (1<<CC1K_MODEM_RESET_N)), 
  460.     // MODEM0  0x11
  461.     ((5<<CC1K_BAUDRATE) | (1<<CC1K_DATA_FORMAT) | (0<<CC1K_XOSC_FREQ)),
  462.     // MATCH  0x12
  463.     ((0x7<<CC1K_RX_MATCH) | (0x0<<CC1K_TX_MATCH)),
  464.     // FSCTRL 0x13
  465.     ((1<<CC1K_FS_RESET_N)),
  466.     // FSHAPE7 - FSHAPE1   0x14-0x1a
  467.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  468.     // FSDELAY   0x1b
  469.     0x00,
  470.     // PRESCALER    0x1c
  471.     0x00,
  472.     // CURRENT (TX MODE VALUE)  0x1d
  473.     ((8<<CC1K_VCO_CURRENT) | (1<<CC1K_PA_DRIVE)),
  474.     // High side LO  0x1e (i.e. do we need to invert the data?)
  475.     TRUE
  476.   },
  477.   // (5) Spare
  478.   { // MAIN   0x00
  479.     0x31,
  480.     // FREQ2A,FREQ1A,FREQ0A  0x01-0x03
  481.     0x58,0x00,0x00,
  482.     // FREQ2B,FREQ1B,FREQ0B  0x04-0x06
  483.     0x57,0xf6,0x85,    //XBOW
  484.     // FSEP1, FSEP0     0x07-0x08
  485.     0X03,0x55,
  486.     // CURRENT (RX MODE VALUE)   0x09 (also see below)
  487.     ((8<<CC1K_VCO_CURRENT) | (4<<CC1K_LO_DRIVE)),
  488.     // FRONT_END  0x0a
  489.     ((1<<CC1K_IF_RSSI)),
  490.     // PA_POW  0x0b
  491.     ((0x0<<CC1K_PA_HIGHPOWER) | (0xf<<CC1K_PA_LOWPOWER)), 
  492.     // PLL  0x0c
  493.     ((12<<CC1K_REFDIV)),
  494.     // LOCK  0x0d
  495.     ((0xe<<CC1K_LOCK_SELECT)),
  496.     // CAL  0x0e
  497.     ((1<<CC1K_CAL_WAIT) | (6<<CC1K_CAL_ITERATE)),
  498.     // MODEM2  0x0f
  499.     ((1<<CC1K_PEAKDETECT) | (33<<CC1K_PEAK_LEVEL_OFFSET)),
  500.     // MODEM1  0x10
  501.     ((3<<CC1K_MLIMIT) | (1<<CC1K_LOCK_AVG_MODE) | (CC1K_Settling<<CC1K_SETTLING) | (1<<CC1K_MODEM_RESET_N)),    // MODEM0  0x11
  502.     ((5<<CC1K_BAUDRATE) | (1<<CC1K_DATA_FORMAT) | (1<<CC1K_XOSC_FREQ)),
  503.     // MATCH  0x12
  504.     ((0x7<<CC1K_RX_MATCH) | (0x0<<CC1K_TX_MATCH)),
  505.     // FSCTRL 0x13
  506.     ((1<<CC1K_FS_RESET_N)),
  507.     // FSHAPE7 - FSHAPE1   0x14-0x1a
  508.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  509.     // FSDELAY   0x1b
  510.     0x00,
  511.     // PRESCALER    0x1c
  512.     0x00,
  513.     // CURRENT (TX MODE VALUE)  0x1d
  514.     ((8<<CC1K_VCO_CURRENT) | (1<<CC1K_PA_DRIVE)),
  515.     // High side LO  0x1e (i.e. do we need to invert the data?)
  516.     TRUE
  517.   },
  518. };
  519. #endif /* _CC1KCONST_H */