客户发来一张原理图,一份传感器手册,一份需求文档,要求三天内完成软件开发,然后立马去现场调试不能出bug。
用的51单片机本身作为iic主机读传感器,然后还作为iic从机接受其他芯片控制,全部使用io模拟。
还好在3172的帮助下及时完成了任务,顺手把模拟iic的代码整理出来。
模拟主机部分是我几年前抄的老代码,一颗芯片可以用这套代码模拟多条iic总线。
很好用,所以我仿照主机的风格写了一套从机,当然也继承了这个特点。
主机需要实现1个延时函数和7个io操作函数,从机需要实现1个回调函数和5个io操作函数。
代码在这里:
https://gitee.com/ylc0919/mc3172/tree/master
模拟从机测试结果:在4M的线程下扫描io,最大可接受8K的scl频率
离线
主机模拟很简单。从机相对比较复杂。
是的,逻辑方面还好,速度方面很难搞,主机可以轻轻松松将scl搞到M级的速度,从机scl还在几K到几十K的级别。
离线
一觉睡醒又有新的想法,或许将i2c_callback这个函数放到其他线程去可以提升不少速度,晚点再试试。
离线