This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR2433:eUSCI_A UART 作为 IrDA 源

Guru**** 2609895 points
Other Parts Discussed in Thread: MSP430FR2433

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/652212/ccs-msp430fr2433-eusci_a-uart-as-irda-source

器件型号:MSP430FR2433

工具/软件:Code Composer Studio

开发人员大家好、

我目前尝试将 MSP430FR2433 LaunchPad 设置为 TX 器件、以进行红外数据传输。 我想使用 eUSCI_A UART 的 IrDA 功能来发送数据。

我通常知道要在 SYSCFG1寄存器中设置哪些位来启用调制系统。 但是、我在设置时序和 eUSCI_A 本身方面不成功。 到目前为止、我所做的是基于系列用户指南(SLAU445)和 OutOfBox 示例:

IrDA 设置

void initGpio (void)
{
// P2.6作为输出
P2DIR |= BIT6;


// P2.6作为主模块功能(UCA1TXD)
P2SEL0 |= BIT6;
}

void initIrDA (void)
{
//启用 IrDA
SYSCFG1 |= IREN;

//禁用 eUSCI_A
EUSCI_A_UART_DISABLE (EUSCI_A1_BASE); //设置 UCSWRST 位

// IrDA 编码器/解码器被启用
HWREG16 (EUSCI_A1_BASE + OFS_UCAxIRTCTL)|= UCIREN;

//发送脉冲时钟源 BITCLK16 (16 * 1/16时钟分数)
HWREG16 (EUSCI_A1_BASE + OFS_UCAxMCTLW)|= UCOS16; //过采样模式被启用
HWREG16 (EUSCI_A1_BASE + OFS_UCAxIRTCTL)|= UCIRTXCLK; //选择 BITCLK16

//发送脉冲长度3/16位周期(6个半时钟周期)
//将 UCIRTXPLx 设置为5
HWREG16 (EUSCI_A1_BASE + OFS_UCAxIRTCTL)|= UCIRTXPL2 | UCIRTXPL0;// B101


/* eUSCI_A 的初始化*/
EUSCI_A_UART_initParam param ={0};
param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK;
param.clockPrescalar = 8;
param.firstModReg = 10;
param.secondModReg = 247;
param.parity = EUSCI_A_UART_NO_parity;
param.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
param.numerofStopBits = EUSCI_A_UART_Oe_STOP_BIT;
param.uartMode = EUSCI_A_UART_MODE;
param.oversaming= EUSCI_A_UART_oversaming_BAUDRATE_generation;

if (STATUS_FAIL = EUSCI_A_UART_INIT (EUSCI_A1_BASE、&param))
{
返回;
}

//启用 eUSCI_A
EUSCI_A_UART_ENABLE (EUSCI_A1_BASE); //清除 UCSWRST 位
} 

我不确定的是一般计时。 我是否必须单独设置 Timer0_A3以及如何同步载波信号的 UART 传输和定时器?

根据用户指南中修改的图片、包络信号在 ASK 模式下确定是否将载波信号转发到输出。 但 UART 数据信号如何影响这一点? 它只是将包络信号反相、还是我在这里错了?

我希望您能回答这些问题、提前感谢您提供的任何提示。

此致、

Steffen