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.
工具与软件:
为什么在启用芯片选择之前 MOSI 会开始像 SPI 引脚一样工作? 在许多使用多种通信方法的器件上、MOSI 的行为会根据预期的通信类型向辅助器件发送信号。 通过 MOSI 在芯片选择之前应用其 SPI 值、除非使用外部芯片选择、否则无法与所有这些外设通信。 这是 C2000 SPI 上的预期行为吗? 除了使用外部芯片选择之外、是否有权变措施可以解决此问题。
SPI A
数据宽度:16
DMA:通道4 (RX)+通道3 (TX)
SPI 有效载荷:13 x 16位字
SPI 时钟:2MHz
SPI_PROT_POL0PHA1
事务结束启用中断:可以
芯片选择由 SPI 外设处理
示波器屏幕截图:
器件型号:TMS320F28P650DK
工具与软件:
如何使 C2000 SPI 外设在 SPI 事务结束时的行为类似于广泛接受的 SPI 标准? 根据我的测试结果、 在 SPI 事务结束时的完整时钟周期之前会停用芯片选择。 根据我的理解、此行为甚至与数据表时序图不一致。 您能否确认预期行为是什么、并提供确认行为的示波器截图?
SPI A
数据宽度:16
DMA:通道4 (RX)+通道3 (TX)
SPI 有效载荷:13 x 16位字
SPI 时钟:2MHz
SPI_PROT_POL0PHA1
事务结束启用中断:可以
芯片选择由 SPI 外设处理
示波器屏幕截图与外部源的预期 SPI 行为间的关系。
TMS320F28P650DK 产品说明书:
我仍然不理解这个时序图、因为它没有显示极性1的情况、而从我收集到的情况来看、此时序图并不存在。
请注意、在第一个图像中、它错误地写入了"Phase & POLARITY = 0 & 1"、而应该是"Phase & POLARITY = 1 & 0"。
更新了相位和极性校正图像、使用更常见的顺序并使用正确的值。
我已将该讨论拆分为一个 单独的 e2e主题:请使用该主题讨论原始问题、即 MOSI 在 CS 之前更新的位置。
尊敬的 Ali:
感谢您提供这些附加信息。 为了确保我理解正确、您要根据测试结果询问为什么 CS 在最后一个时钟周期之前变为高电平/是否变为高电平?
[报价 userid="601238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1436214/tms320f28p650dk-is-it-expected-for-mosi-to-update-before-chip-select/5507197 #5507197"]TMS320F28P650DK 产品说明书:
我仍然不理解这个时序图、因为它没有显示极性1的情况、而从我收集到的情况来看、此时序图并不存在。
[报价]根据数据表时序图、在传输开始时、CS 变为低电平/有效以启动 SPI 协议。 传输结束时、CS 在时钟变为高电平/非活动状态、此时数据应该已经传输完毕。 通过第二个时钟时序图(第一个时钟时序图表示极性= 0)以及其余行显示了极性= 1。
您能否确认设置/保持时间? 您的 DMA 和 GPIO 的时钟速度是多少? 是否可以让 SPI 以更高的速度计时?
这些关于两个极性/相位的注释意味着什么? 共享总线上的所有 SPI (C2000/其他)应配置相同的极性和相位。
此致、
Aishwarya.
您好、Aishwarya
"您问:根据您的测试结果、CS 为什么/是否在最后一个时钟周期之前变为高电平?" => 标题为"预计 MOSI 在芯片选择之前更新吗?"
我想很明显、这个问题在问为什么在芯片选择前要更新 MOSI。
"根据数据表时序图、在传输开始时、CS 变为低电平/有效以启动 SPI 协议。" 可以从示波器截图中清楚地看到没有发生这种情况。 所以我不知道你为什么不理解这个问题。
"在传输结束时、CS 在时钟变为高电平/非活动状态、此时数据应该已经发送。" 如果您注意到 SPI 的工作方式有所不同、CS 必须在一个完整的时钟周期后(而不是在其更新边沿之后)处于非活动状态。 因此、有人提出这个问题。
通过第二个时钟时序图(第一个是极性= 0)以及其余行显示了极性= 1。 可能这还不清楚、我在写第二个问题时将相位和极性混淆了。 我提供的图表中包含了这些信息、这是对的。 不过、所有问题仍然是相同的、因为 SPI 行为与任何预期的 SPI 行为都不匹配。
"您能否确认设置/保持时间?" 为什么这很重要?
"您的 DMA 和 GPIO 的时钟速度是多少?" 2MHz 已在开机自检时重复了几次。 如果您的意思是我们进行交易的频率、那么答案是1kHz、这与提出的原始问题无关。
"是否可以让您的 SPI 以更高的速度进行计时?" 否
"这些关于两极性/相位的评论意味着什么? 共享总线上的所有 SPI (C2000/其他)应配置相同的极性和相位。" 显然、您不知道 C2000与所有其他器件使用的极性和相位不匹配。 请参阅数据表、并将 C2000数据表与此链接或任何其他介绍 SPI 模式的非 C2000源进行比较: www.analogue.com/.../introduction-to-spi-interface.html
尊敬的 Ali:
明天我再给您介绍一些其他详细信息。
此致、
Aishwarya.
尊敬的 Ali:
离线对齐时、 31.3.6 SPI 时钟方案 TRM 部分中的下图 显示了 SPI 在事务开始和结束时的预期行为。 这与您之前提供的非 C2000 SPI 的图表略有不同。
如果没有其他问题、我将继续、并将该主题标记为已解决。
此致、
Aishwarya.