工具/软件:
我正在执行一个 MCSPI 事务。 数据大小为8位、我想传输3个连续帧、而不禁用它们之间的 CS。 这是硬件所必需的。
我尝试设置 CSDisable = false、这似乎没有任何作用。 我有一个多控制器 SPI 设置。 通道0不需要此功能并可以正常工作、但通道1需要此功能并且无法工作。 使用 LLD 而不是 HLD 的 Im。
MCSPI 配置:
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.
工具/软件:
我正在执行一个 MCSPI 事务。 数据大小为8位、我想传输3个连续帧、而不禁用它们之间的 CS。 这是硬件所必需的。
我尝试设置 CSDisable = false、这似乎没有任何作用。 我有一个多控制器 SPI 设置。 通道0不需要此功能并可以正常工作、但通道1需要此功能并且无法工作。 使用 LLD 而不是 HLD 的 Im。
MCSPI 配置:
嗨、Shane、
我检查了 MCSPI_CH_MODE_SINGLE 宏的使用方式和位置、以及在哪种背景下可以更好地帮助您。
单控制器的结果很有前景:
事务行为、单控制器:
HLD 已启用:
csDisable = true 时的10个事务:
csDisable = false 且最后一个事务为 true 时的10个事务:
使用 LLD:
csDisable = true 时的10个事务:
csDisable = false 且最后一个事务为 true 时的10个事务:
对于多控制器模式、我在事务中看到了大量的芯片选择。 让我看看为什么会发生这种情况。
此致、
Vaibhav
嗨、Shane、
我已经看到、对于多控制器、每个传输的字节都会出现片选事件。
发生这种情况的原因是驱动程序检查了单控制器模式、而不是多控制器模式。
我假设这些是每个传输字节的自动芯片选择。
我正在与开发团队研究如何在驱动程序中实现修复、以便在单控制器和多控制器 MCSPI 模式之间保持一致的行为。
请允许我在完成一轮内部讨论后再谈一下这个问题。
其他说明:
发送的字节有一个芯片选择、这已使用逻辑分析仪通过代码和波形确认。 因此、您可以看到以下波形片段:
它基本上是一个字节(值18)的传输、芯片选择会自动用于此传输、在驱动程序中不会被触摸。
在驱动程序中添加了新的元素
CSL_REG32_WR (baseAddr + MCSPI_CHTX (chNum)、txData);
我们可以看到字节(值18)传输的行为。
此致、
Vaibhav