Hello,
Could you update CVS / GIT / BZR, thank you
PS : Don't hesitate to correct the document if you found some mistakes
#if !defined(__msp430_headers_usci_h__)
#define __msp430_headers_usci_h__
/* usi.h
*
* mspgcc project: MSP430 device headers
* USCI module header
*
* (c) 2006 by Steve Underwood <[email protected]>
* Originally based in part on work by Texas Instruments Inc.
*
* $Id: usci.h,v 1.7 2009/06/04 21:55:18 cliechti Exp $
*
* 2008-02-05 - modifications by G.Lemm <[email protected]>
* - added UC1IE and UC1IFG registers
* - added UC*1*IE and UC*1*IFG bit definitions
* 2009-05-19 - modifications by S. Balling <[email protected]>
* - added switch for USCI0
* - added USCI0_5
* - added USCI1_5 : tbd
* - added USCI2_5 : tbd
* - added USCI3_5 : tbd
*
* 2009-09-08 - THLN
* - definition updated with flexible base address
* - USCI0_5 to USCI3_5 definition updated
* based on Texas Instruments document : "MSP430x5xx Family User's Guide -
SLAU208 Revised July 2010"
*
*/
/* Switches:
__MSP430_HAS_USCI0__ - if device has USCI0
__MSP430_HAS_USCI1__ - if device has USCI1
__MSP430_HAS_USCI0_5__ - if device has USCI0 and is part of family 5
__MSP430_HAS_USCI1_5__ - if device has USCI1 and is part of family 5
__MSP430_HAS_USCI2_5__ - if device has USCI2 and is part of family 5
__MSP430_HAS_USCI3_5__ - if device has USCI3 and is part of family 5
__MSP430_UCA0_BASE__ - define base address of UCA0 module
(default is 0x5c0).
__MSP430_UCB0_BASE__ - define base address of UCB0 module
(default is 0x5e0).
__MSP430_UCA1_BASE__ - define base address of UCA1 module
(default is 0x600).
__MSP430_UCB1_BASE__ - define base address of UCB1 module
(default is 0x620).
__MSP430_UCA2_BASE__ - define base address of UCA2 module
(default is 0x640).
__MSP430_UCB2_BASE__ - define base address of UCB1 module
(default is 0x660).
__MSP430_UCA3_BASE__ - define base address of UCA3 module
(default is 0x680).
__MSP430_UCB3_BASE__ - define base address of UCB3 module
(default is 0x6a0).
*/
#define USIPE7 (0x80) /* USI Port Enable Px.7 */
#define USIPE6 (0x40) /* USI Port Enable Px.6 */
#define USIPE5 (0x20) /* USI Port Enable Px.5 */
#define USILSB (0x10) /* USI LSB first 1:LSB / 0:MSB */
#define USIMST (0x08) /* USI Master Select 0:Slave /
1:Master */
#define USIGE (0x04) /* USI General Output Enable Latch */
#define USIOE (0x02) /* USI Output Enable */
#define USISWRST (0x01) /* USI Software Reset */
#define USICKPH (0x80) /* USI Sync. Mode: Clock Phase */
#define USII2C (0x40) /* USI I2C Mode */
#define USISTTIE (0x20) /* USI START Condition interrupt
enable */
#define USIIE (0x10) /* USI Counter Interrupt enable */
#define USIAL (0x08) /* USI Arbitration Lost */
#define USISTP (0x04) /* USI STOP Condition received */
#define USISTTIFG (0x02) /* USI START Condition interrupt Flag
*/
#define USIIFG (0x01) /* USI Counter Interrupt Flag */
#define USIDIV2 (0x80) /* USI Clock Divider 2 */
#define USIDIV1 (0x40) /* USI Clock Divider 1 */
#define USIDIV0 (0x20) /* USI Clock Divider 0 */
#define USISSEL2 (0x10) /* USI Clock Source Select 2 */
#define USISSEL1 (0x08) /* USI Clock Source Select 1 */
#define USISSEL0 (0x04) /* USI Clock Source Select 0 */
#define USICKPL (0x02) /* USI Clock Polarity 0:Inactive=Low /
1:Inactive=High */
#define USISWCLK (0x01) /* USI Software Clock */
#define USIDIV_0 (0x00) /* USI Clock Divider: 0 */
#define USIDIV_1 (0x20) /* USI Clock Divider: 1 */
#define USIDIV_2 (0x40) /* USI Clock Divider: 2 */
#define USIDIV_3 (0x60) /* USI Clock Divider: 3 */
#define USIDIV_4 (0x80) /* USI Clock Divider: 4 */
#define USIDIV_5 (0xA0) /* USI Clock Divider: 5 */
#define USIDIV_6 (0xC0) /* USI Clock Divider: 6 */
#define USIDIV_7 (0xE0) /* USI Clock Divider: 7 */
#define USISSEL_0 (0x00) /* USI Clock Source: 0 */
#define USISSEL_1 (0x04) /* USI Clock Source: 1 */
#define USISSEL_2 (0x08) /* USI Clock Source: 2 */
#define USISSEL_3 (0x0C) /* USI Clock Source: 3 */
#define USISSEL_4 (0x10) /* USI Clock Source: 4 */
#define USISSEL_5 (0x14) /* USI Clock Source: 5 */
#define USISSEL_6 (0x18) /* USI Clock Source: 6 */
#define USISSEL_7 (0x1C) /* USI Clock Source: 7 */
#define USISCLREL (0x80) /* USI SCL Released */
#define USI16B (0x40) /* USI 16 Bit Shift Register Enable */
#define USIFGDC (0x20) /* USI Interrupt Flag don't clear */
#define USICNT4 (0x10) /* USI Bit Count 4 */
#define USICNT3 (0x08) /* USI Bit Count 3 */
#define USICNT2 (0x04) /* USI Bit Count 2 */
#define USICNT1 (0x02) /* USI Bit Count 1 */
#define USICNT0 (0x01) /* USI Bit Count 0 */
// UART-Mode Bits
#define UCPEN (0x80) /* Async. Mode: Parity enable */
#define UCPAR (0x40) /* Async. Mode: Parity 0:odd /
1:even */
#define UCMSB (0x20) /* Async. Mode: MSB first 0:LSB /
1:MSB */
#define UC7BIT (0x10) /* Async. Mode: Data Bits 0:8-bits /
1:7-bits */
#define UCSPB (0x08) /* Async. Mode: Stop Bits 0:one / 1:
two */
#define UCMODE1 (0x04) /* Async. Mode: USCI Mode 1 */
#define UCMODE0 (0x02) /* Async. Mode: USCI Mode 0 */
#define UCSYNC (0x01) /* Sync-Mode 0:UART-Mode / 1:SPI-Mode
*/
// SPI-Mode Bits
#define UCCKPH (0x80) /* Sync. Mode: Clock Phase */
#define UCCKPL (0x40) /* Sync. Mode: Clock Polarity */
#define UCMST (0x08) /* Sync. Mode: Master Select */
// I2C-Mode Bits
#define UCA10 (0x80) /* 10-bit Address Mode */
#define UCSLA10 (0x40) /* 10-bit Slave Address Mode */
#define UCMM (0x20) /* Multi-Master Environment */
//#define res (0x10) /* reserved */
#define UCMODE_0 (0<<1) /* Sync. Mode: USCI Mode: 0 */
#define UCMODE_1 (1<<1) /* Sync. Mode: USCI Mode: 1 */
#define UCMODE_2 (2<<1) /* Sync. Mode: USCI Mode: 2 */
#define UCMODE_3 (3<<1) /* Sync. Mode: USCI Mode: 3 */
// UART-Mode Bits
#define UCSSEL1 (0x80) /* USCI 0 Clock Source Select 1 */
#define UCSSEL0 (0x40) /* USCI 0 Clock Source Select 0 */
#define UCRXEIE (0x20) /* RX Error interrupt enable */
#define UCBRKIE (0x10) /* Break interrupt enable */
#define UCDORM (0x08) /* Dormant (Sleep) Mode */
#define UCTXADDR (0x04) /* Send next Data as Address */
#define UCTXBRK (0x02) /* Send next Data as Break */
#define UCSWRST (0x01) /* USCI Software Reset */
// SPI-Mode Bits
//#define res (0x20) /* reserved */
//#define res (0x10) /* reserved */
//#define res (0x08) /* reserved */
//#define res (0x04) /* reserved */
//#define res (0x02) /* reserved */
// I2C-Mode Bits
//#define res (0x20) /* reserved */
#define UCTR (0x10) /* Transmit/Receive Select/Flag */
#define UCTXNACK (0x08) /* Transmit NACK */
#define UCTXSTP (0x04) /* Transmit STOP */
#define UCTXSTT (0x02) /* Transmit START */
#define UCSSEL_0 (0<<6) /* USCI 0 Clock Source: 0 */
#define UCSSEL_1 (1<<6) /* USCI 0 Clock Source: 1 */
#define UCSSEL_2 (2<<6) /* USCI 0 Clock Source: 2 */
#define UCSSEL_3 (3<<6) /* USCI 0 Clock Source: 3 */
#define UCBRF3 (0x80) /* USCI First Stage Modulation Select 3
*/
#define UCBRF2 (0x40) /* USCI First Stage Modulation Select 2
*/
#define UCBRF1 (0x20) /* USCI First Stage Modulation Select 1
*/
#define UCBRF0 (0x10) /* USCI First Stage Modulation Select 0
*/
#define UCBRS2 (0x08) /* USCI Second Stage Modulation Select
2 */
#define UCBRS1 (0x04) /* USCI Second Stage Modulation Select
1 */
#define UCBRS0 (0x02) /* USCI Second Stage Modulation Select
0 */
#define UCOS16 (0x01) /* USCI 16-times Oversampling enable */
#define UCBRF_0 (0x0<<4) /* USCI First Stage Modulation: 0 */
#define UCBRF_1 (0x1<<4) /* USCI First Stage Modulation: 1 */
#define UCBRF_2 (0x2<<4) /* USCI First Stage Modulation: 2 */
#define UCBRF_3 (0x3<<4) /* USCI First Stage Modulation: 3 */
#define UCBRF_4 (0x4<<4) /* USCI First Stage Modulation: 4 */
#define UCBRF_5 (0x5<<4) /* USCI First Stage Modulation: 5 */
#define UCBRF_6 (0x6<<4) /* USCI First Stage Modulation: 6 */
#define UCBRF_7 (0x7<<4) /* USCI First Stage Modulation: 7 */
#define UCBRF_8 (0x8<<4) /* USCI First Stage Modulation: 8 */
#define UCBRF_9 (0x9<<4) /* USCI First Stage Modulation: 9 */
#define UCBRF_10 (0xA<<4) /* USCI First Stage Modulation: A */
#define UCBRF_11 (0xB<<4) /* USCI First Stage Modulation: B */
#define UCBRF_12 (0xC<<4) /* USCI First Stage Modulation: C */
#define UCBRF_13 (0xD<<4) /* USCI First Stage Modulation: D */
#define UCBRF_14 (0xE<<4) /* USCI First Stage Modulation: E */
#define UCBRF_15 (0xF<<4) /* USCI First Stage Modulation: F */
#define UCBRS_0 (0<<1) /* USCI Second Stage Modulation: 0 */
#define UCBRS_1 (1<<1) /* USCI Second Stage Modulation: 1 */
#define UCBRS_2 (2<<1) /* USCI Second Stage Modulation: 2 */
#define UCBRS_3 (3<<1) /* USCI Second Stage Modulation: 3 */
#define UCBRS_4 (4<<1) /* USCI Second Stage Modulation: 4 */
#define UCBRS_5 (5<<1) /* USCI Second Stage Modulation: 5 */
#define UCBRS_6 (6<<1) /* USCI Second Stage Modulation: 6 */
#define UCBRS_7 (7<<1) /* USCI Second Stage Modulation: 7 */
#define UCLISTEN (0x80) /* USCI Listen mode */
#define UCFE (0x40) /* USCI Frame Error Flag */
#define UCOE (0x20) /* USCI Overrun Error Flag */
#define UCPE (0x10) /* USCI Parity Error Flag */
#define UCBRK (0x08) /* USCI Break received */
#define UCRXERR (0x04) /* USCI RX Error Flag */
#define UCADDR (0x02) /* USCI Address received Flag */
#define UCBUSY (0x01) /* USCI Busy Flag */
#define UCIDLE (0x02) /* USCI Idle line detected Flag */
//#define res (0x80) /* reserved */
//#define res (0x40) /* reserved */
//#define res (0x20) /* reserved */
//#define res (0x10) /* reserved */
#define UCNACKIE (0x08) /* NACK Condition interrupt enable */
#define UCSTPIE (0x04) /* STOP Condition interrupt enable */
#define UCSTTIE (0x02) /* START Condition interrupt enable */
#define UCALIE (0x01) /* Arbitration Lost interrupt enable */
#define UCSCLLOW (0x40) /* SCL low */
#define UCGC (0x20) /* General Call address received Flag */
#define UCBBUSY (0x10) /* Bus Busy Flag */
#define UCNACKIFG (0x08) /* NAK Condition interrupt Flag */
#define UCSTPIFG (0x04) /* STOP Condition interrupt Flag */
#define UCSTTIFG (0x02) /* START Condition interrupt Flag */
#define UCALIFG (0x01) /* Arbitration Lost interrupt Flag */
#define UCIRTXPL5 (0x80) /* IRDA Transmit Pulse Length 5 */
#define UCIRTXPL4 (0x40) /* IRDA Transmit Pulse Length 4 */
#define UCIRTXPL3 (0x20) /* IRDA Transmit Pulse Length 3 */
#define UCIRTXPL2 (0x10) /* IRDA Transmit Pulse Length 2 */
#define UCIRTXPL1 (0x08) /* IRDA Transmit Pulse Length 1 */
#define UCIRTXPL0 (0x04) /* IRDA Transmit Pulse Length 0 */
#define UCIRTXCLK (0x02) /* IRDA Transmit Pulse Clock Select */
#define UCIREN (0x01) /* IRDA Encoder/Decoder enable */
#define UCIRRXFL5 (0x80) /* IRDA Receive Filter Length 5 */
#define UCIRRXFL4 (0x40) /* IRDA Receive Filter Length 4 */
#define UCIRRXFL3 (0x20) /* IRDA Receive Filter Length 3 */
#define UCIRRXFL2 (0x10) /* IRDA Receive Filter Length 2 */
#define UCIRRXFL1 (0x08) /* IRDA Receive Filter Length 1 */
#define UCIRRXFL0 (0x04) /* IRDA Receive Filter Length 0 */
#define UCIRRXPL (0x02) /* IRDA Receive Input Polarity */
#define UCIRRXFE (0x01) /* IRDA Receive Filter enable */
//#define res (0x80) /* reserved */
//#define res (0x40) /* reserved */
#define UCDELIM1 (0x20) /* Break Sync Delimiter 1 */
#define UCDELIM0 (0x10) /* Break Sync Delimiter 0 */
#define UCSTOE (0x08) /* Sync-Field Timeout error */
#define UCBTOE (0x04) /* Break Timeout error */
//#define res (0x02) /* reserved */
#define UCABDEN (0x01) /* Auto Baud Rate detect enable */
#define UCGCEN (0x8000) /* I2C General Call enable */
#define UCOA9 (0x0200) /* I2C Own Address 9 */
#define UCOA8 (0x0100) /* I2C Own Address 8 */
#define UCOA7 (0x0080) /* I2C Own Address 7 */
#define UCOA6 (0x0040) /* I2C Own Address 6 */
#define UCOA5 (0x0020) /* I2C Own Address 5 */
#define UCOA4 (0x0010) /* I2C Own Address 4 */
#define UCOA3 (0x0008) /* I2C Own Address 3 */
#define UCOA2 (0x0004) /* I2C Own Address 2 */
#define UCOA1 (0x0002) /* I2C Own Address 1 */
#define UCOA0 (0x0001) /* I2C Own Address 0 */
#define UCSA9 (0x0200) /* I2C Slave Address 9 */
#define UCSA8 (0x0100) /* I2C Slave Address 8 */
#define UCSA7 (0x0080) /* I2C Slave Address 7 */
#define UCSA6 (0x0040) /* I2C Slave Address 6 */
#define UCSA5 (0x0020) /* I2C Slave Address 5 */
#define UCSA4 (0x0010) /* I2C Slave Address 4 */
#define UCSA3 (0x0008) /* I2C Slave Address 3 */
#define UCSA2 (0x0004) /* I2C Slave Address 2 */
#define UCSA1 (0x0002) /* I2C Slave Address 1 */
#define UCSA0 (0x0001) /* I2C Slave Address 0 */
/* Aliases by mspgcc */
#define UCSSEL_UCLKI UCSSEL_0
#define UCSSEL_ACLK UCSSEL_1
#define UCSSEL_SMCLK UCSSEL_2
#if defined(__MSP430_HAS_USCI0__)
/* -------- USCI0 */
#define UCA0CTL0_ 0x0060 /* USCI A0 Control Register 0 */
sfrb(UCA0CTL0, UCA0CTL0_);
#define UCA0CTL1_ 0x0061 /* USCI A0 Control Register 1 */
sfrb(UCA0CTL1, UCA0CTL1_);
#define UCA0BR0_ 0x0062 /* USCI A0 Baud Rate 0 */
sfrb(UCA0BR0, UCA0BR0_);
#define UCA0BR1_ 0x0063 /* USCI A0 Baud Rate 1 */
sfrb(UCA0BR1, UCA0BR1_);
#define UCA0MCTL_ 0x0064 /* USCI A0 Modulation Control */
sfrb(UCA0MCTL, UCA0MCTL_);
#define UCA0STAT_ 0x0065 /* USCI A0 Status Register */
sfrb(UCA0STAT, UCA0STAT_);
#define UCA0RXBUF_ 0x0066 /* USCI A0 Receive Buffer */
/*READ_ONLY*/ sfrb(UCA0RXBUF, UCA0RXBUF_);
#define UCA0TXBUF_ 0x0067 /* USCI A0 Transmit Buffer */
sfrb(UCA0TXBUF, UCA0TXBUF_);
#define UCA0ABCTL_ 0x005D /* USCI A0 Auto baud/LIN Control */
sfrb(UCA0ABCTL, UCA0ABCTL_);
#define UCA0IRTCTL_ 0x005E /* USCI A0 IrDA Transmit Control */
sfrb(UCA0IRTCTL, UCA0IRTCTL_);
#define UCA0IRRCTL_ 0x005F /* USCI A0 IrDA Receive Control */
sfrb(UCA0IRRCTL, UCA0IRRCTL_);
#define UCB0CTL0_ 0x0068 /* USCI B0 Control Register 0 */
sfrb(UCB0CTL0, UCB0CTL0_);
#define UCB0CTL1_ 0x0069 /* USCI B0 Control Register 1 */
sfrb(UCB0CTL1, UCB0CTL1_);
#define UCB0BR0_ 0x006A /* USCI B0 Baud Rate 0 */
sfrb(UCB0BR0, UCB0BR0_);
#define UCB0BR1_ 0x006B /* USCI B0 Baud Rate 1 */
sfrb(UCB0BR1, UCB0BR1_);
#define UCB0I2CIE_ 0x006C /* USCI B0 I2C Interrupt Enable
Register */
sfrb(UCB0I2CIE, UCB0I2CIE_);
#define UCB0STAT_ 0x006D /* USCI B0 Status Register */
sfrb(UCB0STAT, UCB0STAT_);
#define UCB0RXBUF_ 0x006E /* USCI B0 Receive Buffer */
/*READ_ONLY*/ sfrb(UCB0RXBUF, UCB0RXBUF_);
#define UCB0TXBUF_ 0x006F /* USCI B0 Transmit Buffer */
sfrb(UCB0TXBUF, UCB0TXBUF_);
#define UCB0I2COA_ 0x0118 /* USCI B0 I2C Own Address */
sfrw(UCB0I2COA, UCB0I2COA_);
#define UCB0I2CSA_ 0x011A /* USCI B0 I2C Slave Address */
sfrw(UCB0I2CSA, UCB0I2CSA_);
#endif /* __MSP430_HAS_USCI0__ */
#if defined(__MSP430_HAS_USCI1__)
/* -------- USCI1 */
#define UCA1CTL0_ 0x00D0 /* USCI A1 Control Register 0 */
sfrb(UCA1CTL0, UCA1CTL0_);
#define UCA1CTL1_ 0x00D1 /* USCI A1 Control Register 1 */
sfrb(UCA1CTL1, UCA1CTL1_);
#define UCA1BR0_ 0x00D2 /* USCI A1 Baud Rate 0 */
sfrb(UCA1BR0, UCA1BR0_);
#define UCA1BR1_ 0x00D3 /* USCI A1 Baud Rate 1 */
sfrb(UCA1BR1, UCA1BR1_);
#define UCA1MCTL_ 0x00D4 /* USCI A1 Modulation Control */
sfrb(UCA1MCTL, UCA1MCTL_);
#define UCA1STAT_ 0x00D5 /* USCI A1 Status Register */
sfrb(UCA1STAT, UCA1STAT_);
#define UCA1RXBUF_ 0x00D6 /* USCI A1 Receive Buffer */
/*READ_ONLY*/ sfrb(UCA1RXBUF, UCA1RXBUF_);
#define UCA1TXBUF_ 0x00D7 /* USCI A1 Transmit Buffer */
sfrb(UCA1TXBUF, UCA1TXBUF_);
#define UCA1ABCTL_ 0x00CD /* USCI A1 Auto baud/LIN Control */
sfrb(UCA1ABCTL, UCA1ABCTL_);
#define UCA1IRTCTL_ 0x00CE /* USCI A1 IrDA Transmit Control */
sfrb(UCA1IRTCTL, UCA1IRTCTL_);
#define UCA1IRRCTL_ 0x00CF /* USCI A1 IrDA Receive Control */
sfrb(UCA1IRRCTL, UCA1IRRCTL_);
#define UCB1CTL0_ 0x00D8 /* USCI B1 Control Register 0 */
sfrb(UCB1CTL0, UCB1CTL0_);
#define UCB1CTL1_ 0x00D9 /* USCI B1 Control Register 1 */
sfrb(UCB1CTL1, UCB1CTL1_);
#define UCB1BR0_ 0x00DA /* USCI B1 Baud Rate 0 */
sfrb(UCB1BR0, UCB1BR0_);
#define UCB1BR1_ 0x00DB /* USCI B1 Baud Rate 1 */
sfrb(UCB1BR1, UCB1BR1_);
#define UCB1I2CIE_ 0x00DC /* USCI B1 I2C Interrupt Enable
Register */
sfrb(UCB1I2CIE, UCB1I2CIE_);
#define UCB1STAT_ 0x00DD /* USCI B1 Status Register */
sfrb(UCB1STAT, UCB1STAT_);
#define UCB1RXBUF_ 0x00DE /* USCI B1 Receive Buffer */
/*READ_ONLY*/ sfrb(UCB1RXBUF, UCB1RXBUF_);
#define UCB1TXBUF_ 0x00DF /* USCI B1 Transmit Buffer */
sfrb(UCB1TXBUF, UCB1TXBUF_);
#define UCB1I2COA_ 0x017C /* USCI B1 I2C Own Address */
sfrw(UCB1I2COA, UCB1I2COA_);
#define UCB1I2CSA_ 0x017E /* USCI B1 I2C Slave Address */
sfrw(UCB1I2CSA, UCB1I2CSA_);
#define UC1IE_ 0x0006 /* USCI A1/B1 Interrupt enable register
*/
sfrb(UC1IE, UC1IE_);
#define UC1IFG_ 0x0007 /* USCI A1/B1 Interrupt flag register */
sfrb(UC1IFG, UC1IFG_);
#define UCA1RXIE (1<<0)
#define UCA1TXIE (1<<1)
#define UCB1RXIE (1<<2)
#define UCB1TXIE (1<<3)
#define UCA1RXIFG (1<<0)
#define UCA1TXIFG (1<<1)
#define UCB1RXIFG (1<<2)
#define UCB1TXIFG (1<<3)
#endif /* __MSP430_HAS_USCI1__ */
#if defined(__MSP430_HAS_USCI0_5__)
/* USCI A0 base address */
#if !defined(__MSP430_UCA0_BASE__)
#define __MSP430_UCA0_BASE__ 0x5c0
#endif
#define UCA0CTLW0_ __MSP430_UCA0_BASE__ + 0x0 /* USCI A0 Control
Word 0 Register */
sfrw(UCA0CTLW0, UCA0CTLW0_);
#define UCA0CTLW0_L_ __MSP430_UCA0_BASE__ + 0x0 /* USCI A0 Control
Word 0 Register Lo */
sfrb(UCA0CTLW0_L, UCA0CTLW0_L_);
#define UCA0CTLW0_H_ __MSP430_UCA0_BASE__ + 0x1 /* USCI A0 Control
Word 0 Register Hi */
sfrb(UCA0CTLW0_H, UCA0CTLW0_H_);
#define UCA0CTL1_ __MSP430_UCA0_BASE__ + 0x0 /* USCI A0 Control 1
Register */
sfrb(UCA0CTL1, UCA0CTL1_);
#define UCA0CTL0_ __MSP430_UCA0_BASE__ + 0x1 /* USCI A0 Control 0
Register */
sfrb(UCA0CTL0, UCA0CTL0_);
#define UCA0BRW_ __MSP430_UCA0_BASE__ + 0x6 /* USCI A0 Baud Rate
Control Word Register */
sfrw(UCA0BRW, UCA0BRW_);
#define UCA0BRW_L_ __MSP430_UCA0_BASE__ + 0x6 /* USCI A0 Baud Rate
Control Word Register Lo */
sfrb(UCA0BRW_L, UCA0BRW_L_);
#define UCA0BRW_H_ __MSP430_UCA0_BASE__ + 0x7 /* USCI A0 Baud Rate
Control Word Register Hi */
sfrb(UCA0BRW_H, UCA0BRW_H_);
#define UCA0BR0_ __MSP430_UCA0_BASE__ + 0x6 /* USCI A0 Baud Rate
Control 0 Register */
sfrb(UCA0BR0, UCA0BR0_);
#define UCA0BR1_ __MSP430_UCA0_BASE__ + 0x7 /* USCI A0 Baud Rate
Control 1 Register */
sfrb(UCA0BR1, UCA0BR1_);
#define UCA0MCTL_ __MSP430_UCA0_BASE__ + 0x8 /* USCI A0 Modulation
Control Register */
sfrb(UCA0MCTL, UCA0MCTL_);
#define UCA0STAT_ __MSP430_UCA0_BASE__ + 0xa /* USCI A0 Status
Register */
sfrb(UCA0STAT, UCA0STAT_);
#define UCA0RXBUF_ __MSP430_UCA0_BASE__ + 0xc /* USCI A0 Receive
Buffer Register */
sfrb(UCA0RXBUF, UCA0RXBUF_);
#define UCA0TXBUF_ __MSP430_UCA0_BASE__ + 0xe /* USCI A0 Transmit
Buffer Register */
sfrb(UCA0TXBUF, UCA0TXBUF_);
#define UCA0ABCTL_ __MSP430_UCA0_BASE__ + 0x10 /* USCI A0 Auto Baud
Rate Control Register */
sfrb(UCA0ABCTL, UCA0ABCTL_);
#define UCA0IRCTL_ __MSP430_UCA0_BASE__ + 0x12 /* USCI A0 IrDA
Control Register */
sfrw(UCA0IRCTL, UCA0IRCTL_);
#define UCA0IRCTL_L_ __MSP430_UCA0_BASE__ + 0x12 /* USCI A0 IrDA
Control Register Lo */
sfrb(UCA0IRCTL_L, UCA0IRCTL_L_);
#define UCA0IRCTL_H_ __MSP430_UCA0_BASE__ + 0x13 /* USCI A0 IrDA
Control Register Hi */
sfrb(UCA0IRCTL_H, UCA0IRCTL_H_);
#define UCA0IRTCTL_ __MSP430_UCA0_BASE__ + 0x12 /* USCI A0 IrDA
Transmit Register */
sfrb(UCA0IRTCTL, UCA0IRTCTL_);
#define UCA0IRRCTL_ __MSP430_UCA0_BASE__ + 0x13 /* USCI A0 IrDA
Receive Register */
sfrb(UCA0IRRCTL, UCA0IRRCTL_);
#define UCA0ICTL_ __MSP430_UCA0_BASE__ + 0x1c /* USCI A0 Interrupt
Control Register */
sfrw(UCA0ICTL, UCA0ICTL_);
#define UCA0ICTL_L_ __MSP430_UCA0_BASE__ + 0x1c /* USCI A0 Interrupt
Control Register Lo */
sfrb(UCA0ICTL_L, UCA0ICTL_L_);
#define UCA0ICTL_H_ __MSP430_UCA0_BASE__ + 0x1d /* USCI A0 Interrupt
Control Register Hi */
sfrb(UCA0ICTL_H, UCA0ICTL_H_);
#define UCA0IE_ __MSP430_UCA0_BASE__ + 0x1c /* USCI A0 Interrupt
Enable Register */
sfrb(UCA0IE, UCA0IE_);
#define UCA0IFG_ __MSP430_UCA0_BASE__ + 0x1d /* USCI A0 Interrupt
Flag Register */
sfrb(UCA0IFG, UCA0IFG_);
#define UCA0IV_ __MSP430_UCA0_BASE__ + 0x1e /* USCI A0 Interrupt
Vector Register */
sfrw(UCA0IV, UCA0IV_);
#define UCA0IV_L_ __MSP430_UCA0_BASE__ + 0x1e /* USCI A0 Interrupt
Vector Register Lo */
sfrb(UCA0IV_L, UCA0IV_L_);
#define UCA0IV_H_ __MSP430_UCA0_BASE__ + 0x1f /* USCI A0 Interrupt
Vector Register Hi */
sfrb(UCA0IV_H, UCA0IV_H_);
/* USCI B0 base address */
#if !defined(__MSP430_UCB0_BASE__)
#define __MSP430_UCB0_BASE__ 0x5e0
#endif
#define UCB0CTLW0_ __MSP430_UCB0_BASE__ + 0x0 /* USCI B0 Control
Word 0 Register */
sfrw(UCB0CTLW0, UCB0CTLW0_);
#define UCB0CTLW0_L_ __MSP430_UCB0_BASE__ + 0x0 /* USCI B0 Control
Word 0 Register Lo */
sfrb(UCB0CTLW0_L, UCB0CTLW0_L_);
#define UCB0CTLW0_H_ __MSP430_UCB0_BASE__ + 0x1 /* USCI B0 Control
Word 0 Register Hi */
sfrb(UCB0CTLW0_H, UCB0CTLW0_H_);
#define UCB0CTL1_ __MSP430_UCB0_BASE__ + 0x0 /* USCI B0 Control 1
Register */
sfrb(UCB0CTL1, UCB0CTL1_);
#define UCB0CTL0_ __MSP430_UCB0_BASE__ + 0x1 /* USCI B0 Control 0
Register */
sfrb(UCB0CTL0, UCB0CTL0_);
#define UCB0BRW_ __MSP430_UCB0_BASE__ + 0x6 /* USCI B0 Bit Rate
Control Word Register */
sfrw(UCB0BRW, UCB0BRW_);
#define UCB0BRW_L_ __MSP430_UCB0_BASE__ + 0x6 /* USCI B0 Bit Rate
Control Word Register Lo */
sfrb(UCB0BRW_L, UCB0BRW_L_);
#define UCB0BRW_H_ __MSP430_UCB0_BASE__ + 0x7 /* USCI B0 Bit Rate
Control Word Register Hi */
sfrb(UCB0BRW_H, UCB0BRW_H_);
#define UCB0BR0_ __MSP430_UCB0_BASE__ + 0x6 /* USCI B0 Bit Rate
Control 0 Register */
sfrb(UCB0BR0, UCB0BR0_);
#define UCB0BR1_ __MSP430_UCB0_BASE__ + 0x7 /* USCI B0 Bit Rate
Control 1 Register */
sfrb(UCB0BR1, UCB0BR1_);
#define UCB0STAT_ __MSP430_UCB0_BASE__ + 0xa /* USCI B0 Status
Register */
sfrb(UCB0STAT, UCB0STAT_);
#define UCB0RXBUF_ __MSP430_UCB0_BASE__ + 0xc /* USCI B0 Receive
Buffer Register */
sfrb(UCB0RXBUF, UCB0RXBUF_);
#define UCB0TXBUF_ __MSP430_UCB0_BASE__ + 0xe /* USCI B0 Transmit
Buffer Register */
sfrb(UCB0TXBUF, UCB0TXBUF_);
#define UCB0I2COA_ __MSP430_UCB0_BASE__ + 0x10 /* USCI B0 I²C Own
Address Register */
sfrw(UCB0I2COA, UCB0I2COA_);
#define UCB0I2COA_L_ __MSP430_UCB0_BASE__ + 0x10 /* USCI B0 I²C Own
Address Register Lo */
sfrb(UCB0I2COA_L, UCB0I2COA_L_);
#define UCB0I2COA_H_ __MSP430_UCB0_BASE__ + 0x11 /* USCI B0 I²C Own
Address Register Hi */
sfrb(UCB0I2COA_H, UCB0I2COA_H_);
#define UCB0I2CSA_ __MSP430_UCB0_BASE__ + 0x12 /* USCI B0 I²C Slave
Address Register */
sfrw(UCB0I2CSA, UCB0I2CSA_);
#define UCB0I2CSA_L_ __MSP430_UCB0_BASE__ + 0x12 /* USCI B0 I²C Slave
Address Register Lo */
sfrb(UCB0I2CSA_L, UCB0I2CSA_L_);
#define UCB0I2CSA_H_ __MSP430_UCB0_BASE__ + 0x13 /* USCI B0 I²C Slave
Address Register Hi */
sfrb(UCB0I2CSA_H, UCB0I2CSA_H_);
#define UCB0ICTL_ __MSP430_UCB0_BASE__ + 0x1c /* USCI B0 Interrupt
Control Register */
sfrw(UCB0ICTL, UCB0ICTL_);
#define UCB0ICTL_L_ __MSP430_UCB0_BASE__ + 0x1c /* USCI B0 Interrupt
Control Register Lo */
sfrb(UCB0ICTL_L, UCB0ICTL_L_);
#define UCB0ICTL_H_ __MSP430_UCB0_BASE__ + 0x1d /* USCI B0 Interrupt
Control Register Hi */
sfrb(UCB0ICTL_H, UCB0ICTL_H_);
#define UCB0IE_ __MSP430_UCB0_BASE__ + 0x1c /* USCI B0 Interrupt
Enable Register */
sfrb(UCB0IE, UCB0IE_);
#define UCB0IFG_ __MSP430_UCB0_BASE__ + 0x1d /* USCI B0 Interrupt
Flag Register */
sfrb(UCB0IFG, UCB0IFG_);
#define UCB0IV_ __MSP430_UCB0_BASE__ + 0x1e /* USCI B0 Interrupt
Vector Register */
sfrw(UCB0IV, UCB0IV_);
#define UCB0IV_L_ __MSP430_UCB0_BASE__ + 0x1e /* USCI B0 Interrupt
Vector Register Lo */
sfrb(UCB0IV_L, UCB0IV_L_);
#define UCB0IV_H_ __MSP430_UCB0_BASE__ + 0x1f /* USCI B0 Interrupt
Vector Register Hi */
sfrb(UCB0IV_H, UCB0IV_H_);
#endif /* __MSP430_HAS_USCI0_5__ */
#if defined(__MSP430_HAS_USCI1_5__)
/* USCI A1 base address */
#if !defined(__MSP430_UCA1_BASE__)
#define __MSP430_UCA1_BASE__ 0x600
#endif
#define UCA1CTLW0_ __MSP430_UCA1_BASE__ + 0x0 /* USCI A1 Control
Word 0 Register */
sfrw(UCA1CTLW0, UCA1CTLW0_);
#define UCA1CTLW0_L_ __MSP430_UCA1_BASE__ + 0x0 /* USCI A1 Control
Word 0 Register Lo */
sfrb(UCA1CTLW0_L, UCA1CTLW0_L_);
#define UCA1CTLW0_H_ __MSP430_UCA1_BASE__ + 0x1 /* USCI A1 Control
Word 0 Register Hi */
sfrb(UCA1CTLW0_H, UCA1CTLW0_H_);
#define UCA1CTL1_ __MSP430_UCA1_BASE__ + 0x0 /* USCI A1 Control 1
Register */
sfrb(UCA1CTL1, UCA1CTL1_);
#define UCA1CTL0_ __MSP430_UCA1_BASE__ + 0x1 /* USCI A1 Control 0
Register */
sfrb(UCA1CTL0, UCA1CTL0_);
#define UCA1BRW_ __MSP430_UCA1_BASE__ + 0x6 /* USCI A1 Baud Rate
Control Word Register */
sfrw(UCA1BRW, UCA1BRW_);
#define UCA1BRW_L_ __MSP430_UCA1_BASE__ + 0x6 /* USCI A1 Baud Rate
Control Word Register Lo */
sfrb(UCA1BRW_L, UCA1BRW_L_);
#define UCA1BRW_H_ __MSP430_UCA1_BASE__ + 0x7 /* USCI A1 Baud Rate
Control Word Register Hi */
sfrb(UCA1BRW_H, UCA1BRW_H_);
#define UCA1BR0_ __MSP430_UCA1_BASE__ + 0x6 /* USCI A1 Baud Rate
Control 0 Register */
sfrb(UCA1BR0, UCA1BR0_);
#define UCA1BR1_ __MSP430_UCA1_BASE__ + 0x7 /* USCI A1 Baud Rate
Control 1 Register */
sfrb(UCA1BR1, UCA1BR1_);
#define UCA1MCTL_ __MSP430_UCA1_BASE__ + 0x8 /* USCI A1 Modulation
Control Register */
sfrb(UCA1MCTL, UCA1MCTL_);
#define UCA1STAT_ __MSP430_UCA1_BASE__ + 0xa /* USCI A1 Status
Register */
sfrb(UCA1STAT, UCA1STAT_);
#define UCA1RXBUF_ __MSP430_UCA1_BASE__ + 0xc /* USCI A1 Receive
Buffer Register */
sfrb(UCA1RXBUF, UCA1RXBUF_);
#define UCA1TXBUF_ __MSP430_UCA1_BASE__ + 0xe /* USCI A1 Transmit
Buffer Register */
sfrb(UCA1TXBUF, UCA1TXBUF_);
#define UCA1ABCTL_ __MSP430_UCA1_BASE__ + 0x10 /* USCI A1 Auto Baud
Rate Control Register */
sfrb(UCA1ABCTL, UCA1ABCTL_);
#define UCA1IRCTL_ __MSP430_UCA1_BASE__ + 0x12 /* USCI A1 IrDA
Control Register */
sfrw(UCA1IRCTL, UCA1IRCTL_);
#define UCA1IRCTL_L_ __MSP430_UCA1_BASE__ + 0x12 /* USCI A1 IrDA
Control Register Lo */
sfrb(UCA1IRCTL_L, UCA1IRCTL_L_);
#define UCA1IRCTL_H_ __MSP430_UCA1_BASE__ + 0x13 /* USCI A1 IrDA
Control Register Hi */
sfrb(UCA1IRCTL_H, UCA1IRCTL_H_);
#define UCA1IRTCTL_ __MSP430_UCA1_BASE__ + 0x12 /* USCI A1 IrDA
Transmit Register */
sfrb(UCA1IRTCTL, UCA1IRTCTL_);
#define UCA1IRRCTL_ __MSP430_UCA1_BASE__ + 0x13 /* USCI A1 IrDA
Receive Register */
sfrb(UCA1IRRCTL, UCA1IRRCTL_);
#define UCA1ICTL_ __MSP430_UCA1_BASE__ + 0x1c /* USCI A1 Interrupt
Control Register */
sfrw(UCA1ICTL, UCA1ICTL_);
#define UCA1ICTL_L_ __MSP430_UCA1_BASE__ + 0x1c /* USCI A1 Interrupt
Control Register Lo */
sfrb(UCA1ICTL_L, UCA1ICTL_L_);
#define UCA1ICTL_H_ __MSP430_UCA1_BASE__ + 0x1d /* USCI A1 Interrupt
Control Register Hi */
sfrb(UCA1ICTL_H, UCA1ICTL_H_);
#define UCA1IE_ __MSP430_UCA1_BASE__ + 0x1c /* USCI A1 Interrupt
Enable Register */
sfrb(UCA1IE, UCA1IE_);
#define UCA1IFG_ __MSP430_UCA1_BASE__ + 0x1d /* USCI A1 Interrupt
Flag Register */
sfrb(UCA1IFG, UCA1IFG_);
#define UCA1IV_ __MSP430_UCA1_BASE__ + 0x1e /* USCI A1 Interrupt
Vector Register */
sfrw(UCA1IV, UCA1IV_);
#define UCA1IV_L_ __MSP430_UCA1_BASE__ + 0x1e /* USCI A1 Interrupt
Vector Register Lo */
sfrb(UCA1IV_L, UCA1IV_L_);
#define UCA1IV_H_ __MSP430_UCA1_BASE__ + 0x1f /* USCI A1 Interrupt
Vector Register Hi */
sfrb(UCA1IV_H, UCA1IV_H_);
/* USCI B1 base address */
#if !defined(__MSP430_UCB1_BASE__)
#define __MSP430_UCB1_BASE__ 0x620
#endif
#define UCB1CTLW0_ __MSP430_UCB1_BASE__ + 0x0 /* USCI B1 Control
Word 0 Register */
sfrw(UCB1CTLW0, UCB1CTLW0_);
#define UCB1CTLW0_L_ __MSP430_UCB1_BASE__ + 0x0 /* USCI B1 Control
Word 0 Register Lo */
sfrb(UCB1CTLW0_L, UCB1CTLW0_L_);
#define UCB1CTLW0_H_ __MSP430_UCB1_BASE__ + 0x1 /* USCI B1 Control
Word 0 Register Hi */
sfrb(UCB1CTLW0_H, UCB1CTLW0_H_);
#define UCB1CTL1_ __MSP430_UCB1_BASE__ + 0x0 /* USCI B1 Control 1
Register */
sfrb(UCB1CTL1, UCB1CTL1_);
#define UCB1CTL0_ __MSP430_UCB1_BASE__ + 0x1 /* USCI B1 Control 0
Register */
sfrb(UCB1CTL0, UCB1CTL0_);
#define UCB1BRW_ __MSP430_UCB1_BASE__ + 0x6 /* USCI B1 Bit Rate
Control Word Register */
sfrw(UCB1BRW, UCB1BRW_);
#define UCB1BRW_L_ __MSP430_UCB1_BASE__ + 0x6 /* USCI B1 Bit Rate
Control Word Register Lo */
sfrb(UCB1BRW_L, UCB1BRW_L_);
#define UCB1BRW_H_ __MSP430_UCB1_BASE__ + 0x7 /* USCI B1 Bit Rate
Control Word Register Hi */
sfrb(UCB1BRW_H, UCB1BRW_H_);
#define UCB1BR0_ __MSP430_UCB1_BASE__ + 0x6 /* USCI B1 Bit Rate
Control 0 Register */
sfrb(UCB1BR0, UCB1BR0_);
#define UCB1BR1_ __MSP430_UCB1_BASE__ + 0x7 /* USCI B1 Bit Rate
Control 1 Register */
sfrb(UCB1BR1, UCB1BR1_);
#define UCB1STAT_ __MSP430_UCB1_BASE__ + 0xa /* USCI B1 Status
Register */
sfrb(UCB1STAT, UCB1STAT_);
#define UCB1RXBUF_ __MSP430_UCB1_BASE__ + 0xc /* USCI B1 Receive
Buffer Register */
sfrb(UCB1RXBUF, UCB1RXBUF_);
#define UCB1TXBUF_ __MSP430_UCB1_BASE__ + 0xe /* USCI B1 Transmit
Buffer Register */
sfrb(UCB1TXBUF, UCB1TXBUF_);
#define UCB1I2COA_ __MSP430_UCB1_BASE__ + 0x10 /* USCI B1 I²C Own
Address Register */
sfrw(UCB1I2COA, UCB1I2COA_);
#define UCB1I2COA_L_ __MSP430_UCB1_BASE__ + 0x10 /* USCI B1 I²C Own
Address Register Lo */
sfrb(UCB1I2COA_L, UCB1I2COA_L_);
#define UCB1I2COA_H_ __MSP430_UCB1_BASE__ + 0x11 /* USCI B1 I²C Own
Address Register Hi */
sfrb(UCB1I2COA_H, UCB1I2COA_H_);
#define UCB1I2CSA_ __MSP430_UCB1_BASE__ + 0x12 /* USCI B1 I²C Slave
Address Register */
sfrw(UCB1I2CSA, UCB1I2CSA_);
#define UCB1I2CSA_L_ __MSP430_UCB1_BASE__ + 0x12 /* USCI B1 I²C Slave
Address Register Lo */
sfrb(UCB1I2CSA_L, UCB1I2CSA_L_);
#define UCB1I2CSA_H_ __MSP430_UCB1_BASE__ + 0x13 /* USCI B1 I²C Slave
Address Register Hi */
sfrb(UCB1I2CSA_H, UCB1I2CSA_H_);
#define UCB1ICTL_ __MSP430_UCB1_BASE__ + 0x1c /* USCI B1 Interrupt
Control Register */
sfrw(UCB1ICTL, UCB1ICTL_);
#define UCB1ICTL_L_ __MSP430_UCB1_BASE__ + 0x1c /* USCI B1 Interrupt
Control Register Lo */
sfrb(UCB1ICTL_L, UCB1ICTL_L_);
#define UCB1ICTL_H_ __MSP430_UCB1_BASE__ + 0x1d /* USCI B1 Interrupt
Control Register Hi */
sfrb(UCB1ICTL_H, UCB1ICTL_H_);
#define UCB1IE_ __MSP430_UCB1_BASE__ + 0x1c /* USCI B1 Interrupt
Enable Register */
sfrb(UCB1IE, UCB1IE_);
#define UCB1IFG_ __MSP430_UCB1_BASE__ + 0x1d /* USCI B1 Interrupt
Flag Register */
sfrb(UCB1IFG, UCB1IFG_);
#define UCB1IV_ __MSP430_UCB1_BASE__ + 0x1e /* USCI B1 Interrupt
Vector Register */
sfrw(UCB1IV, UCB1IV_);
#define UCB1IV_L_ __MSP430_UCB1_BASE__ + 0x1e /* USCI B1 Interrupt
Vector Register Lo */
sfrb(UCB1IV_L, UCB1IV_L_);
#define UCB1IV_H_ __MSP430_UCB1_BASE__ + 0x1f /* USCI B1 Interrupt
Vector Register Hi */
sfrb(UCB1IV_H, UCB1IV_H_);
#endif /* __MSP430_HAS_USCI1_5__ */
#if defined(__MSP430_HAS_USCI2_5__)
/* USCI A2 base address */
#if !defined(__MSP430_UCA2_BASE__)
#define __MSP430_UCA2_BASE__ 0x640
#endif
#define UCA2CTLW0_ __MSP430_UCA2_BASE__ + 0x0 /* USCI A2 Control
Word 0 Register */
sfrw(UCA2CTLW0, UCA2CTLW0_);
#define UCA2CTLW0_L_ __MSP430_UCA2_BASE__ + 0x0 /* USCI A2 Control
Word 0 Register Lo */
sfrb(UCA2CTLW0_L, UCA2CTLW0_L_);
#define UCA2CTLW0_H_ __MSP430_UCA2_BASE__ + 0x1 /* USCI A2 Control
Word 0 Register Hi */
sfrb(UCA2CTLW0_H, UCA2CTLW0_H_);
#define UCA2CTL1_ __MSP430_UCA2_BASE__ + 0x0 /* USCI A2 Control 1
Register */
sfrb(UCA2CTL1, UCA2CTL1_);
#define UCA2CTL0_ __MSP430_UCA2_BASE__ + 0x1 /* USCI A2 Control 0
Register */
sfrb(UCA2CTL0, UCA2CTL0_);
#define UCA2BRW_ __MSP430_UCA2_BASE__ + 0x6 /* USCI A2 Baud Rate
Control Word Register */
sfrw(UCA2BRW, UCA2BRW_);
#define UCA2BRW_L_ __MSP430_UCA2_BASE__ + 0x6 /* USCI A2 Baud Rate
Control Word Register Lo */
sfrb(UCA2BRW_L, UCA2BRW_L_);
#define UCA2BRW_H_ __MSP430_UCA2_BASE__ + 0x7 /* USCI A2 Baud Rate
Control Word Register Hi */
sfrb(UCA2BRW_H, UCA2BRW_H_);
#define UCA2BR0_ __MSP430_UCA2_BASE__ + 0x6 /* USCI A2 Baud Rate
Control 0 Register */
sfrb(UCA2BR0, UCA2BR0_);
#define UCA2BR1_ __MSP430_UCA2_BASE__ + 0x7 /* USCI A2 Baud Rate
Control 1 Register */
sfrb(UCA2BR1, UCA2BR1_);
#define UCA2MCTL_ __MSP430_UCA2_BASE__ + 0x8 /* USCI A2 Modulation
Control Register */
sfrb(UCA2MCTL, UCA2MCTL_);
#define UCA2STAT_ __MSP430_UCA2_BASE__ + 0xa /* USCI A2 Status
Register */
sfrb(UCA2STAT, UCA2STAT_);
#define UCA2RXBUF_ __MSP430_UCA2_BASE__ + 0xc /* USCI A2 Receive
Buffer Register */
sfrb(UCA2RXBUF, UCA2RXBUF_);
#define UCA2TXBUF_ __MSP430_UCA2_BASE__ + 0xe /* USCI A2 Transmit
Buffer Register */
sfrb(UCA2TXBUF, UCA2TXBUF_);
#define UCA2ABCTL_ __MSP430_UCA2_BASE__ + 0x10 /* USCI A2 Auto Baud
Rate Control Register */
sfrb(UCA2ABCTL, UCA2ABCTL_);
#define UCA2IRCTL_ __MSP430_UCA2_BASE__ + 0x12 /* USCI A2 IrDA
Control Register */
sfrw(UCA2IRCTL, UCA2IRCTL_);
#define UCA2IRCTL_L_ __MSP430_UCA2_BASE__ + 0x12 /* USCI A2 IrDA
Control Register Lo */
sfrb(UCA2IRCTL_L, UCA2IRCTL_L_);
#define UCA2IRCTL_H_ __MSP430_UCA2_BASE__ + 0x13 /* USCI A2 IrDA
Control Register Hi */
sfrb(UCA2IRCTL_H, UCA2IRCTL_H_);
#define UCA2IRTCTL_ __MSP430_UCA2_BASE__ + 0x12 /* USCI A2 IrDA
Transmit Register */
sfrb(UCA2IRTCTL, UCA2IRTCTL_);
#define UCA2IRRCTL_ __MSP430_UCA2_BASE__ + 0x13 /* USCI A2 IrDA
Receive Register */
sfrb(UCA2IRRCTL, UCA2IRRCTL_);
#define UCA2ICTL_ __MSP430_UCA2_BASE__ + 0x1c /* USCI A2 Interrupt
Control Register */
sfrw(UCA2ICTL, UCA2ICTL_);
#define UCA2ICTL_L_ __MSP430_UCA2_BASE__ + 0x1c /* USCI A2 Interrupt
Control Register Lo */
sfrb(UCA2ICTL_L, UCA2ICTL_L_);
#define UCA2ICTL_H_ __MSP430_UCA2_BASE__ + 0x1d /* USCI A2 Interrupt
Control Register Hi */
sfrb(UCA2ICTL_H, UCA2ICTL_H_);
#define UCA2IE_ __MSP430_UCA2_BASE__ + 0x1c /* USCI A2 Interrupt
Enable Register */
sfrb(UCA2IE, UCA2IE_);
#define UCA2IFG_ __MSP430_UCA2_BASE__ + 0x1d /* USCI A2 Interrupt
Flag Register */
sfrb(UCA2IFG, UCA2IFG_);
#define UCA2IV_ __MSP430_UCA2_BASE__ + 0x1e /* USCI A2 Interrupt
Vector Register */
sfrw(UCA2IV, UCA2IV_);
#define UCA2IV_L_ __MSP430_UCA2_BASE__ + 0x1e /* USCI A2 Interrupt
Vector Register Lo */
sfrb(UCA2IV_L, UCA2IV_L_);
#define UCA2IV_H_ __MSP430_UCA2_BASE__ + 0x1f /* USCI A2 Interrupt
Vector Register Hi */
sfrb(UCA2IV_H, UCA2IV_H_);
/* USCI B2 base address */
#if !defined(__MSP430_UCB2_BASE__)
#define __MSP430_UCB2_BASE__ 0x660
#endif
#define UCB2CTLW0_ __MSP430_UCB2_BASE__ + 0x0 /* USCI B2 Control
Word 0 Register */
sfrw(UCB2CTLW0, UCB2CTLW0_);
#define UCB2CTLW0_L_ __MSP430_UCB2_BASE__ + 0x0 /* USCI B2 Control
Word 0 Register Lo */
sfrb(UCB2CTLW0_L, UCB2CTLW0_L_);
#define UCB2CTLW0_H_ __MSP430_UCB2_BASE__ + 0x1 /* USCI B2 Control
Word 0 Register Hi */
sfrb(UCB2CTLW0_H, UCB2CTLW0_H_);
#define UCB2CTL1_ __MSP430_UCB2_BASE__ + 0x0 /* USCI B2 Control 1
Register */
sfrb(UCB2CTL1, UCB2CTL1_);
#define UCB2CTL0_ __MSP430_UCB2_BASE__ + 0x1 /* USCI B2 Control 0
Register */
sfrb(UCB2CTL0, UCB2CTL0_);
#define UCB2BRW_ __MSP430_UCB2_BASE__ + 0x6 /* USCI B2 Bit Rate
Control Word Register */
sfrw(UCB2BRW, UCB2BRW_);
#define UCB2BRW_L_ __MSP430_UCB2_BASE__ + 0x6 /* USCI B2 Bit Rate
Control Word Register Lo */
sfrb(UCB2BRW_L, UCB2BRW_L_);
#define UCB2BRW_H_ __MSP430_UCB2_BASE__ + 0x7 /* USCI B2 Bit Rate
Control Word Register Hi */
sfrb(UCB2BRW_H, UCB2BRW_H_);
#define UCB2BR0_ __MSP430_UCB2_BASE__ + 0x6 /* USCI B2 Bit Rate
Control 0 Register */
sfrb(UCB2BR0, UCB2BR0_);
#define UCB2BR1_ __MSP430_UCB2_BASE__ + 0x7 /* USCI B2 Bit Rate
Control 1 Register */
sfrb(UCB2BR1, UCB2BR1_);
#define UCB2STAT_ __MSP430_UCB2_BASE__ + 0xa /* USCI B2 Status
Register */
sfrb(UCB2STAT, UCB2STAT_);
#define UCB2RXBUF_ __MSP430_UCB2_BASE__ + 0xc /* USCI B2 Receive
Buffer Register */
sfrb(UCB2RXBUF, UCB2RXBUF_);
#define UCB2TXBUF_ __MSP430_UCB2_BASE__ + 0xe /* USCI B2 Transmit
Buffer Register */
sfrb(UCB2TXBUF, UCB2TXBUF_);
#define UCB2I2COA_ __MSP430_UCB2_BASE__ + 0x10 /* USCI B2 I²C Own
Address Register */
sfrw(UCB2I2COA, UCB2I2COA_);
#define UCB2I2COA_L_ __MSP430_UCB2_BASE__ + 0x10 /* USCI B2 I²C Own
Address Register Lo */
sfrb(UCB2I2COA_L, UCB2I2COA_L_);
#define UCB2I2COA_H_ __MSP430_UCB2_BASE__ + 0x11 /* USCI B2 I²C Own
Address Register Hi */
sfrb(UCB2I2COA_H, UCB2I2COA_H_);
#define UCB2I2CSA_ __MSP430_UCB2_BASE__ + 0x12 /* USCI B2 I²C Slave
Address Register */
sfrw(UCB2I2CSA, UCB2I2CSA_);
#define UCB2I2CSA_L_ __MSP430_UCB2_BASE__ + 0x12 /* USCI B2 I²C Slave
Address Register Lo */
sfrb(UCB2I2CSA_L, UCB2I2CSA_L_);
#define UCB2I2CSA_H_ __MSP430_UCB2_BASE__ + 0x13 /* USCI B2 I²C Slave
Address Register Hi */
sfrb(UCB2I2CSA_H, UCB2I2CSA_H_);
#define UCB2ICTL_ __MSP430_UCB2_BASE__ + 0x1c /* USCI B2 Interrupt
Control Register */
sfrw(UCB2ICTL, UCB2ICTL_);
#define UCB2ICTL_L_ __MSP430_UCB2_BASE__ + 0x1c /* USCI B2 Interrupt
Control Register Lo */
sfrb(UCB2ICTL_L, UCB2ICTL_L_);
#define UCB2ICTL_H_ __MSP430_UCB2_BASE__ + 0x1d /* USCI B2 Interrupt
Control Register Hi */
sfrb(UCB2ICTL_H, UCB2ICTL_H_);
#define UCB2IE_ __MSP430_UCB2_BASE__ + 0x1c /* USCI B2 Interrupt
Enable Register */
sfrb(UCB2IE, UCB2IE_);
#define UCB2IFG_ __MSP430_UCB2_BASE__ + 0x1d /* USCI B2 Interrupt
Flag Register */
sfrb(UCB2IFG, UCB2IFG_);
#define UCB2IV_ __MSP430_UCB2_BASE__ + 0x1e /* USCI B2 Interrupt
Vector Register */
sfrw(UCB2IV, UCB2IV_);
#define UCB2IV_L_ __MSP430_UCB2_BASE__ + 0x1e /* USCI B2 Interrupt
Vector Register Lo */
sfrb(UCB2IV_L, UCB2IV_L_);
#define UCB2IV_H_ __MSP430_UCB2_BASE__ + 0x1f /* USCI B2 Interrupt
Vector Register Hi */
sfrb(UCB2IV_H, UCB2IV_H_);
#endif /* __MSP430_HAS_USCI2_5__ */
#if defined(__MSP430_HAS_USCI3_5__)
/* USCI A3 base address */
#if !defined(__MSP430_UCA3_BASE__)
#define __MSP430_UCA3_BASE__ 0x680
#endif
#define UCA3CTLW0_ __MSP430_UCA3_BASE__ + 0x0 /* USCI A3 Control
Word 0 Register */
sfrw(UCA3CTLW0, UCA3CTLW0_);
#define UCA3CTLW0_L_ __MSP430_UCA3_BASE__ + 0x0 /* USCI A3 Control
Word 0 Register Lo */
sfrb(UCA3CTLW0_L, UCA3CTLW0_L_);
#define UCA3CTLW0_H_ __MSP430_UCA3_BASE__ + 0x1 /* USCI A3 Control
Word 0 Register Hi */
sfrb(UCA3CTLW0_H, UCA3CTLW0_H_);
#define UCA3CTL1_ __MSP430_UCA3_BASE__ + 0x0 /* USCI A3 Control 1
Register */
sfrb(UCA3CTL1, UCA3CTL1_);
#define UCA3CTL0_ __MSP430_UCA3_BASE__ + 0x1 /* USCI A3 Control 0
Register */
sfrb(UCA3CTL0, UCA3CTL0_);
#define UCA3BRW_ __MSP430_UCA3_BASE__ + 0x6 /* USCI A3 Baud Rate
Control Word Register */
sfrw(UCA3BRW, UCA3BRW_);
#define UCA3BRW_L_ __MSP430_UCA3_BASE__ + 0x6 /* USCI A3 Baud Rate
Control Word Register Lo */
sfrb(UCA3BRW_L, UCA3BRW_L_);
#define UCA3BRW_H_ __MSP430_UCA3_BASE__ + 0x7 /* USCI A3 Baud Rate
Control Word Register Hi */
sfrb(UCA3BRW_H, UCA3BRW_H_);
#define UCA3BR0_ __MSP430_UCA3_BASE__ + 0x6 /* USCI A3 Baud Rate
Control 0 Register */
sfrb(UCA3BR0, UCA3BR0_);
#define UCA3BR1_ __MSP430_UCA3_BASE__ + 0x7 /* USCI A3 Baud Rate
Control 1 Register */
sfrb(UCA3BR1, UCA3BR1_);
#define UCA3MCTL_ __MSP430_UCA3_BASE__ + 0x8 /* USCI A3 Modulation
Control Register */
sfrb(UCA3MCTL, UCA3MCTL_);
#define UCA3STAT_ __MSP430_UCA3_BASE__ + 0xa /* USCI A3 Status
Register */
sfrb(UCA3STAT, UCA3STAT_);
#define UCA3RXBUF_ __MSP430_UCA3_BASE__ + 0xc /* USCI A3 Receive
Buffer Register */
sfrb(UCA3RXBUF, UCA3RXBUF_);
#define UCA3TXBUF_ __MSP430_UCA3_BASE__ + 0xe /* USCI A3 Transmit
Buffer Register */
sfrb(UCA3TXBUF, UCA3TXBUF_);
#define UCA3ABCTL_ __MSP430_UCA3_BASE__ + 0x10 /* USCI A3 Auto Baud
Rate Control Register */
sfrb(UCA3ABCTL, UCA3ABCTL_);
#define UCA3IRCTL_ __MSP430_UCA3_BASE__ + 0x12 /* USCI A3 IrDA
Control Register */
sfrw(UCA3IRCTL, UCA3IRCTL_);
#define UCA3IRCTL_L_ __MSP430_UCA3_BASE__ + 0x12 /* USCI A3 IrDA
Control Register Lo */
sfrb(UCA3IRCTL_L, UCA3IRCTL_L_);
#define UCA3IRCTL_H_ __MSP430_UCA3_BASE__ + 0x13 /* USCI A3 IrDA
Control Register Hi */
sfrb(UCA3IRCTL_H, UCA3IRCTL_H_);
#define UCA3IRTCTL_ __MSP430_UCA3_BASE__ + 0x12 /* USCI A3 IrDA
Transmit Register */
sfrb(UCA3IRTCTL, UCA3IRTCTL_);
#define UCA3IRRCTL_ __MSP430_UCA3_BASE__ + 0x13 /* USCI A3 IrDA
Receive Register */
sfrb(UCA3IRRCTL, UCA3IRRCTL_);
#define UCA3ICTL_ __MSP430_UCA3_BASE__ + 0x1c /* USCI A3 Interrupt
Control Register */
sfrw(UCA3ICTL, UCA3ICTL_);
#define UCA3ICTL_L_ __MSP430_UCA3_BASE__ + 0x1c /* USCI A3 Interrupt
Control Register Lo */
sfrb(UCA3ICTL_L, UCA3ICTL_L_);
#define UCA3ICTL_H_ __MSP430_UCA3_BASE__ + 0x1d /* USCI A3 Interrupt
Control Register Hi */
sfrb(UCA3ICTL_H, UCA3ICTL_H_);
#define UCA3IE_ __MSP430_UCA3_BASE__ + 0x1c /* USCI A3 Interrupt
Enable Register */
sfrb(UCA3IE, UCA3IE_);
#define UCA3IFG_ __MSP430_UCA3_BASE__ + 0x1d /* USCI A3 Interrupt
Flag Register */
sfrb(UCA3IFG, UCA3IFG_);
#define UCA3IV_ __MSP430_UCA3_BASE__ + 0x1e /* USCI A3 Interrupt
Vector Register */
sfrw(UCA3IV, UCA3IV_);
#define UCA3IV_L_ __MSP430_UCA3_BASE__ + 0x1e /* USCI A3 Interrupt
Vector Register Lo */
sfrb(UCA3IV_L, UCA3IV_L_);
#define UCA3IV_H_ __MSP430_UCA3_BASE__ + 0x1f /* USCI A3 Interrupt
Vector Register Hi */
sfrb(UCA3IV_H, UCA3IV_H_);
/* USCI B3 base address */
#if !defined(__MSP430_UCB3_BASE__)
#define __MSP430_UCB3_BASE__ 0x6a0
#endif
#define UCB3CTLW0_ __MSP430_UCB3_BASE__ + 0x0 /* USCI B3 Control
Word 0 Register */
sfrw(UCB3CTLW0, UCB3CTLW0_);
#define UCB3CTLW0_L_ __MSP430_UCB3_BASE__ + 0x0 /* USCI B3 Control
Word 0 Register Lo */
sfrb(UCB3CTLW0_L, UCB3CTLW0_L_);
#define UCB3CTLW0_H_ __MSP430_UCB3_BASE__ + 0x1 /* USCI B3 Control
Word 0 Register Hi */
sfrb(UCB3CTLW0_H, UCB3CTLW0_H_);
#define UCB3CTL1_ __MSP430_UCB3_BASE__ + 0x0 /* USCI B3 Control 1
Register */
sfrb(UCB3CTL1, UCB3CTL1_);
#define UCB3CTL0_ __MSP430_UCB3_BASE__ + 0x1 /* USCI B3 Control 0
Register */
sfrb(UCB3CTL0, UCB3CTL0_);
#define UCB3BRW_ __MSP430_UCB3_BASE__ + 0x6 /* USCI B3 Bit Rate
Control Word Register */
sfrw(UCB3BRW, UCB3BRW_);
#define UCB3BRW_L_ __MSP430_UCB3_BASE__ + 0x6 /* USCI B3 Bit Rate
Control Word Register Lo */
sfrb(UCB3BRW_L, UCB3BRW_L_);
#define UCB3BRW_H_ __MSP430_UCB3_BASE__ + 0x7 /* USCI B3 Bit Rate
Control Word Register Hi */
sfrb(UCB3BRW_H, UCB3BRW_H_);
#define UCB3BR0_ __MSP430_UCB3_BASE__ + 0x6 /* USCI B3 Bit Rate
Control 0 Register */
sfrb(UCB3BR0, UCB3BR0_);
#define UCB3BR1_ __MSP430_UCB3_BASE__ + 0x7 /* USCI B3 Bit Rate
Control 1 Register */
sfrb(UCB3BR1, UCB3BR1_);
#define UCB3STAT_ __MSP430_UCB3_BASE__ + 0xa /* USCI B3 Status
Register */
sfrb(UCB3STAT, UCB3STAT_);
#define UCB3RXBUF_ __MSP430_UCB3_BASE__ + 0xc /* USCI B3 Receive
Buffer Register */
sfrb(UCB3RXBUF, UCB3RXBUF_);
#define UCB3TXBUF_ __MSP430_UCB3_BASE__ + 0xe /* USCI B3 Transmit
Buffer Register */
sfrb(UCB3TXBUF, UCB3TXBUF_);
#define UCB3I2COA_ __MSP430_UCB3_BASE__ + 0x10 /* USCI B3 I²C Own
Address Register */
sfrw(UCB3I2COA, UCB3I2COA_);
#define UCB3I2COA_L_ __MSP430_UCB3_BASE__ + 0x10 /* USCI B3 I²C Own
Address Register Lo */
sfrb(UCB3I2COA_L, UCB3I2COA_L_);
#define UCB3I2COA_H_ __MSP430_UCB3_BASE__ + 0x11 /* USCI B3 I²C Own
Address Register Hi */
sfrb(UCB3I2COA_H, UCB3I2COA_H_);
#define UCB3I2CSA_ __MSP430_UCB3_BASE__ + 0x12 /* USCI B3 I²C Slave
Address Register */
sfrw(UCB3I2CSA, UCB3I2CSA_);
#define UCB3I2CSA_L_ __MSP430_UCB3_BASE__ + 0x12 /* USCI B3 I²C Slave
Address Register Lo */
sfrb(UCB3I2CSA_L, UCB3I2CSA_L_);
#define UCB3I2CSA_H_ __MSP430_UCB3_BASE__ + 0x13 /* USCI B3 I²C Slave
Address Register Hi */
sfrb(UCB3I2CSA_H, UCB3I2CSA_H_);
#define UCB3ICTL_ __MSP430_UCB3_BASE__ + 0x1c /* USCI B3 Interrupt
Control Register */
sfrw(UCB3ICTL, UCB3ICTL_);
#define UCB3ICTL_L_ __MSP430_UCB3_BASE__ + 0x1c /* USCI B3 Interrupt
Control Register Lo */
sfrb(UCB3ICTL_L, UCB3ICTL_L_);
#define UCB3ICTL_H_ __MSP430_UCB3_BASE__ + 0x1d /* USCI B3 Interrupt
Control Register Hi */
sfrb(UCB3ICTL_H, UCB3ICTL_H_);
#define UCB3IE_ __MSP430_UCB3_BASE__ + 0x1c /* USCI B3 Interrupt
Enable Register */
sfrb(UCB3IE, UCB3IE_);
#define UCB3IFG_ __MSP430_UCB3_BASE__ + 0x1d /* USCI B3 Interrupt
Flag Register */
sfrb(UCB3IFG, UCB3IFG_);
#define UCB3IV_ __MSP430_UCB3_BASE__ + 0x1e /* USCI B3 Interrupt
Vector Register */
sfrw(UCB3IV, UCB3IV_);
#define UCB3IV_L_ __MSP430_UCB3_BASE__ + 0x1e /* USCI B3 Interrupt
Vector Register Lo */
sfrb(UCB3IV_L, UCB3IV_L_);
#define UCB3IV_H_ __MSP430_UCB3_BASE__ + 0x1f /* USCI B3 Interrupt
Vector Register Hi */
sfrb(UCB3IV_H, UCB3IV_H_);
#endif /* __MSP430_HAS_USCI3_5__ */
#endif