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

📄 csl_i2c.h

📁 Configuring External Interrupts on TMS320C672x Devices
💻 H
📖 第 1 页 / 共 3 页
字号:
    */
    CSL_I2C_QUERY_AD0           = 7,
    /**
    * @brief   Get the Receive overflow status information 
    * @param   (Uint16*)  
    */
    CSL_I2C_QUERY_RSFULL        = 8,
    /**
    * @brief   Get the Transmit underflow status information
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_XSMT          = 9,
    /**
    * @brief   Get the Address as Slave bit information
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_AAS           = 10,
    /**
    * @brief   Get the Arbitration Lost status information
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_AL            = 11,
    /**
    * @brief   Get the Reset Done status bit information
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_RDONE         = 12,
    /**
    * @brief   Get no of bits of next byte to be received or transmitted
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_BITCOUNT      = 13,
    /**
    * @brief   Get the interrupt code for the interrupt that occured
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_INTCODE       = 14,
    /**
    * @brief   Get the revision level of the I2C
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_REV           = 15,
    /**
    * @brief   Get the class of the peripheral
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_CLASS         = 16,
    /**
    * @brief   Get the type of the peripheral
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_TYPE          = 17,
    /**
    * @brief   Get the slave direction
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_SDIR          = 18,
    /**
    * @brief   Get the acknowledgement status
    * @param   (Uint16*)
    */
    CSL_I2C_QUERY_NACKSNT       = 19


} CSL_I2cHwStatusQuery;


/** @brief Enumeration for queries passed to @a CSL_i2cHwControl()
 *
 * This is used to select the commands to control the operations
 * existing setup of I2C. The arguments to be passed with each
 * enumeration if any are specified next to the enumeration.
 */
typedef enum {
    /**
    * @brief   Enable the I2C
    * @param   (None)
    */
    CSL_I2C_CMD_ENABLE              = 1,
    /**
    * @brief   Configure the I2C pins as GPIO
    * @param   (None)
    */
    CSL_I2C_CMD_CONFIG_AS_GIO       = 2,
    /**
    * @brief   Reset command to the I2C
    * @param   (None)
    */
    CSL_I2C_CMD_RESET               = 3,

    /**
    * @brief   Bring the I2C out of reset
    * @param   (None)
    */
    CSL_I2C_CMD_OUTOFRESET          = 4,

    /**
    * @brief   Clear the status bits. The argument next to the command
    *          specifies the status bit to be cleared. The status bit
    *          can be :
    *            CSL_I2C_CLEAR_AL,
    *            CSL_I2C_CLEAR_NACK,
    *            CSL_I2C_CLEAR_ARDY,
    *            CSL_I2C_CLEAR_RRDY,
    *            CSL_I2C_CLEAR_XRDY,
    *            CSL_I2C_CLEAR_GC
    * @param   (None)
    */
    CSL_I2C_CMD_CLEAR_STATUS        = 5,

    /**
    * @brief   Set the address of the Slave device
    * @param   (Uint16 *)
    */
    CSL_I2C_CMD_SET_SLAVE_ADDR      = 6,

    /**
    * @brief   Set the Data Count
    * @param   (Uint16 *)
    */
    CSL_I2C_CMD_SET_DATA_COUNT       = 7,

    /**
    * @brief   Set the start condition
    * @param   (None)
    */
    CSL_I2C_CMD_START                = 8,

    /**
    * @brief   Set the stop condition
    * @param   (None)
    */
    CSL_I2C_CMD_STOP                = 9,

    /**
    * @brief   Set the transmission mode
    * @param   (None)
    */
    CSL_I2C_CMD_DIR_TRANSMIT        = 10,

    /**
    * @brief   Set the receiver mode
    * @param   (None)
    */
    CSL_I2C_CMD_DIR_RECEIVE         = 11,

    /**
    * @brief   Set the Repeat Mode
    * @param   (None)
    */
    CSL_I2C_CMD_RM_ENABLE           = 12,

    /**
    * @brief   Disable the Repeat Mode
    * @param   (None)
    */
    CSL_I2C_CMD_RM_DISABLE          = 13,

    /**
    * @brief   Set the loop back mode
    * @param   (None)
    */
    CSL_I2C_CMD_DLB_ENABLE          = 14,

    /**
    * @brief   Set the loop back mode
    * @param   (None)
    */
    CSL_I2C_CMD_DLB_DISABLE         = 15,

    /**
    * @brief   Unmask all interrupts
    * @param   (None)
    */ 
    CSL_I2C_CMD_INTR_ENABLE         = 16,

    /**
    * @brief   Mask all interrupts
    * @param   (None)
    */ 

    CSL_I2C_CMD_INTR_DISABLE        = 17,

    /**
    * @brief   Set the own address 
    * @param   (Uint16 *)
    */
    CSL_I2C_CMD_SET_OWN_ADDR        = 18,

    /**
    * @brief   Set the Clock
    * @param   (CSL_I2cClkSetup *)
    */
    CSL_I2C_CMD_SET_CLOCK           = 19,

    /**
    * @brief   Set the mode(Master/Slave)
    * @param   (Uint16 *)
    */
    CSL_I2C_CMD_SET_MODE			= 20  


} CSL_I2cHwControlCmd;



