Go to the documentation of this file.00001 #ifndef __MSP430WARE_EUSCI_I2C_H__
00002 #define __MSP430WARE_EUSCI_I2C_H__
00003
00004
00005
00006
00007
00008
00009
00010 #define __MSP430_HAS_EUSCI_Bx__
00011
00012
00013
00014
00015
00016
00017
00018 #define eI2C_CLOCKSOURCE_ACLK UCSSEL__ACLK
00019 #define eI2C_CLOCKSOURCE_SMCLK UCSSEL__SMCLK
00020
00021
00022
00023
00024
00025
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
00047
00048
00049
00050 #define eI2C_SET_DATA_RATE_400KBPS 400000
00051 #define eI2C_SET_DATA_RATE_100KBPS 100000
00052
00053
00054
00055
00056
00057
00058
00059 #define eI2C_BUS_BUSY UCBBUSY
00060 #define eI2C_BUS_NOT_BUSY 0x00
00061
00062
00063
00064
00065
00066
00067
00068 #define eI2C_OWN_ADDRESS_DISABLE 0x00
00069 #define eI2C_OWN_ADDRESS_ENABLE UCOAEN
00070
00071
00072
00073
00074
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
00084
00085
00086
00087 #define eI2C_SINGLE_MASTER_ENVIRONMENT 0x00
00088 #define eI2C_MULTI_MASTER_ENVIRONMENT UCMM
00089
00090
00091
00092
00093
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
00104
00105
00106
00107 #define eI2C_TRANSMIT_MODE UCTR
00108 #define eI2C_RECEIVE_MODE 0x00
00109
00110
00111
00112
00113
00114
00115
00116
00117 #define eI2C_SENDING_STOP UCTXSTP
00118 #define eI2C_STOP_SEND_COMPLETE 0x00
00119
00120
00121
00122
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