cr315 发表于 2025-4-11 19:00

求救:关于93C46在16位模式的SPI读写问题

AT93C46A(16位模式)与PIC16F877的 SPI通信怎么发送两个字节的数据(16位)。网上的都是8位的数据传送。
SSPBUF是8位的,那怎么写发送两个字节的C语言程序呢。右移8位发送也没发过去。
高手指点一下。有没有参考的文献什么。
这里先谢谢了。

huangcunxiake 发表于 2025-4-14 19:16

AT93C46A的16位模式时序:

在16位模式下,每个数据/地址都需要以16位形式传输(MSB优先)。

命令格式示例:START_BIT(1) + OPCODE(2) + ADDRESS(6) + DATA(16)(具体根据操作类型变化)。

PIC16F877的SPI配置:

确保SPI模块配置为MSB优先(与AT93C46A一致)。

时钟极性(CPOL)和相位(CPHA)需匹配AT93C46A要求(通常模式0或3)。

598330983 发表于 2025-4-18 12:34

是的,经常遇到有的芯片是16位数据

xinxianshi 发表于 2025-4-18 15:35

你连续发两个8BIT不就是16BIT了,你要知道是高字节在前还是低字节在前。
页: [1]
查看完整版本: 求救:关于93C46在16位模式的SPI读写问题