/**************************************************************************\
* I2C global function declarations
\**************************************************************************/

/** ============================================================================
 *   @n@b CSL_i2cInit
 *
 *   @b Description
 *   @n This is the initialization function for the I2C. This function is
 *      idempotent in that calling it many times is same as calling it once.
 *      This function doesn't affect the H/W.      
 *
 *   @b Arguments
     @verbatim
            pContext   Context information for the instance. Should be NULL
     @endverbatim
 *
 *   <b> Return Value </b>  CSL_Status
 *   @li                    CSL_SOK - Always returns
 *
 *   <b> Pre Condition </b>
 *   @n  CSL_sysInit() must be called. 
 *
 *   <b> Post Condition </b>
 *   @n  None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim
      ...      
         CSL_i2cInit();
      
 *   @endverbatim
 *  ===========================================================================
 */
extern CSL_Status  CSL_i2cInit(
    CSL_I2cContext  *pContext
);


/** ===========================================================================
 *   @n@b CSL_i2cOpen
 *
 *   @b Description
 *   @n This function populates the peripheral data object for the instance
 *      and returns a handle to the instance.
 *      The open call sets up the data structures for the particular instance
 *      of I2C device. The device can be re-opened anytime after it has been
 *      normally closed if so required.
 *      The handle returned by this call is input as an essential argument for 
 *      rest of the APIs described for this module. 
 *        
 *   @b Arguments
     @verbatim

        pI2cObj     Pointer to the I2C instance object
        i2cNum      Instance of the I2C to be opened. 
        pI2cParam   Pointer to module specific parameters
        pStatus     Pointer for returning status of the function call
        
 *   @endverbatim
 *
 *   <b> Return Value </b> CSL_I2cHandle
 *
 *       - Valid I2C instance handle will be returned if status value is
 *        equal to CSL_SOK else CSL_I2C_BADHANDLE
 *
 *   <b> Pre Condition </b>
 *   @n  CSL_i2cInit() has to be called
 *
 *   <b> Post Condition </b>
 *   @n  1. The status is returned in the status variable. If status returned is
 *   @li            CSL_OK             - Open call is successful
 *   @li            CSL_ESYS_INVPARAMS - If invalid parameter passed
 *   @li            CSL_ESYS_FAIL      - If invalid instance number
 *       2. I2C object structure is populated
 *
 *   @b Modifies
 *   @n@li      The status variable
 *     @li      I2C object structure 
 *
 *   @b Example
 *   @verbatim
 *        CSL_status        status;
 *        CSL_I2cObj        i2cObj;
 *        CSL_I2cHandle     hI2c;
 *
 *        hI2c = CSL_I2cOpen (&i2cObj,
 *                            CSL_I2C_0,
 *                            NULL,
 *                            &status
 *                            );
     @endverbatim
 * ===========================================================================
 */ 
extern CSL_I2cHandle CSL_i2cOpen (    
    CSL_I2cObj              *hI2cObj,    
    CSL_InstNum              i2cNum,    
    CSL_I2cParam            *pI2cParam,    
    CSL_Status              *status
);


/** ============================================================================
 *   @n@b CSL_i2cClose
 *
 *   @b Description
 *   @n This function closes the specified instance of I2C.
 *
 *   @b Arguments
     @verbatim
            hI2c  Handle to the I2C instance
     @endverbatim  
 *     
 *   <b> Return Value </b> CSL_Status 
 *   @li               CSL_SOK  - I2C close successful 
 *   @li               CSL_ESYS_BADHANDLE - Invalid handle
 *     
 *      
 *   <b> Pre Condition </b>
 *   @n  i2c must have opened properly
 *
 *   <b> Post Condition </b>
 *   @n  CSL for the I2C instance is closed
 *
 *   @b Modifies
 *   @n CSL_I2cObj structure values for the instance
 * 
 *   @b Example
     @verbatim
     
        CSL_i2cClose (hI2c);
       
     @endverbatim  
 * =============================================================================
 */
extern CSL_Status  CSL_i2cClose(    
    CSL_I2cHandle                         hI2c
);


/** =======================================================================
 *   @n@b CSL_i2cHwSetup
 *
 *   @b Description
 *   @n This function initializes the device registers with the appropriate
 *      values provided through the HwSetup Data structure. After the 
 *      Setup is completed, the device is ready for  operation.      
 *      For information passed through the HwSetup Data structure refer
 *   @a CSL_i2cHwSetup.
 *
 *   @b Arguments
     @verbatim
     
            hI2c   handle to the I2c instance
            setup  Pointer to setup structure that programs I2C
            
     @endverbatim
 *
 *   <b> Return Value </b>  CSL_Status
 *   @li                    CSL_SOK - Successful completion of hardware     
 *                                    setup
 *   @li                    CSL_ESYS_ INVPARAMS - Hardware structure is not properly 
 *                                    initialized
 *   @li                    CSL_ESYS_ BADHANDLE - Invalid CSL handle
 *
 *
 *   <b> Pre Condition </b>
 *   @n  Both CSL_i2cInit() and a CSL_i2cOpen() must be called
 *
 *   <b> Post Condition </b>
 *   @n  I2C registers are configured 
 *
 *   @b  Modifies
 *   @n  I2C registers
 *
 *   @b Example

⌨️ 快捷键说明

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