Atlas7平台使用E52241芯片无法烧录

问题:Atlas7平台使用埃尔莫斯的E52241 USB充电芯片后导致UMS无法挂载烧录

原因:E52241芯片USB通路存在switch开关,默认情况下是断开状态

解决方法:在uboot阶段通过IIC配置寄存器来合上switch开关

注:switch开关的设计是为了USB通讯数据保护,E52241芯片检测到设备插入后会自动合上dataswitch。而ums的烧录模式,SOC是作为device,PC作为Host,E52241芯片不会检测设备的插入,不会自动合上switch开关,需要IIC进行配置。

 


需求:在Uboot阶段实现IIC通讯

问题:CSR原生代码的API使用无法通讯,也无法进一步调试

原因:CSR原生代码与datasheet说明不符合,且datasheet不开放IIC控制器部分的配置操作

解决方法:自己实现gpio模拟IIC


 

问题:gpio模拟IIC,热重启车机后可以配置成功,冷启动唤醒E52241配置失败

原因:E52241芯片工作状态不符合datasheet中的说明,且需要进行额外配置

解决方法:冷启动时,需要将芯片配置到RUN模式,让VBUS有输出,再进入到standby模式下配置

Ctrl_data 0x01

SetupBC12_data 0x0A

SetupSMPS_data 0x00 0x5C

 


对比冷重启时VDD=3.3V standby模式和VDD=0V sleep模式时的波形:

VDD=0V

 

VDD=3.3V

 

standby模式下SDA波形上存在下拉,芯片是有ack回应的。进一步对比热重启uboot中读取的波形:

 

可以发现信号波形是没什么区别的,但是SDA线上的数据不一样。最后排查到冷启动时配置的寄存器不对。


PS:

uboot中mw命令:

en-H: mw 0x13300004 0x60 4

en-L: mw 0x13300004 0x20 4

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值