I2C Module Operation

I2CIV, Interrupt Vector Generator

The I2C interrupt flags are prioritized and combined to source a single interrupt vector. The interrupt vector register I2CIV is used to determine which flag requested an interrupt. The highest priority enabled interrupt generates a number in the I2CIV register that can be evaluated or added to the program counter to automatically enter the appropriate software routine. Disabled I2C interrupts do not affect the I2CIV value. When RXDMAEN = 1, RXRDYIFG will not affect the I2CIV value and when TXDMAEN = 1, TXRDYIFG will not affect the I2CIV value, regardless of the state of RXRDYIE or TXRDYIE.

Any access, read or write, of the I2CIV register automatically resets the highest pending interrupt flag. If another interrupt flag is set, another interrupt is immediately generated after servicing the initial interrupt.

I2CIV Software Example

The following software example shows the recommended use of I2CIV. The I2CIV value is added to the PC to automatically jump to the appropriate routine.

I2C_ISR

 

 

 

ADD

&I2CIV, PC

;

Add offset to jump table

RETI

 

;

Vector 0: No interrupt

JMP

ALIFG_ISR

;

Vector 2: ALIFG

JMP

NACKIFG_ISR

;

Vector 4: NACKIFG

JMP

OAIFG_ISR

;

Vector 6: OAIFG

JMP

ARDYIFG_ISR

;

Vector 8: ARDYIFG

JMP

RXRDYIFG_ISR ;

Vector 10: RXRDYIFG

JMP

TXRDYIFG_ISR ;

Vector 12: TXRDYIFG

JMP

GCIFG_ISR

;

Vector 14: GCIFG

STTIFG_ISR

 

;

Vector 16

...

 

;

Task starts here

RETI

 

; Return

ALIFG_ISR

 

;

Vector 2

...

 

;

Task starts here

RETI

 

; Return

NACKIFG_ISR

 

;

Vector 4

...

 

;

Task starts here

RETI

 

; Return

OAIFG_ISR

 

;

Vector 6

...

 

;

Task starts here

RETI

 

; Return

ARDYIFG_ISR

 

;

Vector 8

...

 

;

Task starts here

RETI

 

; Return

RXRDYIFG_ISR

 

;

Vector 10

...

 

;

Task starts here

RETI

 

; Return

TXRDYIFG_ISR

 

;

Vector 12

...

 

;

Task starts here

RETI

 

; Return

GCIFG_ISR

 

;

Vector 14

...

 

;

Task starts here

RETI

 

; Return

USART Peripheral Interface, I2C Mode

15-19

Page 333
Image 333
Texas Instruments MSP430x1xx manual I2CIV, Interrupt Vector Generator, I2CIV Software Example

MSP430x1xx specifications

The Texas Instruments MSP430x1xx series is a family of ultra-low-power microcontrollers that are highly regarded in the embedded systems community for their versatility and performance. Designed for applications ranging from portable instrumentation to low-power industrial devices, the MSP430x1xx combines flexibility and efficiency with advanced features tailored for energy-sensitive applications.

One of the standout characteristics of the MSP430x1xx is its ultra-low-power operation. This series offers several low-power modes that can significantly extend battery life in portable devices. The microcontroller can be in active mode, low-power mode, or even in a deep sleep state, allowing developers to optimize power consumption based on the application's requirements. In fact, some configurations can operate at just a few microamps, making it ideal for battery-operated devices.

Another key feature is the 16-bit RISC architecture that provides powerful processing capabilities while maintaining a low power profile. The MSP430x1xx series supports a maximum clock speed of 16 MHz, allowing for efficient task execution while consuming minimal energy. This architecture ensures that programs run smoothly while the microcontroller remains energy efficient.

The MSP430x1xx is equipped with various integrated peripherals, including analog-to-digital converters (ADCs), timers, and communication interfaces like UART, SPI, and I2C. The inclusion of a powerful ADC enables the microcontroller to handle sensor readings with high accuracy, making it suitable for applications like environmental monitoring and medical devices. The integrated timers provide essential functionality for real-time applications, allowing for event-driven programming and precise timing control.

Memory options in the MSP430x1xx series are also robust, with configurations offering flash memory sizes from 1 KB to 64 KB. This flexibility allows developers to choose the optimal memory size for their specific applications, accommodating a wide range of requirements.

Additionally, the MSP430x1xx microcontrollers are designed with a wide operating voltage range, typically from 1.8V to 3.6V, making them compatible with various power sources and further enhancing their usability in diverse applications.

In summary, the Texas Instruments MSP430x1xx series of microcontrollers is an excellent choice for developers seeking low-power, high-performance solutions for embedded applications. With an efficient architecture, a rich set of peripherals, and flexible memory options, these microcontrollers are positioned to meet the growing demands of modern electronic designs, particularly in battery-powered and energy-sensitive applications.