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.

[参考译文] MSP430FR2476:16位数据传输

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1321756/msp430fr2476-16-bit-data-transmission

器件型号:MSP430FR2476

你好  

我当前正在尝试发送16位数据、发送的 SDI 命令是正确的、但 SDO 返回不正确。

我想知道是否有人对此有任何建议?

以下是我当前使用的代码:

void SPI_CONFIG (void)
{
// LOG_EVENT (30、0);
P1SEL0 = 0x00;//禁用 SPI 引脚

UCB0CTLW0 |= UCSWRST;//禁用 SPI 外设
UCB0CTLW0 = UCSWRST //软件复位
| UCMST // SPI 主器件3引脚,8位
| UCSYNC //同步
UCCKPH //时钟相位:在 UCLK +ve 边沿捕获的数据和在-ve 边沿更改的数据
| UCCKPL //时钟极性:不可用低/高
| UCMSB;// MSB 优先


UCB0CTLW0 |= UCSSEL_SMCLK;// SMCLK
UCB0BRW = 0x0008;// fSCL = SMCLK/4 = 4MHz //**更改为2MHz**
UCB0CTLW0 &&~UCSWRST;//清除软件复位,恢复操作**初始化 USCI 状态机**
// UCB0IE |= UCTXIE;//启用 SPI TX 中断
// UCB0IE |= UCRXIE;//启用 SPI RX 中断

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

    eUSCI (SPI)仅在8位模式下工作、因此您必须发送一个16位值作为2个字节。 (检查目标产品的数据表以获得正确的订购信息。)

    ----------------

    | UCCKPH //时钟相位:在 UCLK +ve 边沿捕获的数据和在-ve 边沿更改的数据
    UCCKPL //时钟极性:低/高不活动

    在"传统"SPI 术语中、这是(CPHA=0、CPOL=1);这是您的目标预期吗?:

    ----------------

    从目标返回的数据有哪些不正确之处? 其中可能有线索。

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

    当前正在使用半桥电机、因此当需要将其他输出设置为高电平(关断)时、一些输出设置为低电平(ON)。

    当前此时、端口的 W/R 正常并且在示波器上可以看到正确的命令、但回复指出器件过热(不同的是、情况不同)、因此所有输出也设置为高电平

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

    您正在与什么目标器件(器件型号)交谈? 我可能能够找到相应的数据表。

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

    BD16939AEFV-C

    www.rohm.com/.../bd16939aefv-c-product

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

    数据表图11似乎表明:

    1)(CPOL=0、CPHA=1)、这意味着(UCCKPL=0、UCCKPH=0)。

    2) 2)高位字节进入第一位。 (我看不到上面的代码、因此可能是正确的。)