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.

[参考译文] TM4C123GH6PM:MCP23S17总线扩展器的 SPI 故障

Guru**** 2439560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/624814/tm4c123gh6pm-spi-trouble-with-an-mcp23s17-bus-expander

器件型号:TM4C123GH6PM

我正在尝试将 TM4C123G Launchpad 与 MCP23S17总线扩展器相连。  目前、我正在尝试读取地址0x00处的配置寄存器。  总线扩展器的数据表规定:

SPI 写入操作通过降低 CS 启动。 。
写入命令(R/W 位清零的从器件地址)为
然后计时到器件中。 操作码后跟
一个地址和至少一个数据字节。

SPI 寻址表示为0 1 0 0 ADR2 ADR1 ADR0 R/W A7 A6 A5 A3 A2 A1 A0。  使用硬件寻址000、因此我们有一个编码为0x4100 (地址0、读取=1)和寄存器地址0x00的 uint32_t。  

SSIDataPut (SSI0_BASE、0x4100);

while (SSIBusy (SSI0_BASE));

SSIDataGet (SSI0_BASE、rxData);

有16个时钟脉冲、输出数据良好、但随后时钟停止。  输入数据通常会在下一次发送期间传入。  我们一直在尝试发送额外的字节来保持时钟处于活动状态、但我们无法使它可靠地工作。  我可以更改地址、并在其他寄存器返回 POR 默认值时看到相同的结果。  请提供帮助!  谢谢

观察示波器、可以看到* CS 正常、我看到输出 SSI0 TX 使用0x4100。  紧随其后的是 SSIDataGet ()。  

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

    请注意、我不会忽视您的任何想法或建议;我也非常忙于其他计划。  不是最有效的工作方式、但这是另一天和另一个论坛的讨论。  谢谢、我将告诉您测试/故障排除是如何进行的。

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

    @Brian -谢谢。

    请注意、这里的"多/多"(总是)同样繁忙。

    的确认、"CB1消息已收到-(可能/可能)"正在处理"肯定胜过(千禧一代的青睐)"沉默!"   (因为没有回应可能表示:不在乎、不接受、不知道或"努力追求完美"。)   我们不知道客户/接收者的真实情况!   这从来都不是很好-让我们很开心!   (其他水泥墙等待着我们的头...)

    简单的回答-就像您提供的一样-都是需要的。  (并使我们保持"在板上"。)   请注意-我们都很忙!   (我刚刚飞了1500英里、以解决客户的问题...)