嗨对话框,
我想问一些关于I2C时钟(SCL)的问题。
Q1:当用户写入I2C寄存器以从EEPROM下载FW代码时,将自动生成SCL?
Q2:在空闲状态下,SCL输出保留了Hiz?(因为该引脚是开放式缓冲区)
Q3:当用户jueute i2c_eeprom_release()时,scl也被保持为hiz?
void i2c_eeprom_release(void)
{
setword16(i2c_enable_reg,0x0);//禁用I2C控制器
setBits16(CLK_PER_REG,I2C_ENABLE,0);//禁用I2C的时钟
}
此致,
Yukio
设备:
嗨yterasaki,
1.一旦从主设备满足启动条件,就会生成SCL时钟。
2.当总线空闲时,SCL和SDA信号都会通过总线上的外部上拉电阻拉高。
3.当用户执行释放命令时,禁用时钟,两行从上拉返回高电平。
谢谢mt_dialog.
谢谢对话人员,
我理解你的评论,我的大部分担忧都解决了,但请让我问一个问题。
我观察到的睡眠电流超过规格,发现漏电流通过拉向上进入SCL引脚
电阻。(源代码是Beacon 3.40.6的参考设计,我没有改变任何代码)这是因为SCL引脚重新配置
在FW码从I2C EEPROM下载后,作为“用下拉的输入”。
我的问题是SCL配置从输出缓冲区(SCL)更改为输入缓冲区。我想两种可能性,即
1:HW或软件重置初始化引脚配置(用下拉输入初始引脚配置)
2:ROM?或引导加载程序?在完成FW下载期间重新配置PIN,并且main_func()开始执行。
我没有找到既不高于1也不高于2的代码。
此致,
嗨yterasaki,
通过i2c引导时引导加载程序和辅助引导加载程序在从内存中读取二进制文件后在input_pulldown状态下设置scl_pin并启动应用程序。
谢谢mt_dialog.
谢谢对话人员,一切都很清楚。也许改变了参考代码以将SCL引脚重新配置为输出或用上拉输入
启动代码后,睡眠电流保持小。
此致,
嗨yterasaki,
是的,我相信你可以做到这一点。只需将您想要的GPIO配置为您的FW开始时要将其配置为您想要的状态。
谢谢mt_dialog.