linux i2c调试命令,UBOOT下I2C调试命令使用
UBOOT下I2C调试命令使用:读i2c外设举例:读取i2c地址为0x20的外设芯片,从第0个寄存器开始读,共读16个寄存器。u-boot> i2c md 0x20 0 16md---- i2c 读0x20 ---- i2c外设的地址,每个i2c外设都有一个独立的地址,一般是外设芯片出厂时就已经定好。0---- 从外设芯片的第0号寄存器开始读16---- 总共读16...
UBOOT下I2C调试命令使用:
读i2c外设
举例:读取i2c地址为0x20的外设芯片,从第0个寄存器开始读,共读16个寄存器。
u-boot> i2c md 0x20 0 16
md ---- i2c 读
0x20 ---- i2c外设的地址,每个i2c外设都有一个独立的地址,一般是外设芯片出厂时就已经定好。
0 ---- 从外设芯片的第0号寄存器开始读
16 ---- 总共读16个寄存器
写i2c外设
举例:写i2c地址为0x20的外设芯片,写它的第01号寄存器,将它第01号寄存器的值写为0x12。
u-boot> i2c mw 0x20 01 0x12
mw ---- i2c 写
0x20 ---- i2c外设的地址,每个i2c外设都有一个独立的地址,一般是外设芯片出厂时就已经定好。
01 ---- 写外设芯片的第01号寄存器
0x12 ---- 将它的值写为0x12
int i2c_read(u_int8_t chip, //芯片的i2c地址,不包含读写位
u_int32_t addr, //芯片内的读写地址,比如寄存器地址
int alen, //这个要看代码才知道是地址的长度。比如有的flash比较大就有16位地址。
//uboot支持32位地址,不过要看驱动支不支持。0=8bit,1=16bit,2=32bit地址长度
u_int8_t *buf, //数据
int len) //数据长度
i2c_set_bus_num(2);
i2c_read(0x50,0,1,&eeprom_data,8);
printf("eeprom data:0x%x-0x%x",eeprom_data[2],eeprom_data[3]);
data_l = *(u32*)(&eeprom_data[4]);
data_h = *(u32*)(&eeprom_data[0]);
printf("eeprom data:0x%x-0x%x",data_h,data_l);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)