基础介绍- 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的操作逻辑更符合时序规则。
基础介绍- 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的操作逻辑更符合时序规则。
举报