打印
[PIC®/AVR®/dsPIC®产品]

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

[复制链接]
708|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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了,你要知道是高字节在前还是低字节在前。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1392

主题

4448

帖子

0

粉丝