ei2c.h
Go to the documentation of this file.
00001 #ifndef __MSP430WARE_EUSCI_I2C_H__
00002 #define __MSP430WARE_EUSCI_I2C_H__
00003 
00004 //*****************************************************************************
00005 //
00006 //The following are the defines to include the required modules for this
00007 //peripheral in msp430xgeneric.h file
00008 //
00009 //*****************************************************************************
00010 #define __MSP430_HAS_EUSCI_Bx__
00011 
00012 //*****************************************************************************
00013 //
00014 //The following are values that can be passed to the I2C_masterInit() API
00015 //as the selectClockSource parameter.
00016 //
00017 //*****************************************************************************
00018 #define eI2C_CLOCKSOURCE_ACLK    UCSSEL__ACLK
00019 #define eI2C_CLOCKSOURCE_SMCLK   UCSSEL__SMCLK
00020 
00021 //*****************************************************************************
00022 //
00023 //The following are values that can be passed to the eI2C_enableInterrupt(),
00024 //eI2C_disableInterrupt(), eI2C_clearInterrupt(), eI2C_getInterruptStatus(), API
00025 //as the mask parameter.
00026 //
00027 //*****************************************************************************
00028 #define eI2C_NAK_INTERRUPT                UCNACKIE
00029 #define eI2C_ARBITRATIONLOST_INTERRUPT    UCALIE
00030 #define eI2C_STOP_INTERRUPT               UCSTPIE
00031 #define eI2C_START_INTERRUPT              UCSTTIE
00032 #define eI2C_TRANSMIT_INTERRUPT0          UCTXIE0
00033 #define eI2C_TRANSMIT_INTERRUPT1          UCTXIE1
00034 #define eI2C_TRANSMIT_INTERRUPT2          UCTXIE2
00035 #define eI2C_TRANSMIT_INTERRUPT3          UCTXIE3
00036 #define eI2C_RECEIVE_INTERRUPT0           UCRXIE0
00037 #define eI2C_RECEIVE_INTERRUPT1           UCRXIE1
00038 #define eI2C_RECEIVE_INTERRUPT2           UCRXIE2
00039 #define eI2C_RECEIVE_INTERRUPT3           UCRXIE3
00040 #define eI2C_BIT9_POSITION_INTERRUPT             UCBIT9IE
00041 #define eI2C_CLOCK_LOW_TIMEOUT_INTERRUPT         UCCLTOIE
00042 #define eI2C_BYTE_COUNTER_INTERRUPT              UCBCNTIE
00043 
00044 //*****************************************************************************
00045 //
00046 //The following are values that can be passed to the eI2C_masterInit() API
00047 //as the dataRate parameter.
00048 //
00049 //*****************************************************************************
00050 #define eI2C_SET_DATA_RATE_400KBPS             400000
00051 #define eI2C_SET_DATA_RATE_100KBPS             100000
00052 
00053 //*****************************************************************************
00054 //
00055 //The following are values that is returned by the eI2C_isBusy()  and
00056 //eI2C_isBusBusy() API
00057 //
00058 //*****************************************************************************
00059 #define eI2C_BUS_BUSY     UCBBUSY
00060 #define eI2C_BUS_NOT_BUSY 0x00
00061 
00062 //*****************************************************************************
00063 //
00064 //The following are values that is passed to the slaveOwnAddressEnable
00065 //parameter of the eI2C_slaveInit() API
00066 //
00067 //*****************************************************************************
00068 #define eI2C_OWN_ADDRESS_DISABLE        0x00
00069 #define eI2C_OWN_ADDRESS_ENABLE UCOAEN
00070 
00071 //*****************************************************************************
00072 //
00073 //The following are values that is passed to the autoSTOPGeneration
00074 //parameter of the eI2C_masterInit() API
00075 //
00076 //*****************************************************************************
00077 #define eI2C_NO_AUTO_STOP                                                                       UCASTP_0
00078 #define eI2C_SET_BYTECOUNT_THRESHOLD_FLAG                                       UCASTP_1
00079 #define eI2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD     UCASTP_2
00080 
00081 //*****************************************************************************
00082 //
00083 //The following are values that is passed to the selectEnvironment
00084 //parameter of the eI2C_selectMasterEnvironmentSelect() API
00085 //
00086 //*****************************************************************************
00087 #define eI2C_SINGLE_MASTER_ENVIRONMENT          0x00
00088 #define eI2C_MULTI_MASTER_ENVIRONMENT           UCMM
00089 
00090 //*****************************************************************************
00091 //
00092 //The following are values that is passed to eI2C_slaveInit() API as
00093 // slaveAddressOffset parameter
00094 //
00095 //*****************************************************************************
00096 #define eI2C_OWN_ADDRESS_OFFSET0 0x00
00097 #define eI2C_OWN_ADDRESS_OFFSET1 0x02
00098 #define eI2C_OWN_ADDRESS_OFFSET2 0x04
00099 #define eI2C_OWN_ADDRESS_OFFSET3 0x06
00100 
00101 //*****************************************************************************
00102 //
00103 //The following are values that can be passed to the eI2C_setMode() API
00104 //as the mode parameter.
00105 //
00106 //*****************************************************************************
00107 #define eI2C_TRANSMIT_MODE       UCTR
00108 #define eI2C_RECEIVE_MODE        0x00
00109 
00110 //*****************************************************************************
00111 //
00112 //The following are values that can be returned by the eI2C_masterIsSTOPSent()
00113 //API
00114 //
00115 //*****************************************************************************
00116 
00117 #define eI2C_SENDING_STOP               UCTXSTP
00118 #define eI2C_STOP_SEND_COMPLETE 0x00
00119 
00120 //*****************************************************************************
00121 //
00122 //Prototypes for the APIs.
00123 //
00124 //*****************************************************************************
00125 extern void eI2C_masterInit (unsigned int baseAddress,
00126             unsigned char selectClockSource,
00127             unsigned long i2cClk,
00128             unsigned long dataRate,
00129             unsigned char byteCounterThreshold,
00130             unsigned char autoSTOPGeneration
00131             );
00132 extern void eI2C_slaveInit (unsigned int baseAddress,
00133             unsigned char slaveAddress,
00134             unsigned char slaveAddressOffset,
00135             unsigned long slaveOwnAddressEnable
00136             );
00137 extern void eI2C_enable (unsigned int baseAddress);
00138 extern void eI2C_disable (unsigned int baseAddress);
00139 extern void eI2C_setSlaveAddress (unsigned int baseAddress,
00140     unsigned char slaveAddress
00141     );
00142 extern void eI2C_setMode (unsigned int baseAddress,
00143     unsigned char mode
00144     );
00145 extern void eI2C_slaveDataPut (unsigned int baseAddress,
00146     unsigned char transmitData
00147     );
00148 extern unsigned char eI2C_slaveDataGet (unsigned int baseAddress);
00149 extern unsigned char eI2C_isBusBusy (unsigned int baseAddress);
00150 extern unsigned char eI2C_isBusy (unsigned int baseAddress);
00151 extern void eI2C_enableInterrupt (unsigned int baseAddress,
00152     unsigned int mask
00153     );
00154 extern void eI2C_disableInterrupt (unsigned int baseAddress,
00155     unsigned int mask
00156     );
00157 extern void eI2C_clearInterruptFlag (unsigned int baseAddress,
00158     unsigned int mask
00159     );
00160 extern unsigned char eI2C_getInterruptStatus (unsigned int baseAddress,
00161     unsigned int mask
00162     );
00163 extern void eI2C_masterSendSingleByte (unsigned int baseAddress,
00164     unsigned char txData
00165     );
00166 extern void eI2C_masterMultiByteSendStart (unsigned int baseAddress,
00167     unsigned char txData
00168     );
00169 extern void eI2C_masterMultiByteSendNext (unsigned int baseAddress,
00170     unsigned char txData
00171     );
00172 extern void eI2C_masterMultiByteSendFinish (unsigned int baseAddress,
00173     unsigned char txData
00174     );
00175 extern void eI2C_masterMultiByteSendStop (unsigned int baseAddress);
00176 extern void eI2C_masterReceiveStart (unsigned int baseAddress);
00177 extern unsigned char eI2C_masterMultiByteReceiveNext (unsigned int baseAddress);
00178 extern unsigned char eI2C_masterMultiByteReceiveFinish (
00179     unsigned int baseAddress
00180     );
00181 extern void eI2C_masterMultiByteReceiveStop (unsigned int baseAddress);
00182 extern unsigned char eI2C_masterSingleReceive (unsigned int baseAddress);
00183 extern unsigned long eI2C_getReceiveBufferAddressForDMA (
00184     unsigned int baseAddress
00185     );
00186 extern unsigned long eI2C_getTransmitBufferAddressForDMA (
00187     unsigned int baseAddress
00188     );
00189 extern unsigned char eI2C_masterIsSTOPSent (unsigned int baseAddress);
00190 extern void eI2C_masterSendStart (unsigned int baseAddress);
00191 extern void eI2C_enableMultiMasterMode(unsigned int baseAddress);
00192 extern void eI2C_disableMultiMasterMode(unsigned int baseAddress);
00193 #endif

Copyright 2012, Texas Instruments Incorporated