csl_mcbsp.h
来自「dsp在音频处理中的运用」· C头文件 代码 · 共 1,398 行 · 第 1/3 页
H
1,398 行
/*****************************************************\ * Copyright 2003, Texas Instruments Incorporated. * * All rights reserved. * * Restricted rights to use, duplicate or disclose * * this code are granted through contract. * \*****************************************************//* @(#) PSP/CSL 3.00.01.00[5912PG1_0] (2003-11-12) *//** @file csl_mcbsp.h * * @brief Header file for functional layer of McBSP CSL * * Description * - The different symbolic constants, enumerations, structure definitions * and function prototype declarations * * @date * @author *//** * @defgroup CSL_MCBSP_API MCBSP *//** * @defgroup CSL_MCBSP_DATASTRUCT MCBSP Data Structures * @ingroup CSL_MCBSP_API *//** * @defgroup CSL_MCBSP_SYMBOL Symbols * @ingroup CSL_MCBSP_API *//** * @defgroup CSL_MCBSP_ENUM Enumerated Data Types * @ingroup CSL_MCBSP_API *//** * @defgroup CSL_MCBSP_FUNCTION Functions * @ingroup CSL_MCBSP_API */#ifndef _CSL_MCBSP_H_#define _CSL_MCBSP_H_#ifdef __cplusplusextern "C" {#endif#include <csl.h>#include <cslr_mcbsp.h>/**************************************************************************\* MCBSP global macro declarations\**************************************************************************//** @defgroup CSL_MCBSP_IO_SYMBOL General purpose IO pin selection * @ingroup CSL_MCBSP_SYMBOL * * Use this symbol as pin mask for @a CSL_mcbspIoRead() and * @a CSL_mcbspIoWrite() functions * * @{ *//** I/O Pin Input/Output configuration for CLKX Pin */#define CSL_MCBSP_IO_CLKX (1)/** I/O Pin Input/Output configuration for FSX Pin */#define CSL_MCBSP_IO_FSX (2)/** Not Configurable. Always Output. */#define CSL_MCBSP_IO_DX (4)/** I/O Pin Input/Output configuration for CLKR Pin */#define CSL_MCBSP_IO_CLKR (8)/** I/O Pin Input/Output configuration for FSR Pin */#define CSL_MCBSP_IO_FSR (16)/** Not Configurable. Always Input. */#define CSL_MCBSP_IO_DR (32)/** Not Configurable. Always Input. */#define CSL_MCBSP_IO_CLKS (64)/**@} *//** @defgroup CSL_MCBSP_CTRL_SYMBOL Enable/Disable Controls * @ingroup CSL_MCBSP_SYMBOL * * Use this symbol as enable/disable control bitmask for * @a CSL_mcbspHwControl() function * * @{ *//** To enable Receiver in resetControl Function */#define CSL_MCBSP_CTRL_RX_ENABLE (1)/** To enable Transmitter in resetControl Function */#define CSL_MCBSP_CTRL_TX_ENABLE (2)/** To disable Receiver in resetControl Function */#define CSL_MCBSP_CTRL_RX_DISABLE (4)/** To disable Transmitter in resetControl Function */#define CSL_MCBSP_CTRL_TX_DISABLE (8)/** To enable Frame Sync Generation in resetControl Function */#define CSL_MCBSP_CTRL_FSYNC_ENABLE (16)/** To enable Sample Rate Generator in resetControl Function */#define CSL_MCBSP_CTRL_SRG_ENABLE (32)/** To disable Frame Sync Generation in resetControl Function */#define CSL_MCBSP_CTRL_FSYNC_DISABLE (64)/** To disable Sample Rate Generator in resetControl Function */#define CSL_MCBSP_CTRL_SRG_DISABLE (128)/**@} *//** @defgroup CSL_DEVSTATUS_SYMBOL RCV/XMT status symbols * @ingroup CSL_MCBSP_SYMBOL * * Use this symbol to compare the return value of @a CSL_mcbspGetHwStatus() * function for @a CSL_MCBSP_QUERY_DEV_STATUS query. * * @{ *//** RCV ready status */#define CSL_MCBSP_RRDY 0x0001/** XMT ready status */#define CSL_MCBSP_XRDY 0x0002/** RCV full status */#define CSL_MCBSP_RFULL 0x0004/** XMT empty status */#define CSL_MCBSP_XEMPTY 0x0008/** RCV frame sync error status */#define CSL_MCBSP_RSYNCERR 0x0010/** XMT frame sync error status */#define CSL_MCBSP_XSYNCERR 0x0020/**@} *//** @defgroup CSL_EMCBSP_SYMBOL Error codes * @ingroup CSL_MCBSP_SYMBOL * * @{ *//** Invalid Control Command */#define CSL_EMCBSP_INVCNTLCMD (CSL_EMCBSP_FIRST - 0)/** Invalid Query */#define CSL_EMCBSP_INVQUERY (CSL_EMCBSP_FIRST - 1)/** Invalid Parameter */#define CSL_EMCBSP_INVPARAMS (CSL_EMCBSP_FIRST - 2)/** Invalid Size */#define CSL_EMCBSP_INVSIZE (CSL_EMCBSP_FIRST - 3)/** 'Does not exist' */#define CSL_EMCBSP_NOTEXIST (CSL_EMCBSP_FIRST - 4)/**@} *//** * @defgroup CSL_MCBSP_DEFAULT_SYMBOL MCBSP CSL Defaults * @ingroup CSL_MCBSP_SYMBOL * * @{ *//** Data Setup defaults */#define CSL_MCBSP_DATASETUP_DEFAULTS { \ (CSL_McbspPhase)CSL_MCBSP_PHASE_SINGLE, \ (CSL_McbspWordLen)CSL_MCBSP_WORDLEN_16, \ 1, \ (CSL_McbspWordLen)0, \ 0, \ (CSL_McbspFrmSync)CSL_MCBSP_FRMSYNC_DETECT, \ (CSL_McbspCompand)CSL_MCBSP_COMPAND_OFF_MSB_FIRST, \ (CSL_McbspDataDelay)CSL_MCBSP_DATADELAY_0_BIT, \ (CSL_McbspRjustDxena)0, \ (CSL_McbspIntMode)CSL_MCBSP_INTMODE_ON_READY \}/** Clock Setup defaults */#define CSL_MCBSP_CLOCKSETUP_DEFAULTS{ \ (CSL_McbspFsClkMode)CSL_MCBSP_FSCLKMODE_EXTERNAL, \ (CSL_McbspFsClkMode)CSL_MCBSP_FSCLKMODE_EXTERNAL, \ (CSL_McbspTxRxClkMode)CSL_MCBSP_TXRXCLKMODE_INTERNAL, \ (CSL_McbspTxRxClkMode)CSL_MCBSP_TXRXCLKMODE_EXTERNAL, \ (CSL_McbspFsPol)0, \ (CSL_McbspFsPol)0, \ (CSL_McbspClkPol)0, \ (CSL_McbspClkPol)0, \ 1, \ 0x40, \ 0xFF, \ (CSL_McbspSrgClk)0, \ (CSL_McbspClkPol)0, \ (CSL_McbspTxFsMode)CSL_MCBSP_SRG_FRMSYNC_SRG, \ (CSL_McbspClkgSyncMode)CSL_MCBSP_CLKGSYNCMODE_OFF \}/** Multichannel Setup defaults */#define CSL_MCBSP_MULTICHAN_DEFAULTS { \ (CSL_McbspPartMode)CSL_MCBSP_PARTMODE_2PARTITION, \ (CSL_McbspPartMode)CSL_MCBSP_PARTMODE_2PARTITION, \ (Uint16)0, \ (Uint16)0, \ (CSL_McbspPABlk)CSL_MCBSP_PABLK_0, \ (CSL_McbspPBBlk)CSL_MCBSP_PBBLK_1, \ (CSL_McbspPABlk)CSL_MCBSP_PABLK_0, \ (CSL_McbspPBBlk)CSL_MCBSP_PBBLK_1 \}/** Global parameters Setup defaults */#define CSL_MCBSP_GLOBALSETUP_DEFAULTS { \ (CSL_McbspIOMode)CSL_MCBSP_IOMODE_TXDIS_RXDIS, \ (CSL_McbspDlbMode)CSL_MCBSP_DLBMODE_OFF, \ (CSL_McbspClkStp)CSL_MCBSP_CLKSTP_DISABLE, \}/** Default Emulation mode - Stop */#define CSL_MCBSP_EMUMODE_DEFAULT CSL_MCBSP_EMU_STOP/** Extend Setup default - NULL */#define CSL_MCBSP_EXTENDSETUP_DEFAULT NULL/** Default HwSetup */#define CSL_MCBSP_HWSETUP_DEFAULTS { \ CSL_MCBSP_GLOBALSETUP_DEFAULTS, \ CSL_MCBSP_DATASETUP_DEFAULTS, \ CSL_MCBSP_DATASETUP_DEFAULTS, \ CSL_MCBSP_CLOCKSETUP_DEFAULTS, \ CSL_MCBSP_MULTICHAN_DEFAULTS, \ CSL_MCBSP_EMUMODE_DEFAULT, \ CSL_MCBSP_EXTENDSETUP_DEFAULT \ }/** The default value for @a CSL_McbspConfig structure */#define CSL_MCBSP_CONFIG_DEFAULTS { \ CSL_MCBSP_DRR2_RESETVAL, \ CSL_MCBSP_DRR1_RESETVAL, \ CSL_MCBSP_DXR2_RESETVAL, \ CSL_MCBSP_DXR1_RESETVAL, \ CSL_MCBSP_SPCR2_RESETVAL, \ CSL_MCBSP_SPCR1_RESETVAL, \ CSL_MCBSP_RCR2_RESETVAL, \ CSL_MCBSP_RCR1_RESETVAL, \ CSL_MCBSP_XCR2_RESETVAL, \ CSL_MCBSP_XCR1_RESETVAL, \ CSL_MCBSP_SRGR2_RESETVAL, \ CSL_MCBSP_SRGR1_RESETVAL, \ CSL_MCBSP_MCR2_RESETVAL, \ CSL_MCBSP_MCR1_RESETVAL, \ CSL_MCBSP_RCERA_RESETVAL, \ CSL_MCBSP_RCERB_RESETVAL, \ CSL_MCBSP_XCERA_RESETVAL, \ CSL_MCBSP_XCERB_RESETVAL, \ CSL_MCBSP_PCR_RESETVAL, \ CSL_MCBSP_RCERC_RESETVAL, \ CSL_MCBSP_RCERD_RESETVAL, \ CSL_MCBSP_XCERC_RESETVAL, \ CSL_MCBSP_XCERD_RESETVAL, \ CSL_MCBSP_RCERE_RESETVAL, \ CSL_MCBSP_RCERF_RESETVAL, \ CSL_MCBSP_XCERE_RESETVAL, \ CSL_MCBSP_XCERF_RESETVAL, \ CSL_MCBSP_RCERG_RESETVAL, \ CSL_MCBSP_RCERH_RESETVAL, \ CSL_MCBSP_XCERG_RESETVAL \}/**@} *//**************************************************************************\* MCBSP global typedef declarations\**************************************************************************//** * @defgroup CSL_MCBSP_WORDLEN_ENUM Word length * @ingroup CSL_MCBSP_ENUM * * @brief Word lengths supported on MCBSP * * Use this symbol for setting Word Length in each Phase for every Frame * @{ */typedef enum { CSL_MCBSP_WORDLEN_8 = 0, CSL_MCBSP_WORDLEN_12 = 1, CSL_MCBSP_WORDLEN_16 = 2, CSL_MCBSP_WORDLEN_20 = 3, CSL_MCBSP_WORDLEN_24 = 4, CSL_MCBSP_WORDLEN_32 = 5} CSL_McbspWordLen;/**@} *//** * @defgroup CSL_MCBSP_COMPAND_ENUM Companding options * @ingroup CSL_MCBSP_ENUM * * @brief MCBSP companding options * * Use this symbol to set Companding related options * @{ */typedef enum { CSL_MCBSP_COMPAND_OFF_MSB_FIRST = 0, CSL_MCBSP_COMPAND_OFF_LSB_FIRST = 1, CSL_MCBSP_COMPAND_MULAW = 2, CSL_MCBSP_COMPAND_ALAW = 3} CSL_McbspCompand;/**@} *//** * @defgroup CSL_MCBSP_DATADELAY_ENUM Data delay * @ingroup CSL_MCBSP_ENUM * * @brief Data delay in bits * * Use this symbol to set XMT/RCV Data Delay (in bits) * @{ */typedef enum { CSL_MCBSP_DATADELAY_0_BIT = 0, CSL_MCBSP_DATADELAY_1_BIT = 1, CSL_MCBSP_DATADELAY_2_BITS = 2} CSL_McbspDataDelay;/**@} *//** * @defgroup CSL_MCBSP_EVENT_ENUM Interrupt mode * @ingroup CSL_MCBSP_ENUM * * @brief MCBSP Interrupt mode * * Use this symbol to set Interrupt mode (i.e. source of interrupt generation). * This symbol is used on both RCV and XMT for RINT and XINT generation mode. * @{ */typedef enum { /** Interrupt generated on RRDY of RCV or XRDY of XMT */ CSL_MCBSP_INTMODE_ON_READY = 0, /** Interrupt generated on end of 16-channel block transfer * in multichannel mode */ CSL_MCBSP_INTMODE_ON_EOB = 1, /** Interrupt generated on frame sync */ CSL_MCBSP_INTMODE_ON_FSYNC = 2, /** Interrupt generated on synchronisation error */ CSL_MCBSP_INTMODE_ON_SYNCERR = 3} CSL_McbspIntMode;/**@} *//** * @defgroup CSL_MCBSP_FSCLKMODE_ENUM Frame sync clock source * @ingroup CSL_MCBSP_ENUM * * @brief Frame sync clock source * * Use this symbol to set the frame sync clock source as internal or external * @{ */typedef enum { CSL_MCBSP_FSCLKMODE_EXTERNAL = 0, CSL_MCBSP_FSCLKMODE_INTERNAL = 1} CSL_McbspFsClkMode;/**@} *//** * @defgroup CSL_MCBSP_CLKMODE_ENUM Clock Mode * @ingroup CSL_MCBSP_ENUM * * @brief Clock source * * Use this symbol to set the clock source as internal or external * @{ */typedef enum { CSL_MCBSP_TXRXCLKMODE_EXTERNAL = 0, CSL_MCBSP_TXRXCLKMODE_INTERNAL = 1} CSL_McbspTxRxClkMode;/**@} *//** * @defgroup CSL_MCBSP_FSPOLAR_ENUM Frame sync polarity * @ingroup CSL_MCBSP_ENUM * * @brief Frame sync polarity * * Use this symbol to set frame sync polarity as active-high or active-low * @{ */typedef enum { CSL_MCBSP_FSPOL_ACTIVE_HIGH = 0, CSL_MCBSP_FSPOL_ACTIVE_LOW = 1} CSL_McbspFsPol;/**@} *//** * @defgroup CSL_MCBSP_CLKPOLAR_ENUM Clock polarity * @ingroup CSL_MCBSP_ENUM * * @brief Clock polarity * * Use this symbol to set XMT or RCV clock polarity as rising or falling edge * @{ */typedef enum { CSL_MCBSP_CLKPOL_TX_RISING_EDGE = 0, CSL_MCBSP_CLKPOL_RX_FALLING_EDGE = 0, CSL_MCBSP_CLKPOL_SRG_RISING_EDGE = 0, CSL_MCBSP_CLKPOL_TX_FALLING_EDGE = 1, CSL_MCBSP_CLKPOL_RX_RISING_EDGE = 1, CSL_MCBSP_CLKPOL_SRG_FALLING_EDGE = 1} CSL_McbspClkPol;/**@} *//** * @defgroup CSL_MCBSP_SRGCLK_ENUM SRG clock source * @ingroup CSL_MCBSP_ENUM * * @brief SRG clock source * * Use this symbol to select input clock source for Sample Rate Generator * @{ */typedef enum { CSL_MCBSP_SRGCLK_CLKS = 0, CSL_MCBSP_SRGCLK_CLKCPU = 1, CSL_MCBSP_SRGCLK_CLKR = 2, CSL_MCBSP_SRGCLK_CLKX = 3} CSL_McbspSrgClk;/**@} *//** * @defgroup CSL_MCBSP_TXFSMODE_ENUM XMT Frame Sync generation mode * @ingroup CSL_MCBSP_ENUM * * @brief XMT Frame Sync generation mode * * Use this symbol to set XMT Frame Sync generation mode * @{ */typedef enum { CSL_MCBSP_TXFSMODE_DXRCOPY = 0, CSL_MCBSP_TXFSMODE_SRG = 1} CSL_McbspTxFsMode;/**@} *//** * @defgroup CSL_MCBSP_IOMODE_ENUM XMT and RCV IO Mode * @ingroup CSL_MCBSP_ENUM * * @brief XMT and RCV IO Mode * * Use this symbol to Enable/Disable IO Mode for XMT and RCV * @{ */typedef enum { CSL_MCBSP_IOMODE_TXDIS_RXDIS = 0, CSL_MCBSP_IOMODE_TXDIS_RXEN = 1, CSL_MCBSP_IOMODE_TXEN_RXDIS = 2, CSL_MCBSP_IOMODE_TXEN_RXEN = 3} CSL_McbspIOMode;/**@} *//**
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?