我目前正在使用Yocto在Linux上实现一个设备,我遇到了I2C计时的问题,即中断延迟和字节间延迟。我的系统使用构建在Yocto (FSLC Wayland with XWayland 3.1imx8 My VAR-dart ttymxc3)上的Linux,在一个带有交响乐接口板的Variscite我将Saleae连接到I2C端口,我看到从中断到第一个起始位有900微秒的延迟,然后在I2C消息中的每个字节之间有300到600微秒的延迟,从而扼杀了我检索多个字节的机会。
启动后,我配置传感器,使其输出数据就绪中断。请注意,i2c也在中断模式下工作,因此,如果我在断言数据就绪线路时尝试读取传感器,则必须在GPIO INT处理程序中等待,直到i2c传输完成,以便获得另一个数据就绪int,依此类推。我的问题是,我不想在GPIO Int Handler中等待,直到i2c传输完成,这就是为什么我在中断时也设置了i2c,但如果我不在GPIO INT Handler中等待,i2c就会发生一些事情,因为传感器没有确认