马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本文主要介绍使用STM32芯片 IO模拟方式调试IIC接口LKT加密芯片时需要注意的问题点。可能有人会说我之前操作过XXXX IIC接口的芯片,IIC接口没什么好介绍的。其实不然如果IO模拟的IIC程序写的不好,有可能造成程序对个别芯片兼容性不好的问题,或者稍微调整通讯速度后通讯就变的不稳定等现象出现。 基础介绍- IO口开漏输出: 下图为开漏模式的结构图,输出寄存器上的‘0’将N-MOS激活 P-MOS截止,此时I/O引脚相当于与VSS连接。输出寄存器上的‘1’使P-MOS和N-MOS截止,此时I/O处于高阻态状态。所以开漏模式下要输出高电平时需要加入上拉电阻。 调试注意事项: STM32操作LKT加密芯片的SDA、SCL两条线一定要设置成开漏输出,切记不要使用推挽输出。 STM32在发送和读取数据时,SDA数据线引脚不需要进行输入输出设置,直接读取端口寄存器状态即可。 STM32在读取数据时,当SCL拉高后不要做简单固定延时之后就进行后续操作,尽量做一个拉高的超时判断(因为存在总线被从器件占用的可能性,这里可以做一个超时判断如果SCL超时还未拉高则认为是总线异常)这样做也是符合硬件IIC的操作逻辑更符合时序规则。
|