完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
I2C应该是一个开放的集线器总线。实际上,大多数时候驱动SDA和SCL都是高电平和低电平,这是违反的。你忽略了每个写字节之后从设备返回的ACK脉冲。如果DS1307正在正确地接收数据,这将给你一个即时的指示。你必须使用PIC16F690,正如你现在知道的,它不包含一个I2C主外围设备。你需要一个“MSSP”外围设备,而不仅仅是一个“SSP”来获得它。当您应该将端口位设置为低,并操作TIS位以关闭输出驱动器。这是模拟开放集电极驱动器的正确方法。
以上来自于百度翻译 以下为原文 I2C is supposed to be an open collector bus. You are violating that by actually driving SDA and SCL high and low most of the time. You are ignoring the ACK pulse that the slave device is meant to send back after every write byte. That would give you an immediate indication if the DS1307 is receiving your data correctly. Do you have to use a PIC16f690, which as you are now aware, does not contain an I2C Master peripheral. You need an "MSSP" peripheral, not just an "SSP" to get that. If you are going to bit-bang the interface, then you should be setting the port bits low, and manipulating the TRIS bits to turn the output driver off and on. That is the correct way to simulate an open collector driver. |
|
|
|
只有小组成员才能发言,加入小组>>
5204 浏览 9 评论
2016 浏览 8 评论
1942 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3188 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2244 浏览 5 评论
755浏览 1评论
641浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
550浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
654浏览 0评论
554浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 14:56 , Processed in 1.298262 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号