Cortex CMSIS style definition of MSP430 registers. More...
Cortex CMSIS style definition of MSP430 registers.
Definition in file msp430_regs.h.
Go to the source code of this file.
Data Structures | |
struct | msp430_port_p1_p2_t |
GPIO Port 1/2 (with interrupt functionality) More... | |
struct | msp430_port_p7_p8_t |
GPIO Port 7/8 (different register layout than Ports 1-6) More... | |
struct | msp430_usci_a_t |
Universal Serial Control Interface Type A (USCI_A) Registers. More... | |
struct | msp430_usci_b_t |
Universal Serial Control Interface Type B (USCI_B) Registers. More... | |
Functions | |
static msp430_usci_b_t * | msp430_usci_b_from_usci_a (msp430_usci_a_t *usci_a) |
"Convert" a USCI A into an USCI B interface | |
#define | MSP430_USCI_A_B_OFFSET 3U |
Offset of the USCI B registers in an USCI A peripheral. | |
#define | MSP430_USCI_B_FROM_USCI_A(usci_a) ((msp430_usci_b_t *)((uintptr_t)(usci_a) + MSP430_USCI_A_B_OFFSET)) |
"Convert" an USCI A to an USCI B | |
USCI clock selection | |
The vendor header files expose clock configurations with hard to read names. So we provide alias with better names | |
#define | UCSSEL_UCLKI UCSSEL_0 |
Clock USCI using CLKI (n/a in SPI mode) | |
#define | UCSSEL_ACLK UCSSEL_1 |
Clock USCI using auxiliary clock. | |
#define | UCSSEL_SMCLK UCSSEL_2 |
Clock USCI using sub-system master clock. | |
#define | UCSSEL_Pos 6 |
Position of the UCSSEL field in the USCI CTL1 register. | |
USCI Modulation Control fields | |
The vendor header files provides bitmasks for each of the possible values from 0..7. But rather than creating a look up table, we can just shift the number in place, if there only would be a UCRBS_SHIFT macro. | |
#define | UCBRS_MASK UCBRS_7 |
Bitmask to retrieve the UCRBS field of the USCI modulation control register. | |
#define | UCBRS_Pos 1 |
Position of the UCRBS field in the UCAxMCTL register. | |
Typing of base register objects | |
msp430_usci_a_t | USCI_A0 |
USCI_A0 register map. | |
msp430_usci_a_t | USCI_A1 |
USCI_A1 register map. | |
msp430_usci_b_t | USCI_B0 |
USCI_B0 register map. | |
msp430_usci_b_t | USCI_B1 |
USCI_B1 register map. | |
#define MSP430_USCI_A_B_OFFSET 3U |
Offset of the USCI B registers in an USCI A peripheral.
USCI A peripheral contains the USCI B peripheral registers, but has a few USCI A specific register in front. Adding this offset to the USCI A base address results in the base address of the shared registers.
Definition at line 44 of file msp430_regs.h.
#define MSP430_USCI_B_FROM_USCI_A | ( | usci_a | ) | ((msp430_usci_b_t *)((uintptr_t)(usci_a) + MSP430_USCI_A_B_OFFSET)) |
"Convert" an USCI A to an USCI B
This returns the pointer to the part of the USCI A registers that matches the USCI B register layout, so that an USCI A can be treated as if it is an USCI B.
This can be used instead of msp430_usci_b_from_usci_a when needing a constant initializer. Otherwise msp430_usci_b_from_usci_a is preferred as it includes type checks this macro doesn't.
Definition at line 57 of file msp430_regs.h.
#define UCBRS_MASK UCBRS_7 |
Bitmask to retrieve the UCRBS field of the USCI modulation control register.
Definition at line 144 of file msp430_regs.h.
#define UCBRS_Pos 1 |
Position of the UCRBS field in the UCAxMCTL register.
Definition at line 147 of file msp430_regs.h.
#define UCSSEL_ACLK UCSSEL_1 |
Clock USCI using auxiliary clock.
Definition at line 125 of file msp430_regs.h.
#define UCSSEL_Pos 6 |
Position of the UCSSEL field in the USCI CTL1 register.
Definition at line 129 of file msp430_regs.h.
#define UCSSEL_SMCLK UCSSEL_2 |
Clock USCI using sub-system master clock.
Definition at line 126 of file msp430_regs.h.
#define UCSSEL_UCLKI UCSSEL_0 |
Clock USCI using CLKI (n/a in SPI mode)
Definition at line 124 of file msp430_regs.h.
|
inlinestatic |
"Convert" a USCI A into an USCI B interface
The USCI peripheral come in two flavors: USCI A and USCI B with the following feature set. When comparing the memory map USCI B is a subset of USCI A registers, which conveniently have the same offsets. It is therefore possible to address USCI A registers as if it was a USCI B interface when operated in SPI mode. This makes implementation of SPI easier.
Name | UART | SPI | I2C | IrDA |
---|---|---|---|---|
USCI A | ✔ | ✔ | ✗ | ✔ |
USCI B | ✗ | ✔ | ✔ | ✗ |
Definition at line 170 of file msp430_regs.h.
|
extern |
USCI_A0 register map.
Provided by linker
|
extern |
USCI_A1 register map.
Provided by linker
|
extern |
USCI_B0 register map.
Provided by linker
|
extern |
USCI_B1 register map.
Provided by linker