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.

[参考译文] AM62P:MCSPI 多帧发送、接收错误

Guru**** 2430620 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1547607/am62p-mcspi-multi-frame-transmit-with-wrong-receive

部件号:AM62P
主题:SysConfig 中讨论的其他器件

工具/软件:

您好、

我使用 MCSPI 来控制陀螺仪。 根据陀螺仪的数据表、当 SOC 发送单个帧‘0xf5“时、陀螺仪将以单个帧“0xfA"进行“进行响应。 根据我们的测试、上述过程是可行的。 但是、当我们尝试通过 SPI 发送多帧时、陀螺仪无法正常响应、它仅以“0x00"响应“响应。 我尝试更改'CSPI_ChConfig.csIdleTime'以扩展 CS 信号的间隔、但它不起作用。

我使用逻辑分析仪捕获波形、并在下面附加它。 红线表示单帧部分、绿线表示多帧部分。  

我还附加了 SPI 通道的 SysConfig 配置。

SPI 传输代码如下所示。

uint16_t spitxbuffer[5];
uint16_t spirxbuffer[5];

MCSPI_Transaction   spiTransaction;
int32_t             transferOK;

MCSPI_Transaction_init(&spiTransaction);
spiTransaction.channel  = gConfigMcspi0ChCfg[0].chNum;
spiTransaction.dataSize = 16;
spiTransaction.csDisable = FALSE;
spiTransaction.count    = 5;
spiTransaction.txBuf    = spiTxBuffer;
spiTransaction.rxBuf    = spiRxBuffer;
spiTransaction.args     = NULL;

transferOK = MCSPI_transfer(gMcspiHandle[CONFIG_MCSPI0], &spiTransaction);

BR、

Bomiao

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

    您好、

    感谢您附加支持配置和代码片段、这大有帮助。

    我看到 SysConfig 配置和您附加的代码片段没有任何问题。

    由于我不知道您正在使用的确切外设、因此我们先澄清一些事情。

    请回答以下问题:

    当在单个帧中发送到外设时、 预期值是多少?

    F5h 发送后、我们收到 Gyro 的 FAh

    发送 F2h、我们就会收到 a. 来自 Gyro

    发送 F3h 后我们收到 b 来自 Gyro

    然后发送 F4h、我们会收到 c. 来自 Gyro

    6Bh 发送后我们收到 d. 来自 Gyro

    如果预期值是 8 位值、请为上述所有值尝试单帧、查看是否显示了预期值、然后切换到发送多帧。 如果外设支持

    谢谢、

    Vaibhav