Other Parts Discussed in Thread: TMS320F28075
大家好、
一位客户正在寻求有关如何使用 TMS320F28075来控制多个器件的帮助。 他们希望在主模式下使用 SPI 控制器来创建通用驱动器、在该驱动器中使用 GPIO 来执行 CS。 SPI 控制器本身可以"控制"一个 CS 连接、但希望能够在下游安装多个器件。 在这种情况下、数据表显示使用 GPIO 和对 CS 本身进行编码。
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.
Other Parts Discussed in Thread: TMS320F28075
大家好、
一位客户正在寻求有关如何使用 TMS320F28075来控制多个器件的帮助。 他们希望在主模式下使用 SPI 控制器来创建通用驱动器、在该驱动器中使用 GPIO 来执行 CS。 SPI 控制器本身可以"控制"一个 CS 连接、但希望能够在下游安装多个器件。 在这种情况下、数据表显示使用 GPIO 和对 CS 本身进行编码。
您好、Gus、
以下是请求的附加上下文:
客户目前正在为 TMS320F28075编写一个通用 SPI 驱动 程序、他们希望支持多个芯片(从器件)下游、但无法使用 SPI 控制器中的内置 CS 功能、因为它只能由一个从器件使用。 (一个只能为 SPI 控制器分配1个 CS 引脚)。
《技术参考手册》(改述)规定、如果在下游使用多个器件(芯片)、则需要将 CS 作为 GPIO 运行并自行控制。 那么、问题是如何控制 CS 取消选择、以便在最后一个 SPI 时钟周期的确切末尾发生。?
TI 是否有表明这种行为的设计建议或示例代码?
[报价 userid="13605" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1137012/tms320f28075-using-gpio-to-control-multiple-device/4219852 #4219852"]您的客户能否提供数据表要求的快照?数据表要求:
NOR 闪存 MX25L6433F:
PP 命令(页面程序)
"CS#必须在整个页面程序周期内保持低电平;CS#必须恰好在字节处变为高电平
边界(被锁存的数据的最新第8位)、否则指令将被拒绝且不会被拒绝
已执行。"

随附的示波器图像显示了发送到 NOR 闪存的4个命令(4 CS)的序列。 由于 PP 页程序不起作用(先发送 WREN (写入使能)、然后发送 PP)、因此它们用一个读取状态寄存器(RDSR)包围了 WREN、以检查 WEL 位(写入使能锁存器)。 第二个 RDSR 应该在 MISO 信号中产生一个高电平位来指示 WEL 位被置位。
根据数据表、RDSR 不需要与 CS DESELECT 同步"字节移出边界"。
希望这些信息能有所帮助。 如果您需要客户提供更多信息、请告诉我。
此致、
Marvin
Marvin、
感谢您提供额外信息。 我能够拉取数据表。 SPI 时序图应提供有关时序要求的绝对信息、 在这种情况下、这对我来说毫无意义。 它在 第一个时钟后显示 CS#有效/低电平、 在最后一个时钟之前显示 CS#无效/高电平。 如果为 true、则它将应用于所有命令、而不仅仅是 PP 命令。 我看不出这是怎么正确的。 我认为您的客户应该得到制造商的一些澄清。

顺便说一下、数据表中的所有其他时序图都没有显示这一点。 下面是 PP 的示意图。 它不显示这种奇怪的 CS#要求。

如果这一要求为真、那么 我看不到使用 SPI+GPIO 方法来满足这一要求的方法。 我认为唯一的方法是对 SPI 信号进行位拆裂、即 CPU 使用 GPIO 构造所有 SPI 信号。 但是、正如我说过的、我坚信 数据表规格中存在一些拼写错误或错误陈述。
当客户使用 C2000 SPI 时、我们经常看到的一个常见问题是、他们对 CPOL 和 CPHA 进行编程、与从器件数据表中所示完全相同。 但是、制造商通常会以不同的方式定义这些定义、因为没有行业标准定义。 我会要求您的客户查看 SPI 输出并验证 SPI 是否正在生成信号以支持闪存要求: '对于标准单数据速率串行模式、输入数据锁存在串行时钟(SCLK)的上升沿、数据在 SCLK 的下降沿移出。' 从 C2000的角度来看、该模式为 CLKPOLARITY = 0 + CLK_PHASE = 1或 CLKPOLARITY = 1 + CLK_PHASE = 0。