[PIC®/AVR®/dsPIC®产品] 求救:关于93C46在16位模式的SPI读写问题

[复制链接]
1312|5
 楼主| cr315 发表于 2025-4-11 19:00 | 显示全部楼层 |阅读模式
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了,你要知道是高字节在前还是低字节在前。
玫瑰凋零日记 发表于 2025-8-29 13:31 | 显示全部楼层
93C46 在 16 位模式下,SPI 读写需注意:指令加地址共 16 位(指令 2 位 + 地址 6 位 + 数据 8 位)。写操作前发 WREN 指令使能,时钟上升沿采样数据,CS 需保持有效。读时发 READ 指令 + 地址,随后读取 16 位数据。注意时序匹配,避免读写冲突,确保数据正确传输。
四十四次日落 发表于 2025-9-20 16:42 | 显示全部楼层
93C46 在 16 位模式下 SPI 读写,需先发送操作码(读 0x0B、写 0x02)+ 地址。16 位数据分高 8 位和低 8 位传输,时钟上升沿采样。写前发擦除指令,注意片选信号时序,确保数据传输完整。读写时需匹配 SPI 极性和相位,避免数据错位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1467

主题

4985

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部