嗨,对话,
我想问一些关于I2C时钟(SCL)的问题。
问题1:当用户写入I2C寄存器从EEPROM下载固件代码时,SCL自动生成?
Q2:在空闲状态下,SCL输出保持HiZ?(因为该引脚是开漏缓冲器)
问题3:当用户执行i2c\ eeprom\ release()时,SCL是否也保留为HiZ?
无效i2c\U eeprom\U释放(无效)
{
SetWord16(I2C_ENABLE_REG,0x0);//禁用I2C控制器
SetBits16(CLK_PER_REG,I2C_ENABLE,0);//禁用I2C的时钟
}
致以最诚挚的问候,
由纪夫
设备:
嗨,yterasaki,
1一旦主机满足启动条件,就生成SCL时钟。
2当总线空闲时,SCL和SDA信号都通过总线上的外部上拉电阻器拉高。
三。当用户执行释放命令时,时钟被禁用,两个测线从上拉返回高位。
谢谢你的对话
感谢Dialog员工,
我理解你的意见,我的大部分问题都解决了,但请允许我再问一个问题。
我观察到睡眠电流超过规格,发现泄漏电流通过上拉进入SCL引脚
电阻器。(源代码是Beacon3.40.6的参考设计,我没有更改任何代码)这是因为SCL引脚被重新配置
从I2C EEPROM下载FW代码后作为“下拉输入”。
我的问题是SCL配置何时从输出缓冲区(SCL)更改为输入缓冲区。我认为有两种可能性
1:HW或软件重置初始化引脚配置(通过下拉输入初始引脚配置)
2:ROM?或者引导程序?在FW下载完成时重新配置pin,main_func()开始执行。
我找不到既不高于1也不高于2的代码。
致以最诚挚的问候,
嗨,yterasaki,
通过I2C引导时,引导加载程序和辅助引导加载程序在从内存中读取二进制文件并启动应用程序后,将SCL\U引脚设置为INPUT\U下拉状态。
谢谢你的对话
谢谢对话人员,一切都很清楚。可能参考代码被更改,以重新配置SCL引脚作为输出或输入与上拉
启动后的代码,使睡眠电流保持小。
致以最诚挚的问候,
嗨,yterasaki,
是的,我相信你能做到。只要配置你的GPIO到你想要的状态,当你的FW启动。
谢谢你的对话