C8051F340 外接 FM24C04 时的端口配置问题


原来是想利用单片机自带的 SMBus 端口, 但是官方自带的例程用了好几个定时器, 而我的这个小项目也需要很多定

时器资源, 不够用了. 擦.........所以干脆用 IO 口模拟 I2C 时序来操作 FM24C04 得了, 项目对时间要求也不苛

刻. 


所以, 就出现了文章要介绍的问题:

由于绘制原理图时, 已经将 SMBus 的端口 SDA/SCL(对应 P0_0/P0_1) 连接到了 FM24C04 的 SDA 和 SCL 上.

所以按照一般操作, 我把 XBR0  的 SMB0E 使能并连接到端口. 然后将对应的 IO 口 P0_0 和 P0_1 设置成漏极开

路, 按说这样就可以了是不是? 其实不是, 操作的时候读上来的数据一直是 0xFF, 可能就是高阻态.


我检查了下读写操作代码, 没有任何问题, 增减延时改变时序也是不行. 所以, 我怀疑在交叉开关这出了问题. 

想了想觉得, 既然我都用模拟的时序了. 干吗还用设置成开漏呢? 干吗还用将端口配置给 SMBus 呢? 推挽不也

是可以的吗?  所以如下图, 将 SMB0E 置零. 烧写调试运行, 读和写都行了. 另外对应的 IO 口设置

成开漏或者推挽都是可以正常进行操作的.  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值