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.
工具与软件:
您好!
我正在尝试通过 SPI 将 TMS320F28P650DK9连接到 W5500 (Wiznet)。 不过、我觉得在这方面有一些问题、所以有一些问题是向社会提出的。
C2000是16位转换器、这意味着无论协议、外设等如何、我总是必须传输至少2个字节(这是真的吗?)。 (这句话正确吗?)
现在、我感觉这会覆盖 SPI 从器件上的数据。
在 w5500数据表的这张图片中、只传输了1字节的数据、但假设我们要传输2字节。
因此、如果我想传输5字节、例如、因为从器件、w5500需要这个、或者说 SPI 帧:2字节 ADR + 1字节控制+ 2字节数据、然后我必须使用 C2000传输6字节、然后我假设这个附加的字节被写入 w5500的错误寄存器中。 在任何情况下、写入的值都与读取的值不匹配。
此外、读取命令也是一个问题、原因是预期为3字节
但我发送的是4个字节
我曾尝试使用过 Wiznett 中的 c 库: Library_Driver 387/Ethernet at master - Wiznet/387-GitHub Library_Driver
我已经编写了一个额外的 typedef:
#ifndef int8_t typedef int16_t int8_t; #endif #ifndef uint8_t typedef uint16_t uint8_t; #endif
我的陈述正确吗? 这两款芯片是否曾有人碰巧一起工作过? 这项任务是因为 TMS320F28P650DK9是唯一一款具有锁步处理器的高性能芯片。 但是、它"仅"具有 EtherCAT、我绝对需要以太网接口。
此致
Hans
尊敬的 Hans:
正如您已确定的、您在每次传输中必须始终发送16位。 使用 SPI driverlib 文件中的驱动程序可以发送8位甚至24位。 写入8位(小于16位)时、请确保在发送之前相应地左移位。 接收到的数据不需要进行位移、因为它首先接收到 SPIDAT 的 LSB 中。 有关更多详细信息、请参阅 SPI EEPROM 软件示例。
此致、
Aishwarya.
嗨、 Aishwarya、
新年快乐!
感谢您的答复。 遗憾的是、我忽略了 syscfg 中 SPI 模块的 DataWidth 设置。 这是一个多么愚蠢的错误。 无论如何,在原始 ioLibrary 中有很多事情要做,以使它在16位 arch 上运行。 我现在能够 ping 通我的设备(使用 SPI 传输的 IP)。 当我完成更改时,也许我会分叉 ioLibrary 并推动 GitHub 上的内容。 可能对其他开发有用
此致
Hans