csl_uart.h

来自「dsp在音频处理中的运用」· C头文件 代码 · 共 1,414 行 · 第 1/3 页

H
1,414
字号
/*  =========================================================*   Copyright (c) Texas Instruments Inc 2002, 2003, 2004**   Use of this software is controlled by the terms and conditions found*   in the license agreement under which this software has been supplied*   provided*   ==========================================================*//** @mainpage UART Module** @section Introduction** @subsection xxx Purpose and Scope* The purpose of this document is to identify a set of common CSL APIs for* the UART Module across various devices. The CSL developer* is expected to refer to this document while implementing APIs for these* modules . Some of the listed APIs may not be applicable to a given UART* While in other cases this list of APIs may not be* sufficient to cover all the features of a particular UART Module.* The CSL developer should use his/her discretion in* designing new APIs or extending the existing ones to cover these.**** @subsection aaa Terms and Abbreviations*   -# CSL  :  Chip Support Library*   -# API  :  Application Programmer Interface*   -# UART :  Universal Asynchronous Receiver Transmitter** @subsection References*    -# CSL 3.x Technical Requirements Specifications Version 0.5, dated*       May 14th, 2003*    -# The OMAP 1610 Technical Reference Manual (SWPU062B)** @subsection Assumptions*     The abbreviations CSL, UART have been used throughout this*     document to refer to the OMAP 1610 UART Module.*     'space' Refers to the empty 5/6/7/8 elements.*     'character' Refers to the 5/6/7/8 bit long transfer elements.*      This is not what is meant in conventional "C".*//** @file csl_uart.h**  @brief    Header file for functional layer of CSL**  Description*    - The different enumerations, structure definitions*      and function declarations*  @date 27th Jan, 2004*  @author Ruchika Kharwar *  Modification 1
 *    - Modified on: 2005/01/02
 *    - Reason: transfer structure change 			  : add CSL_UART_CONFIG_DEFAULTS	
 *
 *  @date 2005/02/04
 *  @author svijay*//**@defgroup CSL_UART_API UART*//**@defgroup CSL_UART_DATASTRUCT  UART Data Structures@ingroup CSL_UART_API*//**@defgroup CSL_UART_SYMBOL  Symbols@ingroup CSL_UART_API*//**@defgroup CSL_UART_ENUM  Enumerated Data Types@ingroup CSL_UART_API*//**@defgroup CSL_UART_FUNCTION  Functions@ingroup CSL_UART_API*/#ifndef _CSL_UART_H_#define _CSL_UART_H_#ifdef __cplusplusextern "C" {#endif#include <csl.h>#include <cslr_uart.h>/**************************************************************************\* UART global macro declarations\**************************************************************************//* Macros - events, used for*  Interrupt Enable Symbols*//** @defgroup CSL_UART_EVENT_SYMBOL Events*   @ingroup CSL_UART_SYMBOL*** @{ *//** Enable/Disable Receive Threshold Interrupt       */#define  CSL_UART_EVENT_RHR           0x01/** Enable/Disable TransmitThreshold Interrupt       */#define  CSL_UART_EVENT_THR           0x02/** Enable/Disable Line Status Interrupt             */#define  CSL_UART_EVENT_LINESTS       0x04/** Enable/Disable Modem Status Interrupt            */#define  CSL_UART_EVENT_MODEMSTS      0x08/** Enable/Disable Sleep Mode			             */#define  CSL_UART_EVENT_SLEEP         0x10/** Enable/Disable XOFF Interrupt			       */#define  CSL_UART_EVENT_XOFF          0x20/** Enable/Disable RTS Interrupt				       */#define  CSL_UART_EVENT_RTS           0x40/** Enable/Disable CTS Interrupt				       */#define  CSL_UART_EVENT_CTS           0x80/** Enable/Disable DSR Interrupt				       */#define  CSL_UART_EVENT_DSR           0x100/** Enable/Disable RX/CTS/DSR Interrupt for Wakeup   */#define  CSL_UART_EVENT_RCDWAKEUP     0x200/**@} *//** @defgroup CSL_UART_TXTRIGGER_SYMBOL Tx Trigger Levels*   @ingroup CSL_UART_SYMBOL** @{ *//** 8  spaces                 */#define CSL_UART_TXTRIGLEVEL_8   8/** 16 spaces                             */#define CSL_UART_TXTRIGLEVEL_16  16/** 32 spaces                             */#define CSL_UART_TXTRIGLEVEL_32  32/** 56 spaces                             */#define CSL_UART_TXTRIGLEVEL_56  56/**@}*//** @defgroup CSL_UART_RXTRIGGER_SYMBOL Rx Trigger Levels*   @ingroup CSL_UART_SYMBOL** @{ *//** 8  characters                      */#define CSL_UART_RXTRIGLEVEL_8   8/** 16 characters                      */#define CSL_UART_RXTRIGLEVEL_16  16/** 56 characters                      */#define CSL_UART_RXTRIGLEVEL_56  56/** 60 characters                      */#define CSL_UART_RXTRIGLEVEL_60  60/**@}*//** @defgroup CSL_UART_WAKEUP_SYMBOL WakeUp Events*   @ingroup CSL_UART_SYMBOL** @{ *//* Macros - UART WakeUp enable Flags*  The application may also use these flags to allow specified source to enable wakeup*//** CTS Activity can wake Up the system              */#define CSL_UART_WAKEUPEVENT_CTS  CSL_FMK(UART_WER_CTS,1)/** DSR Activity can wake Up the system              */#define CSL_UART_WAKEUPEVENT_DSR  CSL_FMK(UART_WER_DSR,1)/** RI  Activity can wake Up the system              */#define CSL_UART_WAKEUPEVENT_RI   CSL_FMK(UART_WER_RI,1)/** DCD Activity can wake Up the system              */#define CSL_UART_WAKEUPEVENT_DCD  CSL_FMK(UART_WER_DCD,1)/** RX/RXIR Activity can wake Up the system          */#define CSL_UART_WAKEUPEVENT_RX   CSL_FMK(UART_WER_RXIR,1)/** RHR Activity can wake Up the system              */#define CSL_UART_WAKEUPEVENT_RHR  CSL_FMK(UART_WER_RHR,1)/** Receive Line Status can wake Up the system       */#define CSL_UART_WAKEUPEVENT_LS   CSL_FMK(UART_WER_RLS,1)/**@}*//** @defgroup CSL_UART_LINESTS_SYMBOL Line Status*   @ingroup CSL_UART_SYMBOL** @{ *//* Macros - UART Line Status/Errors*//** Atleast one Parity/Framing/break error in the  Rx FIFO*/#define CSL_UART_LINESTS_PFB_ERROR          CSL_FMK(UART_LSR_RX_FIFO_STS,1)/** Tx Hold and Shift registers Empty */#define CSL_UART_LINESTS_TXSHIFTEMPTY       CSL_FMK(UART_LSR_TX_SR_E,1)/** Tx FIFO Empty */#define CSL_UART_LINESTS_TXFIFOEMPTY        CSL_FMK(UART_LSR_TX_FIFO_E,1)/** Break condition detected while the data is being read */#define CSL_UART_LINESTS_BREAK_ERROR        CSL_FMK(UART_LSR_RX_BI,1)/** Framing error in data being read from the Rx FIFO */#define CSL_UART_LINESTS_RXFRAME_ERROR      CSL_FMK(UART_LSR_RX_FE,1)/** Parity error in data being read from the Rx FIFO */#define CSL_UART_LINESTS_PARITY_ERROR       CSL_FMK(UART_LSR_RX_PE,1)/** Overrun error in data being read from the Rx FIFO */#define CSL_UART_LINESTS_OVERRUN_ERROR      CSL_FMK(UART_LSR_RX_OE,1)/** Framing error in data being read from the Rx FIFO */#define CSL_UART_LINESTS_RXFIFO_NOTEMPTY    CSL_FMK(UART_LSR_RX_FIFO_E,1)/**@}*//** @defgroup CSL_UART_MODEMSTS_SYMBOL Modem Status*   @ingroup CSL_UART_SYMBOL** @{ *//* Macros - Modem Status*//** CTS input has changed state  */#define CSL_UART_MODEMSTS_CTS	            CSL_FMK(UART_MSR_CTS_STS,1)/** DSR input has changed state  */#define CSL_UART_MODEMSTS_DSR	            CSL_FMK(UART_MSR_DSR_STS,1)/** RI input has changed state from low to high  */#define CSL_UART_MODEMSTS_RI	            CSL_FMK(UART_MSR_RI_STS,1)/** DCD input has changed state  */#define CSL_UART_MODEMSTS_DCD	            CSL_FMK(UART_MSR_DCD_STS,1)/** CTS complement  */#define CSL_UART_MODEMSTS_NCTS	            CSL_FMK(UART_MSR_NCTS_STS,1)/** DSR complement  */#define CSL_UART_MODEMSTS_NDSR	            CSL_FMK(UART_MSR_NDSR_STS,1)/** RI complement  */#define CSL_UART_MODEMSTS_NRI	            CSL_FMK(UART_MSR_NRI_STS,1)/** CD complement  */#define CSL_UART_MODEMSTS_NCD	            CSL_FMK(UART_MSR_NCD_STS,1)/**@}*//** @defgroup CSL_UART_SUPPSTS_SYMBOL Supplementary Status*   @ingroup CSL_UART_SYMBOL** @{ *//* Macros - Supplementary Status/Errors*//** Tx FIFO full  */#define CSL_UART_SUPPSTS_TXFIFOFULL           CSL_FMK(UART_SSR_TX_FIFO_FULL,1)/** Falling edge on Rx/CTS,DSR */#define CSL_UART_SUPPSTS_RCD_WAKE_UP          CSL_FMK(UART_SSR_RX_CTS_DSR_WAKE_UP_STS,1)/**@}*//** @defgroup CSL_UART_RXFIFOTRIGGER_SYMBOL Rx FIFO Trigger Levels*   @ingroup CSL_UART_SYMBOL** @{ *//* Macros - Rx FIFO Trigger Levels*//** Rx FIFO Trigger Halt Min */ #define CSL_UART_RX_FIFO_TRIG_HALT_MIN     1/** Rx FIFO Trigger Halt Max */ #define CSL_UART_RX_FIFO_TRIG_HALT_MAX     63/** Rx FIFO Trigger Resume Min */ #define CSL_UART_RX_FIFO_TRIG_RESUME_MIN   1/** Rx FIFO Trigger Resume Max */ #define CSL_UART_RX_FIFO_TRIG_RESUME_MAX   63/**@}*//**@defgroup CSL_UART_BAUDRATE_SYMBOL Baud Rate*  @ingroup CSL_UART_SYMBOL@{*//** @brief Baud Rate setting.*/#define CSL_UART_BAUD_0_3K      300/**0.6 Kb/s */#define CSL_UART_BAUD_0_6K      600/**1.2Kb/s */#define CSL_UART_BAUD_1_2K      1200/** 2.4Kb/s*/#define CSL_UART_BAUD_2_4K      2400/** 4.8 Kb/s */#define CSL_UART_BAUD_4_8K      4800/** 9.6 Kb/s   */#define CSL_UART_BAUD_9_6K      9600/**14.4 Kb/s */#define CSL_UART_BAUD_14_4K     14400/**19.2 Kb/s */#define CSL_UART_BAUD_19_2K     19200/**28.8 Kb/s */#define CSL_UART_BAUD_28_8K     28800/** 38.4 Kb/s*/#define CSL_UART_BAUD_38_4K     38400/**57.6 Kb/s */#define CSL_UART_BAUD_57_6K      57600/**115.2 Kb/s */#define CSL_UART_BAUD_115_2K     115200/** 230.4 Kb/s */#define CSL_UART_BAUD_230_4K     230400/** 460.8 Kb/s */#define CSL_UART_BAUD_460_8K     460800/** 921.6  Kb/s */#define CSL_UART_BAUD_921_6K     921600/** 1.8342 Mb/s */#define CSL_UART_BAUD_1_834M     1834200/** 3.6864 Mb/s */#define CSL_UART_BAUD_3_686M     3686400/**@}*//**************************************************************************\* UART global typedef declarations\**************************************************************************//**@defgroup CSL_UART_AUTOBAUD_ENUM AutoBaud Speeds*  @ingroup CSL_UART_ENUM@{*//** @brief UART AutoBaud speeds** This is used for query commands to query the  UART AutoBaud Mode*/typedef enum {    /** 0Kb/s */    CSL_UART_AUTOBAUDSPEED_NONE= 0  ,    /** 115200 baud */    CSL_UART_AUTOBAUDSPEED_1152= 1  ,	/** 57600 baud */	CSL_UART_AUTOBAUDSPEED_576= 2 	,	/** 38400 baud */	CSL_UART_AUTOBAUDSPEED_384= 3 	,	/** 28800 baud */	CSL_UART_AUTOBAUDSPEED_288= 4   ,	/** 19200 baud */	CSL_UART_AUTOBAUDSPEED_192= 5 	,	/** 14400 baud */	CSL_UART_AUTOBAUDSPEED_144= 6 	,	/** 09600 baud */	CSL_UART_AUTOBAUDSPEED_096= 7   ,	/** 04800 baud */	CSL_UART_AUTOBAUDSPEED_048= 8   ,	/** 02400 baud */	CSL_UART_AUTOBAUDSPEED_024= 9   ,	/** 1200 baud */	CSL_UART_AUTOBAUDSPEED_012= 10}CSL_UartAutoBaudSpeed;/**@}*//**@defgroup CSL_UART_AUTOBAUDCHARLEN_ENUM AutoBaud Character Length*  @ingroup CSL_UART_ENUM@{*//** @brief Enumeration for UART AutoBaud Character Length** This is used for query commands to query the  UART AutoBaud Character Length*/typedef enum {    /** Autobaud character length is 7 */    CSL_UART_AUTOBITPERCHAR_7 = CSL_UART_UASR_BIT_BY_CHAR_7,    /** Autobaud character length is 8 */    CSL_UART_AUTOBITPERCHAR_8 = CSL_UART_UASR_BIT_BY_CHAR_8}CSL_UartAutoBitperChar;/**@}*//**@defgroup CSL_UART_AUTOBAUDPARITY_ENUM AutoBaud parity*  @ingroup CSL_UART_ENUM@{*//** @brief Enumeration for UART AutoBaud parity** This is used for query commands to query the UART AutoBaud parity*/typedef enum {    /** No Autobaud parity detected */    CSL_UART_AUTOPARITY_NONE = CSL_UART_UASR_PARITY_TYPE_NONE,    /** Space detected as Autobaud parity */    CSL_UART_AUTOPARITY_SPACE= CSL_UART_UASR_PARITY_TYPE_SPACE,    /** Even Autobaud parity detected */    CSL_UART_AUTOPARITY_EVEN = CSL_UART_UASR_PARITY_TYPE_EVEN,    /** Odd Autobaud parity detected */    CSL_UART_AUTOPARITY_ODD  = CSL_UART_UASR_PARITY_TYPE_ODD}CSL_UartAutoParity;/**@}*//**@defgroup CSL_UART_MODE_ENUM  Mode*  @ingroup CSL_UART_ENUM@{*//** @brief  Enums for the Mode of the UART module** This is used for control/query commands to set/query the mode of the UART module.*/typedef enum {    /** UART 16x mode */    CSL_UART_MODE_16X         =   CSL_UART_MDR1_MODE_SELECT_16X,    /** UART 16x Autobaud mode */    CSL_UART_MODE_16XAUTOBAUD =   CSL_UART_MDR1_MODE_SELECT_16XAUTOBAUD,    /** UART 13x mode */    CSL_UART_MODE_13X         =   CSL_UART_MDR1_MODE_SELECT_13X,    /** Default State */    CSL_UART_MODE_DISABLE     =   CSL_UART_MDR1_MODE_SELECT_DISABLE}CSL_UartMode;/**@}*//**@defgroup CSL_UART_DMAMODE_ENUM  DMA Mode of the UART module*  @ingroup CSL_UART_ENUM@{*//** @brief  Enums for the DMA Mode of the UART module** This is used for control/query commands to set/query the DMA mode of the UART module.*/typedef enum {    /** No DMA mode */    CSL_UART_DMAMODE_NONE =  CSL_UART_SCR_DMA_MODE_2_00,    /** DMA mode 1 */    CSL_UART_DMAMODE_RXTX =  CSL_UART_SCR_DMA_MODE_2_01,    /** DMA mode 2 */    CSL_UART_DMAMODE_RX   =  CSL_UART_SCR_DMA_MODE_2_02,    /** DMA mode 3 */    CSL_UART_DMAMODE_TX   =  CSL_UART_SCR_DMA_MODE_2_03}CSL_UartDmaMode;/**@}*//**@defgroup CSL_UART_CHARLEN_ENUM  UART character length@ingroup CSL_UART_ENUM@{*//** @brief  Enums for the UART character length** This is used for control/query commands to set/query the UART character length.*/typedef enum {    /** Character length of 5 */    CSL_UART_CHARLEN_5    =  CSL_UART_LCR_CHAR_LENGTH_05,    /** Character length of 6 */    CSL_UART_CHARLEN_6    =  CSL_UART_LCR_CHAR_LENGTH_06,    /** Character length of 7 */    CSL_UART_CHARLEN_7    =  CSL_UART_LCR_CHAR_LENGTH_07,    /** Character length of 8 */    CSL_UART_CHARLEN_8    =  CSL_UART_LCR_CHAR_LENGTH_08}CSL_UartCharLen;/**@}*//**@defgroup CSL_UART_FLOWCTRL_ENUM  Flow Control Type@ingroup CSL_UART_ENUM @{*//** @brief  Enums for the Flow Control** This is used for control/query commands to set/query the UART Flow control parameters.*/typedef enum {	/** Neither HW,nor S/W flow Control */    CSL_UART_FLOWCONTROL_NONE = 0,    /** Software Flow Control */    CSL_UART_FLOWCONTROL_SW   = 1,    /** Hardware Flow Control */    CSL_UART_FLOWCONTROL_HW   = 2}CSL_UartFlowControl;/**@}*//**@defgroup CSL_UART_SWFLOWCTRL_ENUM  Software Flow Control@ingroup CSL_UART_ENUM@{*//** @brief  Enums for the Software Flow Control** This is used for control/query commands to set/query the UART SW Flow control parameters.*/typedef enum {    /** No Flow Control                           */    CSL_UART_SWFLOW_NONE = 0,    /** Receiver/Transmitter compares XON1,XOFF1                      */    CSL_UART_SWFLOW_XONXOFF_1 = 2,    /** Receiver/Transmitter compares XON2,XOFF2                      */    CSL_UART_SWFLOW_XONXOFF_2 = 1,    /** Receiver/Transmitter compares XON1,XON2,XOFF1,XOFF2           */    CSL_UART_SWFLOW_XONXOFF_12 = 3}CSL_UartSwFlow;/**@}*//**@defgroup CSL_UART_NUMSTOP_ENUM  Number of Stop bits@ingroup CSL_UART_ENUM@{*//** @brief  Enums for the Number of Stop bits

⌨️ 快捷键说明

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