| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641 |
- /**
- * \file dcan.h
- *
- * \brief DCAN APIs and macros.
- *
- * This file contains the driver API prototypes and macro definitions for
- * DCAN peripheral.
- */
- /*
- * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
- */
- /*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 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.
- *
- * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "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 THE COPYRIGHT
- * OWNER OR CONTRIBUTORS 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.
- *
- */
- #ifndef __DCAN_H__
- #define __DCAN_H__
- #include "hw_dcan.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /******************************************************************************/
- /*
- ** Values that can be passed to DCAN APIs
- */
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANIntLineEnable' and 'DCANIntLineDisable'APIs
- ** as 'enableLine' and 'disableLine' respectively.
- ** 'enableLine','disableLine' can take both the values.
- ** For e.g. (DCAN_INT_LINE0 | DCAN_INT_LINE1) can be passed.
- */
- /* Enable/Disable Interrupt line 0 of DCAN peripheral */
- #define DCAN_INT_LINE0 (DCAN_CTL_IE0)
- /* Enable/Disable Interrupt line 1 of DCAN peripheral */
- #define DCAN_INT_LINE1 (DCAN_CTL_IE1)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANIntEnable' and 'DCANIntDisable' APIs as
- ** 'intFlags'.
- ** 'intFlags' can take more than one value.
- ** For e.g. (DCAN_STATUS_CHANGE_INT | DCAN_ERROR_INT) can be passed.
- */
- /* Enable/Disable the Status change interrupt of DCAN peripheral */
- #define DCAN_STATUS_CHANGE_INT (0x00000004u)
- /* Enable/Disable the error interrupt of DCAN peripheral */
- #define DCAN_ERROR_INT (0x00000008u)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANAutoReTransmitControl' API as 'autoReTxn'.
- */
- /* Enable Auto Re-transmission of DCAN peripheral */
- #define DCAN_AUTO_RETXN_ENABLE (0x00000000u)
- /* Disable Auto Re-transmission of DCAN peripheral */
- #define DCAN_AUTO_RETXN_DISABLE (0x00000020u)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANConfigRegWriteAccessControl' API as
- ** 'regConfig'.
- */
- /* CPU has write access to the configuration registers */
- #define DCAN_CONF_REG_WR_ACCESS_ENABLE (DCAN_CTL_CCE)
- /* CPU has no write access to the configuration registers */
- #define DCAN_CONF_REG_WR_ACCESS_DISABLE (DCAN_CTL_CCE_NOACCESS)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANTestModeControl' API as 'testMode'.
- */
- /* Enable Test mode of operation */
- #define DCAN_TEST_MODE_ENABLE (DCAN_CTL_TEST)
- /* Disable Test mode of operation */
- #define DCAN_TEST_MODE_DISABLE (DCAN_CTL_TEST_NORMALMODE)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANAutoBusOnControl' API as 'busControl'.
- */
- /* Enable the Auto-bus-on feature */
- #define DCAN_AUTO_BUS_ON_ENABLE (DCAN_CTL_ABO)
- /* Disable the Auto-bus-on feature */
- #define DCAN_AUTO_BUS_ON_DISABLE (DCAN_CTL_ABO_DISABLED)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANParityControl' API as 'paritySet'.
- */
- /* Enable Parity function */
- #define DCAN_PARITY_FUNC_ENABLE (DCAN_CTL_PMD_ENABLED << \
- DCAN_CTL_PMD_SHIFT)
- /* Disable Parity function */
- #define DCAN_PARITY_FUNC_DISABLE (DCAN_CTL_PMD_DISABLED << \
- DCAN_CTL_PMD_SHIFT)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANDmaRequestLineEnable' and
- ** 'DCANDmaRequestLineDisable' APIs as 'ifRegFlags'.
- ** 'ifRegFlags' can take more than one value.
- ** For e.g. (DCAN_DMA_REQUEST_LINE_ENABLE_IF1 | DCAN_DMA_REQUEST_LINE_ENABLE_IF2)
- ** can be passed as 'ifRegFlags'
- */
- /* Enable/Disable DMA request line for IF1 */
- #define DCAN_DMA_REQUEST_LINE_IF1 (DCAN_CTL_DE1)
- /* Enable/Disable DMA request line for IF2 */
- #define DCAN_DMA_REQUEST_LINE_IF2 (DCAN_CTL_DE2)
- /* Enable/Disable DMA request line for IF3 */
- #define DCAN_DMA_REQUEST_LINE_IF3 (DCAN_CTL_DE3)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status of DCAN_ES register got from
- ** 'DCANErrAndStatusRegInfoGet' API.
- */
- /* No error is detected */
- #define DCAN_LST_ERRCODE_NO_ERR (DCAN_ES_LEC_NOERROR)
- /* Stuff error is detected */
- #define DCAN_LST_ERRCODE_STUFF_ERR (DCAN_ES_LEC_STUFFERROR)
- /* Form error is detected */
- #define DCAN_LST_ERRCODE_FORM_ERR (DCAN_ES_LEC_FORMERROR)
- /* Ack error is detected */
- #define DCAN_LST_ERRCODE_ACK_ERR (DCAN_ES_LEC_ACKERROR)
- /* Bit1 error is detected */
- #define DCAN_LST_ERRCODE_BIT1_ERR (DCAN_ES_LEC_BIT1ERROR)
- /* Bit0 error is detected */
- #define DCAN_LST_ERRCODE_BIT0_ERR (DCAN_ES_LEC_BIT0ERROR)
- /* CRC error detected */
- #define DCAN_LST_ERRCODE_CRC_ERR (DCAN_ES_LEC_CRCERROR)
- /* No event is generated on the CAN bus since last read of DCAN_ES */
- #define DCAN_NO_EVENT_ON_CAN_BUS (DCAN_ES_LEC_NOEVENT)
- /* DCAN transmitted message successfully */
- #define DCAN_TXD_MSG_SUCCESSFULLY (DCAN_ES_TXOK)
- /* DCAN received message successfully */
- #define DCAN_RXD_MSG_SUCCESSFULLY (DCAN_ES_RXOK)
- /* DCAN is in error passive state */
- #define DCAN_CORE_IN_ERR_PASSIVE (DCAN_ES_EPASS)
- /* Atleast one of the counters have reached the error warning limit */
- #define DCAN_ERR_WARN_STATE_RCHD (DCAN_ES_EWARN)
- /* DCAN is in Bus off state */
- #define DCAN_MOD_IN_BUS_OFF_STATE (DCAN_ES_BOFF)
- /* Parity error detected */
- #define DCAN_PARITY_ERR_DETECTED (DCAN_ES_PER)
- /* DCAN initiated system wakeup */
- #define DCAN_INITIATED_SYSTEM_WKUP (DCAN_ES_WAKEUPPND)
- /* DCAN is in local power down mode */
- #define DCAN_IN_LOCAL_PWR_DWN_MODE (DCAN_ES_PDA)
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANErrCntrRegStatusGet' API as 'cntrFlags'.
- ** 'cntrFlags' can take more than one value.
- ** For e.g. (DCAN_TX_ERR_CNTR | DCAN_RX_ERR_CNTR | DCAN_RX_ERR_PASSIVE) can be
- ** sent as 'cntrFlags'.
- */
- /* Macro used to return the status of TEC[7:0] field of DCAN_ERRC register */
- #define DCAN_TX_ERR_CNTR (DCAN_ERRC_TEC)
- /* Macro used to return the status of REC[6:0] field of DCAN_ERRC register*/
- #define DCAN_RX_ERR_CNTR (DCAN_ERRC_REC)
- /* Macro used to return the status of RP field of DCAN_ERRC register */
- #define DCAN_RX_ERR_PASSIVE (DCAN_ERRC_RP)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANIntRegStatusGet' API as 'intLnFlag'.
- ** 'intLnFlag' can take more than one value.
- ** For e.g. (DCAN_INT_LINE0_STAT | DCAN_INT_LINE1_STAT) can be passed as
- ** 'intLnFlag'.
- */
- /* Macro used to return the status of INT0ID[15:0] field of DCAN_INT register */
- #define DCAN_INT_LINE0_STAT (DCAN_INT_INT0ID)
- /* Macro used to return the status of INT1ID[23:16] field of DCAN_INT register */
- #define DCAN_INT_LINE1_STAT (DCAN_INT_INT1ID)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANTestModesEnable' and 'DCANTestModesDisable'
- ** API as 'tstMode'.
- */
- /* Macro that can be used to enable/disable silent mode */
- #define DCAN_TST_SILENT_MD (DCAN_TEST_SILENT)
- /* Macro that can be used to enable/disable loopback mode */
- #define DCAN_TST_LPBCK_MD (DCAN_TEST_LBACK)
- /* Macro that can be used to enable/disable external loopback mode */
- #define DCAN_TST_EXTLPBCK_MD (DCAN_TEST_EXL)
- /* Macro that can be used to enable/disable loopback with silent mode */
- #define DCAN_TST_LPBCK_SILENT_MD (DCAN_TEST_LBACK | \
- DCAN_TEST_SILENT)
- /* Macro that can be used to enable/disable direct access to RAM */
- #define DCAN_TST_RAM_DIRECT_ACCESS (DCAN_TEST_RDA)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANTxPinControl' API as 'pinCtl'.
- */
- /* CAN_TX pin is controlled by CAN core */
- #define DCAN_TST_TX_NRML_OP (DCAN_TEST_TX_NORMAL)
- /* Sample point can be monitored at CAN_TX pin */
- #define DCAN_TST_TX_SAMPLE_PT_MNTR (DCAN_TEST_TX_SAMPLEPOINT << \
- DCAN_TEST_TX_SHIFT)
- /* CAN_TX pin drives a dominant value */
- #define DCAN_TST_TX_DRIV_DOM_VAL (DCAN_TEST_TX_DOMINANT << \
- DCAN_TEST_TX_SHIFT)
- /* CAN_TX pin drives a recessive value */
- #define DCAN_TST_TX_DRIV_RSV_VAL (DCAN_TEST_TX_RECESSIVE << \
- DCAN_TEST_TX_SHIFT)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status received from 'DCANRxPinStatusGet'
- ** API.
- */
- /* CAN bus is dominant */
- #define DCAN_TST_RX_IS_DOM (DCAN_TEST_RX_DOMINANT)
- /* CAN bus is recessive */
- #define DCAN_TST_RX_IS_RSV (DCAN_TEST_RX)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status received from
- ** 'DCANParityErrCdRegStatusGet' API.
- */
- /* Macro used to return the message number status from DCAN_PERR register */
- #define DCAN_PARITY_ERR_MSG_NUM (DCAN_PERR_MESSAGE_NUMBER)
- /* Macro used to return the word number status from DCAN_PERR register */
- #define DCAN_PARITY_ERR_WRD_NUM (DCAN_PERR_WORD_NUMBER)
- /******************************************************************************/
- /*
- ** Value that can be used while checking the status obtained from
- ** 'DCANTxRqstXStatusGet' API.
- ** 'n' can take these values
- ** 1 <= n <= 8.
- */
- /* Value that can be used to check the status of DCAN_TXRQST_X register */
- #define DCAN_TXRQST_X_REG(n) (DCAN_TXRQ_X_TXRQSTREG1 << \
- (((n) - 1) * 2))
- /******************************************************************************/
- /*
- ** Value that can be used while checking the status obtained from
- ** 'DCANNewDataXStatusGet' API.
- ** 'n' can take these values
- ** 1 <= n <= 8.
- */
- /* Value that can be used to check the status of DCAN_NWDAT_X register */
- #define DCAN_NEWDAT_X_REG(n) (DCAN_NWDAT_X_NEWDATREG1 << \
- (((n) - 1) * 2))
- /******************************************************************************/
- /*
- ** Value that can be used while checking the status obtained from
- ** 'DCANMsgValidXStatusGet' API.
- ** 'n' can take these values
- ** 1 <= n <= 8.
- */
- /* Value that can be used to check the status of DCAN_MSGVAL_X register */
- #define DCAN_MSGVAL_X_REG(n) (DCAN_MSGVAL_X_MSGVALREG1 << \
- (((n) - 1) * 2))
- /******************************************************************************/
- /*
- ** Value that can be used while checking the status obtained from
- ** 'DCANIntPendingXStatusGet' API.
- ** 'n' can take these values
- ** 1 <= n <= 8.
- */
- /* Value that can be used to check the status of DCAN_INTPND_X register */
- #define DCAN_INTPND_X_REG(n) (DCAN_INTPND_X_INTPNDREG1 << \
- (((n) - 1) * 2))
- /******************************************************************************/
- /*
- ** Values can be used to check the status obtained from 'DCANIFBusyStatusGet'
- ** API.
- */
- /* Transfer between IF1/IF2 register set and message RAM is in progress */
- #define DCAN_IF_BUSY (DCAN_IFCMD_BUSY)
- /* No transfer between IF1/IF2 register set and message RAM */
- #define DCAN_IF_NOT_BUSY (DCAN_IFCMD_BUSY_NOTRANSFER)
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANMsgIdSet' API as 'idLength'.
- */
- /* Identifier of 11 bit size is used */
- #define DCAN_11_BIT_ID (DCAN_IFARB_XTD_11_BIT)
- /* Identifier of 29 bit size is used */
- #define DCAN_29_BIT_ID (DCAN_IFARB_XTD)
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANIntMuxConfig' API as 'intLine'
- */
- /* DCANINT0 line is active if corresponding IntPnd flag is one */
- #define DCAN_INT0_ACTIVE (0x00000000u)
- /* DCANINT1 line is active if corresponding IntPnd flag is one */
- #define DCAN_INT1_ACTIVE (0x00000001u)
-
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANMsgObjValidate', 'DCANMsgObjInvalidate,
- ** 'DCANCommandRegSet', 'DCANIFBusyStatusGet, 'DCANMsgIdSet',
- ** 'DCANMsgDirectionSet', 'DCANDataWrite', 'DCANDataRead',
- ** 'DCANDataLengthCodeSet', 'DCANMsgObjIntEnable', 'DCANMsgObjIntDisable',
- ** 'DCANFIFOEndOfBlockControl', 'DCANMsgObjectDirectionConfig',
- ** 'DCANMsgObjectMskConfig', APIs as ''regNum'.
- */
- /* Interface register 1 is used */
- #define DCAN_IF1_REG (1u)
- /* Interface register 2 is used */
- #define DCAN_IF2_REG (2u)
- /* Interface register 3 is used */
- #define DCAN_IF3_REG (3u)
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANMsgDirectionSet' API as 'msgDir'.
- */
- /* Message object set to transmit a message*/
- #define DCAN_TX_DIR (DCAN_IFARB_DIR)
- /* Message object set to receive a message*/
- #define DCAN_RX_DIR (DCAN_IFARB_DIR_RECEIVE)
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANMsgObjIntEnable' and 'DCANMsgObjIntDisable'
- ** APIs as 'intFlags'.
- */
- /* Enable/disable transmit interrupt */
- #define DCAN_TRANSMIT_INT (DCAN_IFMCTL_TXIE)
- /* Enable/disable receive interrupt */
- #define DCAN_RECEIVE_INT (DCAN_IFMCTL_RXIE)
- /******************************************************************************/
- /*
- ** Values that can be sent to 'DCANFIFOEndOfBlockControl' API as 'eob'.
- */
- /* Enable end of block */
- #define DCAN_END_OF_BLOCK_ENABLE (DCAN_IFMCTL_EOB)
- /* Disable end of block */
- #define DCAN_END_OF_BLOCK_DISABLE (0x00000000u)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANCommandRegSet' API as 'cmdFlags'.
- ** 'cmdFlags' can be passed by combining more than one macro.
- ** For e.g. (DCAN_DMA_ACTIVE | DCAN_DAT_A_ACCESS | DCAN_DAT_B_ACCESS)
- */
- /* Enable DMA feature */
- #define DCAN_DMA_ACTIVE (DCAN_IFCMD_DMAACTIVE)
- /* Access data from IF DataA register */
- #define DCAN_DAT_A_ACCESS (DCAN_IFCMD_DATAA)
- /* Access data from IF DataB register */
- #define DCAN_DAT_B_ACCESS (DCAN_IFCMD_DATAB)
- /* Access the TxRqst bit */
- #define DCAN_TXRQST_ACCESS (DCAN_IFCMD_TXRQST_NEWDAT)
- /* Clear the IntPnd bit */
- #define DCAN_CLR_INTPND (DCAN_IFCMD_CLRINTPND)
- /* Access control bits */
- #define DCAN_ACCESS_CTL_BITS (DCAN_IFCMD_CONTROL)
- /* Access Arbitration bits */
- #define DCAN_ACCESS_ARB_BITS (DCAN_IFCMD_ARB)
- /* Access the mask bits */
- #define DCAN_ACCESS_MSK_BITS (DCAN_IFCMD_MASK)
- /* Transfer direction is from IF registers to message RAM */
- #define DCAN_MSG_WRITE (DCAN_IFCMD_WR_RD)
- /* Transfer direction is from message RAM to IF registers */
- #define DCAN_MSG_READ (0x00000000u)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCAN_IDENTIFIER_MSK' macro as idType.
- */
- /* 11 bit id is used */
- #define DCAN_ID_MSK_11_BIT (18u)
- /* 29 bit id is used */
- #define DCAN_ID_MSK_29_BIT (0u)
- /******************************************************************************/
- /*
- ** Value that can be passed to 'DCANMsgObjectMskConfig' API as 'idMsk'.
- ** 'mask' can take values between 0 <= idMsk <= 0x1FFFFFFF \n
- ** 'idType' can take the following values \n
- ** DCAN_ID_MSK_11_BIT - 11 bit identifier is used \n
- ** DCAN_ID_MSK_29_BIT - 29 bit identifier is used \n
- */
- #define DCAN_IDENTIFIER_MSK(mask, idType) (mask << idType)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANMsgObjectMskConfig' API as 'msgDir'.
- */
- /* Message direction bit is used for acceptance filtering */
- #define DCAN_MSK_MSGDIR_ENABLE (DCAN_IFMSK_MDIR)
- /* Message direction bit has no effect on acceptance filtering */
- #define DCAN_MSK_MSGDIR_DISABLE (DCAN_IFMSK_MDIR_NOTUSED)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANMsgObjectMskConfig' API as 'extId'.
- */
- /* The IDE bit is used for acceptance filtering */
- #define DCAN_MSK_EXT_ID_ENABLE (DCAN_IFMSK_MXTD)
- /* The IDE bit is not used for acceptance filtering */
- #define DCAN_MSK_EXT_ID_DISABLE (DCAN_IFMSK_MXTD_NOTUSED)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANIF3ObservationFlagSet' API as 'obsFlags'.
- ** 'obsFlags' can take more than 1 value.
- ** For e.g. (DCAN_MASK_DATA | DCAN_ARB_DATA)
- */
- /* Mask data read observation */
- #define DCAN_MASK_DATA (DCAN_IF3OBS_MASK)
- /* Arbitration data read observation */
- #define DCAN_ARB_DATA (DCAN_IF3OBS_ARB)
- /* Ctrl read observation */
- #define DCAN_CTRL_DATA (DCAN_IF3OBS_CTRL)
- /* Data A read observation */
- #define DCAN_DAT_A_DATA (DCAN_IF3OBS_DATAA)
- /* Data B read observation */
- #define DCAN_DAT_B_DATA (DCAN_IF3OBS_DATAB)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status obtained from
- ** 'DCANIF3ObservationFlagStatGet' API.
- */
- /* IF3 status of Mask data read access */
- #define DCAN_IF3_MASK_STATUS (DCAN_IF3OBS_IF3SM)
- /* IF3 status of Arbitration data read access */
- #define DCAN_IF3_ARB_STATUS (DCAN_IF3OBS_IF3SA)
- /* IF3 status of Control bits read access */
- #define DCAN_IF3_CTRL_STATUS (DCAN_IF3OBS_IF3SC)
- /* IF3 status of Data A read access */
- #define DCAN_IF3_DAT_A_STATUS (DCAN_IF3OBS_IF3SDA)
- /* IF3 status of Data B read access */
- #define DCAN_IF3_DAT_B_STATUS (DCAN_IF3OBS_IF3SDB)
- /* IF3 Update data status */
- #define DCAN_IF3_UPDATE_STATUS (DCAN_IF3OBS_IF3UPD)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status obtained from
- ** 'DCANIFMaskStatusGet' API.
- */
- /* Read Identifier mask */
- #define DCAN_ID_MSK_READ (DCAN_IF3MSK_MSK)
- /* Read mask message direction */
- #define DCAN_MSK_MSG_DIR_READ (DCAN_IF3MSK_MDIR)
- /* Read mask extended identifier */
- #define DCAN_MSK_EXT_ID_READ (DCAN_IF3MSK_MXTD)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status obtained from 'DCANIFArbStatusGet'
- ** API.
- */
- /* Read message identifier */
- #define DCAN_MSG_ID_READ (DCAN_IF3ARB_MSK)
- /* Read message direction */
- #define DCAN_MSG_DIR_READ (DCAN_IF3ARB_DIR)
- /* Read extended identifier */
- #define DCAN_EXT_ID_READ (DCAN_IF3ARB_XTD)
- /* Read message valid status */
- #define DCAN_MSGVAL_READ (DCAN_IF3ARB_MSGVAL)
- /******************************************************************************/
- /*
- ** Values that can be used to check the status obtained from
- ** 'DCANIFMsgCtlStatusGet' API.
- */
- /* Read data length code */
- #define DCAN_DAT_LEN_CODE_READ (DCAN_IF3MCTL_DATALENGTHCODE)
- /* Read end of block bit */
- #define DCAN_END_OF_BLOCK_READ (DCAN_IF3MCTL_EOB)
- /* Read transmit request bit */
- #define DCAN_TXRQST_READ (DCAN_IF3MCTL_TXRQST)
- /* Read remote enable bit */
- #define DCAN_RMT_ENABLE_READ (DCAN_IF3MCTL_RMTEN)
- /* Read Rx interrupt enable bit */
- #define DCAN_RX_INT_ENABLE_READ (DCAN_IF3MCTL_RXIE)
- /* Read Tx interrupt enable bit */
- #define DCAN_TX_INT_ENABLE_READ (DCAN_IF3MCTL_TXIE)
- /* Read use acceptance mask bit */
- #define DCAN_UMASK_READ (DCAN_IF3MCTL_UMASK)
- /* Read interrupt pending status */
- #define DCAN_INTPND_READ (DCAN_IF3MCTL_INTPND)
- /* Read message lost status */
- #define DCAN_MSG_LOST_READ (DCAN_IF3MCTL_MSGLST)
- /* Read new data status */
- #define DCAN_NEWDAT_READ (DCAN_IF3MCTL_NEWDAT)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANNewDataControl' API as 'newDat'.
- */
- /* Set NewDat */
- #define DCAN_NEW_DAT_SET (DCAN_IFMCTL_NEWDAT)
- /* Clear NewDat */
- #define DCAN_NEW_DAT_CLR (DCAN_IFMCTL_NEWDAT_NONEWDATA)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANUseAcceptanceMaskControl' API as 'uMask'
- */
- /* Use acceptance mask */
- #define DCAN_MASK_USED (DCAN_IFMCTL_UMASK)
- /* Acceptance mask not used */
- #define DCAN_MASK_IGNORED (DCAN_IFMCTL_UMASK_IGNORED)
- /******************************************************************************/
- /*
- ** Values that can be passed to 'DCANTransmitRequestControl' API as 'txRqst'
- */
- /* Request for transmission */
- #define DCAN_TRANSMIT_REQUESTED (DCAN_IFMCTL_TXRQST)
- /* Transmission not requested */
- #define DCAN_TRANSMIT_NOT_REQUESTED (DCAN_IFMCTL_TXRQST_NOREQUESTED)
- /******************************************************************************/
- /* DCAN API PROTOTYPES */
- /******************************************************************************/
- extern void DCANInitModeSet(unsigned int baseAdd);
- extern void DCANNormalModeSet(unsigned int baseAdd);
- extern void DCANBitTimingConfig(unsigned int baseAdd,
- unsigned int btrValue);
- extern void DCANReset(unsigned int baseAdd);
- extern void DCANIntEnable(unsigned int baseAdd, unsigned int intFlags);
- extern void DCANIntDisable(unsigned int baseAdd, unsigned int intFlags);
- extern void DCANAutoReTransmitControl(unsigned int baseAdd, unsigned int autoReTxn);
- extern void DCANConfigRegWriteAccessControl(unsigned int baseAdd,
- unsigned int regConfig);
- extern void DCANTestModeControl(unsigned int baseAdd, unsigned int testMode);
- extern void DCANAutoBusOnControl(unsigned int baseAdd, unsigned int busControl);
- extern void DCANParityControl(unsigned int baseAdd, unsigned int paritySet);
- extern void DCANIntLineEnable(unsigned int baseAdd, unsigned int enableLine);
- extern void DCANIntLineDisable(unsigned int baseAdd, unsigned int disableLine);
- extern void DCANDmaRequestLineEnable(unsigned int baseAdd, unsigned int ifRegFlags);
- extern void DCANDmaRequestLineDisable(unsigned int baseAdd, unsigned int ifRegFlags);
- extern unsigned int DCANIntRegStatusGet(unsigned int baseAdd, unsigned int intLnFlag);
- extern unsigned int DCANErrAndStatusRegInfoGet(unsigned int baseAdd);
- extern unsigned int DCANErrCntrRegStatusGet(unsigned int baseAdd,
- unsigned int cntrFlags);
- extern void DCANTestModesEnable(unsigned int baseAdd, unsigned int tstMode);
- extern void DCANTestModesDisable(unsigned int baseAdd, unsigned int tstMode);
- extern void DCANTxPinControl(unsigned int baseAdd, unsigned int pinCtl);
- extern unsigned int DCANRxPinStatusGet(unsigned int baseAdd);
- extern unsigned int DCANParityErrCdRegStatusGet(unsigned int baseAdd,
- unsigned int statFlg);
- extern void DCANAutoBusOnTimeValSet(unsigned int baseAdd, unsigned int timeVal);
- extern unsigned int DCANAutoBusOnTimeValGet(unsigned int baseAdd);
- extern unsigned int DCANTxRqstXStatusGet(unsigned int baseAdd);
- extern unsigned int DCANTxRqstStatusGet(unsigned int baseAdd, unsigned int msgNum);
- extern unsigned int DCANTxRqstStatGet(unsigned int baseAdd);
- extern unsigned int DCANNewDataXStatusGet(unsigned int baseAdd);
- extern unsigned int DCANNewDataStatusGet(unsigned int baseAdd, unsigned int msgNum);
- extern unsigned int DCANNewDataStatGet(unsigned int baseAdd);
- extern void DCANMsgObjValidate(unsigned int baseAdd, unsigned int regNum);
- extern void DCANMsgObjInvalidate(unsigned baseAdd, unsigned int regNum);
- extern void DCANCommandRegSet(unsigned int baseAdd, unsigned int cmdFlags,
- unsigned int objNum, unsigned int regNum);
- extern unsigned int DCANIntPendingXStatusGet(unsigned int baseAdd);
- extern unsigned int DCANIntPendingStatusGet(unsigned int baseAdd, unsigned int msgNum);
- extern unsigned int DCANMsgValidXStatusGet(unsigned int baseAdd);
- extern unsigned int DCANMsgValidStatusGet(unsigned int baseAdd, unsigned int msgNum);
- extern void DCANIntMuxConfig(unsigned int baseAdd, unsigned int intLine,
- unsigned int msgNum);
- extern unsigned int DCANIFBusyStatusGet(unsigned int baseAdd, unsigned int regNum);
- extern void DCANMsgIdSet(unsigned int baseAdd, unsigned int msgId,
- unsigned int idLength, unsigned int regNum);
- extern void DCANMsgDirectionSet(unsigned int baseAdd, unsigned int msgDir,
- unsigned int regNum);
- extern void DCANDataWrite(unsigned int baseAdd, unsigned int* dataPtr,
- unsigned int regNum);
- extern void DCANDataRead(unsigned int baseAdd, unsigned int* data, unsigned int regNum);
- extern void DCANDataLengthCodeSet(unsigned int baseAdd, unsigned int dlc,
- unsigned int regNum);
- extern void DCANMsgObjIntEnable(unsigned int baseAdd, unsigned int intFlags,
- unsigned int regNum);
- extern void DCANMsgObjIntDisable(unsigned int baseAdd, unsigned int intFlags,
- unsigned int regNum);
- extern void DCANFIFOEndOfBlockControl(unsigned int baseAdd, unsigned int eob,
- unsigned int regNum);
- extern void DCANMsgObjectMskConfig(unsigned int baseAdd, unsigned int idMsk,
- unsigned int msgDir, unsigned int extId,
- unsigned int regNum);
- extern void DCANIF3RegUpdateEnableSet(unsigned int baseAdd,
- unsigned int msgNum);
- extern unsigned char DCANIF3ObservationFlagStatGet(unsigned int baseAdd);
- extern void DCANIF3ObservationFlagSet(unsigned int baseAdd, unsigned int obsFlags);
- extern void DCANIF3ObservationFlagClear(unsigned int baseAdd, unsigned int obsFlags);
- extern unsigned int DCANIFMaskStatusGet(unsigned int baseAdd, unsigned int regNum);
- extern unsigned int DCANIFArbStatusGet(unsigned int baseAdd, unsigned int regNum);
- extern unsigned int DCANIFMsgCtlStatusGet(unsigned int baseAdd, unsigned int regNum);
- extern void DCANClrIntPnd(unsigned int baseAdd, unsigned int regNum);
- extern void DCANNewDataControl(unsigned int baseAdd, unsigned int newDat,
- unsigned int regNum);
- extern void DCANUseAcceptanceMaskControl(unsigned int baseAdd, unsigned int uMask,
- unsigned int regNum);
- extern void DCANTransmitRequestControl(unsigned int baseAdd, unsigned int txRqst,
- unsigned int regNum);
- #ifdef __cplusplus
- }
- #endif
- #endif
|