⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmx990.h

📁 CMX990 demonstration board (DE9901)
💻 H
字号:
/****h* DE9901/cmx990.h* COPYRIGHT*  (c) 2004-2005 Mobitex Technology AB - All rights reserved* *  Redistribution and use in source and binary forms, with or without modification,*  are permitted provided that the following conditions are met:*  * 1. Redistributions of source code must retain the above copyright notice,*       this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright notice,*       this list of conditions and the following disclaimer in the documentation*       and/or other materials provided with the distribution.*  * 3. The name Mobitex Technology AB may not be used to endorse or promote products*       derived from this software without specific prior written permission.**  THIS SOFTWARE IS PROVIDED BY MOBITEX TECHNOLOGY AB "AS IS" AND ANY EXPRESS OR*  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF*  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT*  SHALL MOBITEX TECHNOLOGY AB BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,*  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;*  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,*  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR*  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.** AUTHOR*  MPN/Kjell Westerberg* HISTORY*  Changes in the file are recorded in this list.*   Ver:  Date:       Responsible:         Comment:*   R1A01 2005-01-26  Kjell Westerberg     Approved.*   R1A05 2005-03-17  Kjell Westerberg     Added Timer1_Isr.*   R1A06 2005-04-08  Kjell Westerberg     Changed argument types in set frequency.* DESCRIPTION* This module is used when communicating with the CMX990 chip.***/#ifndef CMX990_H_#define CMX990_H_/******************************* *  Structs and Enums *******************************/typedef enum {  ADC_PA_TEMP_SENSE = 0,  ADC_TEMP_SENSE,  ADC_TX_POW,  ADC_3,  ADC_EXT,  ADC_IN} AdcSelect_t;typedef enum {  VREF_PA = 0,  DAC_TCXO,  DAC_EXT,  DAC_OUT} DacSelect_t;typedef enum {  MAIN_M = 0,  MAIN_N,  AUX_M,  AUX_N} PllSelect_t;/* Different modes for the CMX driver */typedef enum {  CMX_ModeIdle, /* Do nothing */  CMX_ModeTxPrbs, /* Send PRBS */  CMX_ModeRxPrbs, /* Receive PRBS */  CMX_ModeRxPrbsStart, /* Start Receive PRBS */  CMX_ModeRxPrbsSync, /* Search for PRBS sync */  CMX_ModeAquireChannel /* Aquire IQ and AFC for the channel */} CMX_Modes;/* Allowed Control Words for function CMX_Write */enum CMX_ControlWordsWrite {  CMX_DataBufferTx          = 0,  CMX_Command               = 1,  CMX_Control               = 2,  CMX_Mode                  = 3,  CMX_PowerUp1              = 4,  CMX_PowerUp2              = 5,  CMX_Dac0Lsb               = 8,  CMX_Dac0Msb               = 9,  CMX_Dac1Lsb               = 10,  CMX_Dac1Msb               = 11,  CMX_Dac2Lsb               = 12,  CMX_Dac2Msb               = 13,  CMX_Dac3Lsb               = 14,  CMX_Dac3Msb               = 15,  CMX_RamDacControl         = 16,  CMX_AuxAdcControl1        = 17,  CMX_AuxAdcControl2        = 18,  CMX_AuxRamData1Lsb        = 20,  CMX_AuxRamData1Msb        = 21,  CMX_AuxRamData2Lsb        = 22,  CMX_AuxRamData2Msb        = 23,  CMX_AnalogSetup1W         = 24,  CMX_AnalogSetup2W         = 25,  CMX_SpecialCommand        = 26,  CMX_SpecialData0LsbW      = 27,  CMX_SpecialData0MsbW      = 28,  CMX_SpecialData1LsbW      = 29,  CMX_SpecialData1MsbW      = 30,  CMX_MainPllMLsb           = 32,  CMX_MainPllMMsb           = 33,  CMX_MainPllNLsb           = 34,  CMX_MainPllNNsb           = 35,  CMX_MainPllNMsb           = 36,  CMX_AuxPllMLsb            = 37,  CMX_AuxPllMMsb            = 38,  CMX_AuxPllNLsb            = 39,  CMX_AuxPllNMsb            = 40};/* Allowed Control Words for function CMX_Read */enum CMX_ControlWordsRead {  CMX_DataBufferRx        = 0,  CMX_Status1             = 1,  CMX_DataQuality         = 2,  CMX_Status2             = 3,  CMX_FreqOffset          = 4,  CMX_ContRSSI            = 5,  CMX_Adc0Lsb             = 8,  CMX_Adc0Msb             = 9,  CMX_Adc1Lsb             = 10,  CMX_Adc1Msb             = 11,  CMX_Adc2Lsb             = 12,  CMX_Adc2Msb             = 13,  CMX_Adc3Lsb             = 14,  CMX_Adc3Msb             = 15,  CMX_Adc4Lsb             = 16,  CMX_Adc4Msb             = 17,  CMX_Adc5Lsb             = 18,  CMX_Adc5Msb             = 19,  CMX_AnalogSetup1R       = 24,  CMX_AnalogSetup2R       = 25,  CMX_SpecialData0LsbR    = 27,  CMX_SpecialData0MsbR    = 28,  CMX_SpecialData1LsbR    = 29,  CMX_SpecialData1MsbR    = 30};/* Data structure for storing received PRBS bits. */typedef struct {  u32 totalNoBits;  u32 errorNoBits;} CMX_PrbsStatistics_t;/* Functions */void CMX_Init(void);void CMX_Reset(void);cyg_uint32 CMX_Isr(cyg_vector_t vector, cyg_addrword_t data);cyg_uint32 Timer1_Isr(cyg_vector_t vector, cyg_addrword_t data);u8 CMX_Read(enum CMX_ControlWordsRead cmd);u8 CMX_ReadWriteReg(enum CMX_ControlWordsWrite cmd, bool cmxRead);void CMX_Write(enum CMX_ControlWordsWrite cmd, u8 cmdData);u16 CMX_ReadAdc(AdcSelect_t adcNumber);void CMX_WriteDac(DacSelect_t dacNo, u16 dacValue);u16 CMX_ReadDac(DacSelect_t dacNo);void CMX_WritePll(PllSelect_t pllNo, u32 value);u32 CMX_ReadPll(PllSelect_t pllNo);void CMX_GetPrbsStat(CMX_PrbsStatistics_t *prbs);void CMX_ResetPrbs(void);void CMX_RxActive(bool state, bool minSet);void CMX_TxActive(bool state, bool minSet);void CMX_SetRxFreq(s32 freq);void CMX_SetTxFreq(s32 freq);s32 CMX_GetRxFreq(void);s32 CMX_GetTxFreq(void);/* Returns the frequency boundaries. */void CMX_GetFreqBand(s32 *minRxFreq, s32 *maxRxFreq, s32 *minTxFreq, s32 *maxTxFreq);/* Returns the radio reference clock frequency. */s32 CMX_RefClock(void);void CMX_GetFreqParameters(s32 *rx, s32 *tx, bool *txHighSide);#endif /* CMX990_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -