手头上由于项目需要,须模拟I2C从机,选了很多片子,也试了很多方案,可一直没有找到最佳的思路,自己似乎也陷入死循环。网上的资料都是模拟主机的,其方法在这里就不提了。模拟从机寥寥无几,而且也都有诸多问题。今天在这里再提出此问题,望各位高手包括坛主能将此问题在此做个深入的研究,模拟从机究竟是否可行,如果可行最佳方案与硬件配置为几何?
1.SCL的读写状态信息判断:在主机写时序中,比较容易,判断SCL的下降沿来读取SDA线上的信息。在主机读时序中,我分析必须要判断SCL的上升沿来发送SDA信息。所以,在无外置电路的情况下,MCU必须有上升沿中断这一功能。
2.SDA的状态在Start和Stop时正好是一个下降一个上升,而且一侦数据只出现一次,用中断先不说浪费资源,如何在接收数据和接收Start和Stop之间有效结合,如果用查询方式来读Start与Stop又会漏检测。
3.MCU模拟从机是为了完成其它功能,不管用中断还是用查询,MCU的负荷与效率似乎是非常大的挑战。数据位必须在SCL下一个下降沿来之前处理完毕,而且每一个SCL都会中断一次,我很担心MCU的其它任务是否会正常执行。
4.如果看到此贴有设计过I2C电路芯片的高手的话,希望能贴个图上来,我相信这会让大家对模拟I2C从机设计有更大的帮助。
再次恳请各位将此问题进行到底! |