Smart210 USB ROOT HUB自动复位

发布者:悠闲自在最新更新时间:2019-10-16 来源: 51hei关键字:Smart210  USB  ROOT  HUB  自动复位 手机看文章 扫描二维码
随时随地手机看文章

现象:

使用usb camera 在lcd上显示图像时,偶尔发生USB ROOT HUB reset, 导致camera停止工作,然后发生usb camera自动断开,然后又重新识别,断开又识别。

如果不使用usb camera,就不会发生 usb reset。


分析:

1、怀疑USB供电问题,导致usb不稳定,但是,使用带外接电源的usb,没有任何改善;

2、分析log,是usb异常中断导致,但是仍然无法判断异常的来源;

3、怀疑是驱动问题,更换linux 内核版本,3.4.2、3.7、3.9.7、3.10、3.13几个版本都有同样问题;

4、使用官方kernel 3.0.8就没有问题,确认还是驱动配置问题。但是仍然找不到原因。

使用排除法,移植3.0.8内核,一步一步添加官方驱动,无论与camera usb相关不相关,都要测试。


最终发现问题在LCD的GPIO配置上。


结果:

从Linux主线下载的新版本的kernel后,配置好LCD的时序,发现lcd能够正常工作,所以就没有继续关心LCD的配置,尤其是 RGB的GPIO配置,甚至都没有把LCD的GPIO配置成功能引脚,但恰巧是这方面的问题。


最终重新配置LCD的gpio 为功能,并设置驱动能力, 经过很长时间的测试USB没有发生reset。


问题log:


  • [liujia@210]#[  171.257109] lj:port 1, status 0100, change 0001, 12 Mb/s  

  • [  171.257174] usb 1-1: USB disconnect, device number 23  

  • [  171.257219] usb 1-1.2: USB disconnect, device number 24  

  • [  171.522012] usb 1-1: new high-speed USB device number 25 using s5p-ehci  

  • [  171.652422] usb 1-1: New USB device found, idVendor=0424, idProduct=2514  

  • [  171.652480] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0  

  • [  171.657089] hub 1-1:1.0: USB hub found  

  • [  171.657294] hub 1-1:1.0: 4 ports detected  

  • [  171.857405] lj:port 2, status 0101, change 0000, 12 Mb/s  

  • [  171.942257] usb 1-1.2: new high-speed USB device number 26 using s5p-ehci  

  • [  172.265034] usb 1-1.2: New USB device found, idVendor=046d, idProduct=0825  

  • [  172.265093] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=2  

  • [  172.265154] usb 1-1.2: SerialNumber: F46BE640  

  • [  172.269636] uvcvideo: Found UVC 1.00 device (046d:0825)  

  • [  172.291195] input: UVC Camera (046d:0825) as /devices/platform/s5p-ehci/usb1/1-1/1-1.2/1-1.2:1.0/input/input10  

  • [  174.309219] lj:port 1, status 0100, change 0001, 12 Mb/s  

  • [  174.309283] usb 1-1: USB disconnect, device number 25  

  • [  174.309328] usb 1-1.2: USB disconnect, device number 26  

  • [  174.572011] usb 1-1: new high-speed USB device number 27 using s5p-ehci  

  • [  174.702413] usb 1-1: New USB device found, idVendor=0424, idProduct=2514  

  • [  174.702471] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0  

  • [  174.706912] hub 1-1:1.0: USB hub found  

  • [  174.707163] hub 1-1:1.0: 4 ports detected  

  • [  174.907402] lj:port 2, status 0101, change 0000, 12 Mb/s  

  • [  174.992252] usb 1-1.2: new high-speed USB device number 28 using s5p-ehci  

  • [  175.315403] usb 1-1.2: New USB device found, idVendor=046d, idProduct=0825  

  • [  175.315462] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=2  

  • [  175.315524] usb 1-1.2: SerialNumber: F46BE640  

  • [  175.320003] uvcvideo: Found UVC 1.00 device (046d:0825)  

  • [  175.341248] input: UVC Camera (046d:0825) as /devices/platform/s5p-ehci/usb1/1-1/1-1.2/1-1.2:1.0/input/input11  


解决办法:
1、 arch/arm/mach-s5pv210/setup-fb-24bpp.c

  • static void s5pv210_fb_cfg_gpios(unsigned int base, unsigned int nr)  

  • {  

  •     s3c_gpio_cfgrange_nopull(base, nr, S3C_GPIO_SFN(2));  

  •   

  •     for (; nr > 0; nr--, base++)  

  •         s5p_gpio_set_drvstr(base, S5P_GPIO_DRVSTR_LV4);  

  • }  

  •   

  •   

  • void s5pv210_fb_gpio_setup_24bpp(void)  

  • {  

  • #if 0  

  •     s5pv210_fb_cfg_gpios(S5PV210_GPF0(0), 8);  

  •     s5pv210_fb_cfg_gpios(S5PV210_GPF1(0), 8);  

  •     s5pv210_fb_cfg_gpios(S5PV210_GPF2(0), 8);  

  •     s5pv210_fb_cfg_gpios(S5PV210_GPF3(0), 4);  

  •   

  •     /* Set DISPLAY_CONTROL register for Display path selection.

  •      *

  •      * ouput   |   RGB   |   I80   |   ITU

  •      * -----------------------------------

  •      *  00     |   MIE   |  FIMD   |  FIMD

  •      *  01     | MDNIE   | MDNIE   |  FIMD

  •      *  10     |  FIMD   |  FIMD   |  FIMD

  •      *  11     |  FIMD   |  FIMD   |  FIMD

  •      */  

  •     writel(0x2, S5P_MDNIE_SEL);  

  • #endif  

  •     int i;  

  •   

  •     for (i = 0; i < 8; i++) {  

  •         s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2));  

  •         s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE);  

  •     }  

  •   

  •     for (i = 0; i < 8; i++) {  

  •         s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2));  

  •         s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE);  

  •     }  

  •   

  •     for (i = 0; i < 8; i++) {  

  •         s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN(2));  

  •         s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE);  

  •     }  

  •   

  •     for (i = 0; i < 4; i++) {  

  •         s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN(2));  

  •         s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE);  

  •     }  

  •   

  •     /* mDNIe SEL: why we shall write 0x2 ? */  

  •     writel(0x2, S5P_MDNIE_SEL);  

  •   

  •     /* drive strength to 2x ....(max for smdkv210) */  

  •     writel(0xaaaaaaaa, S5PV210_GPF0_BASE + 0xc);  

  •     writel(0xaaaaaaaa, S5PV210_GPF1_BASE + 0xc);  

  •     writel(0xaaaaaaaa, S5PV210_GPF2_BASE + 0xc);  

  •     writel(0x000000aa, S5PV210_GPF3_BASE + 0xc);  

  • }


2、arch/arm/mach-s5pv210/include/mach/regs-gpio.h


  •   /* 添加代码*/

  • #define S5PV210_GPF0_BASE(S5P_VA_GPIO + 0x120)

  • #define S5PV210_GPF1_BASE(S5P_VA_GPIO + 0x140)

  • #define S5PV210_GPF2_BASE(S5P_VA_GPIO + 0x160)

  • #define S5PV210_GPF3_BASE(S5P_VA_GPIO + 0x180)


关键字:Smart210  USB  ROOT  HUB  自动复位 引用地址:Smart210 USB ROOT HUB自动复位

上一篇:iTOP-4412开发板-Android5.1- 移植教程
下一篇:嵌入式s3c2410A UART部分中文解释

推荐阅读最新更新时间:2024-11-06 14:06

谷歌Pixel Watch通过FCC认证:USB-C充电口,可选LTE
在今年的 Google I / O 全球开发者大会上,谷歌正式宣布了对标苹果 Apple Watch 的智能手表 —— Pixel Watch,但没有正式发售。   近日,这款手表已经通过了 FCC 认证,共有三个型号:GQF4C、GBZ4S、GWT9R。监管清单显示,GQF4C 提供蓝牙和 Wi-Fi 连接,而 GBZ4S 和 GWT9R 支持 LTE。   GBZ4S 支持三个 LTE 频段:LTE Band 5、7、26。GWT9R 支持十个频段:LTE Band 2、4、5、12、13、17、25、26、66、71。   此外,FCC 清单显示,Pixel Watch 将配备 USB-C 充电线,而非之前的磁
[手机便携]
谷歌Pixel Watch通过FCC认证:<font color='red'>USB</font>-C充电口,可选LTE
手把手教你做冰箱,材料费才这么点
说好的 DIY 冰箱 教程终于来了!上个月直播的时候,大海就说要DIY一个 USB 冰箱,但是因为准备不够充分,只实现了半导体制冷原理,并没有冰箱外壳,甚至没有开关。作为一个文科出身,对物理化学一窍不通的小编,本大海在隔壁老黄,隔壁兽王,隔壁G胖的帮助下,终于完成了这台“狂拽酷炫冷热两用透明USB冰箱”!废话不多说,先上成品图。   虽然已经到了秋天,但是广州的气温仍然长期维持在30度左右,满头大汗的时候,最想做的事就是来一瓶冰镇饮料了。但是如果你不马上把饮料喝完,它很快就会变得和周围一样热,那么有没有办法自己做一个可以放在桌面,甚至能随身携带的小冰箱呢?     我们常见的制冷原理有2种,一是冰箱用的压缩机制
[嵌入式]
苹果明年恐推氮化镓快充,USB豆腐块充电头恐将不复存在
台积电为何会破天荒的将制程外包给一家LED厂?原来背后原因是明年将掀起的“氮化镓快充”热潮。 现在正热卖中的iPhone 12,果粉打开包装盒会发现,不但没有耳机,连昵称为“豆腐头”的USB充电器也一并消失了。 苹果宣称是因为环保因素,对手三星一度在官方脸书嘲笑此说法。但不久前,一份外泄的三星资料透露,三星也将跟进,预计明年1月上市的最新款Galaxy手机也不附充电器。 也就是说,光是明年,可能将有至少上亿颗免费充电器从全球市场消失。因此掀起的蝴蝶效应是,由昂贵且稀有的半导体材料制成的充电器将会加速普及。 “苹果带头,三星跟进,它们不送,大家只好到店内买,就会买比较贵的,可以快充(的充电器),而且体积更
[手机便携]
苹果明年恐推氮化镓快充,<font color='red'>USB</font>豆腐块充电头恐将不复存在
微投影/Sensor Hub火红MEMS厂大啖移动商机
    行动装置抢搭多轴感测功能已成“疯”潮,MEMS元件制造商也把握市场良机,强推Sensor Hub单晶片,以提高感测精准度并降低系统功耗。此外,手机品牌厂为赋予产品新价值,将于今年MWC展大秀MEMS微投影手机,亦吸引MEMS元件商积极卡位。     苹果(Apple)、三星(Samsung)最新一代机皇,均已搭载六轴以上微机电系统(MEMS)感测器,借以支援更强大的动作感测功能。在这两大行动装置品牌厂带动下,其他手机制造商也开始扩大导入MEMS元件,刺激市场需求高涨。   然而,行动装置设计空间锱铢必较,导入多轴MEMS感测器不仅为产品轻薄​​度带来艰难考验,对原始设备制造商(OEM)来说,如何确保多元感测器
[手机便携]
USB存储设备无法识别的4大原因
  当你想用闪存或移动硬盘来和电脑交换数据时,但插上USB口时你却发现系统居然无法识别出USB设备,是什么原因造成的呢,这里简单介绍一下排除USB存储设备本身故障后出现此类现象的原因。   1.前置USB线接错。当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会使得USB设备烧毁。   2.USB接口电压不足。当把移动硬盘接在前置USB口上时就有可能发生系统无法识别出设备的故障。原因是移动硬盘功率比较大要求电压相对比较严格,前置接口可能无法提供足够的电压,当然劣质的电源也可能会造成这个问题。解决方法是移动硬盘不要接在前置USB接口上,更换劣质低功率的电源或尽量使
[嵌入式]
谱瑞USB新产品芯片送样,最快下半年出货
集微网消息,USB接口速度在2018年将进入USB 3.1 Gen2时代,PC及服务器等产品在2018年都可望加快导入速度,高速传输芯片厂谱瑞科技看准这波趋势,近日拓展了USB 3.1 Gen2 10Gbit/sec Retimer产品线,推出USB 3.1 Gen2的Retimer芯片,目前正进入送样阶段,法人预期,今年下半年将可望开始出货。 英特尔日前推出新平台Coffee Lake已经全面支持USB 3.1 Gen2,英特尔已经规划将于2018年推出的Z390芯片组原生整合USB 3.1 Gen2芯片,也确立USB将进入到每秒传输10Gbps。随着英特尔全面力拱USB 3.1 Gen2,将可望全面带动PC、服务器、游戏机及智
[手机便携]
基于OHCI协议的S3C2440 USB Host Driver之协议介绍(一)
什么是OHCI USB协议规定为四种传输类型--中断传输、控制传输、同步传输、批量传输。这里分为2种,周期传输和非周期传输。周期传输包括中断传输和同步传输,这是因为周期传输是要在1帧里的一段时间里必须进行的;非周期传输包括批量和控制传输,它们只要带宽空闲就可以传输。 在HC与HCD之间有2条通信渠道:第一条是在HC里的可操作寄存器;第二条是HCCA。 数据结构有2种:ED和TD HCD负责分配ED和删除ED。HCD负责创建TD,HC负责删除TD。 ED包括HC与端点通信的必要信息,如MPS、端点地址,端点速度,数据流方向。ED链接成一个表。 一列TD链接在某个ED上,以ED作为锚点。TD包含了必要信息,描述
[单片机]
基于OHCI协议的S3C2440 <font color='red'>USB</font> Host Driver之协议介绍(一)
TMS320C54XX DSP的USB接口实现
   摘 要: 介绍了DSP芯片上USB接口的实现。使用USB接口芯片AN2131Q实现DSP和PC机之间的通信,在AN2131Q和TMS320VC54XX DSP之间加有FIFO芯片,可提高数据的传榆速度,使最大数据传输速度超过USB总线的速度。    关键词: USB DSP 数据传输   通用串行总线USB(Universal Serial Bus)应用由三部分组成:具有USB接口的PC系统、能够支持USB的系统软件和使用USB接口的设备。USB应用采用通用连接技术,实现外设的简单快速连接,借以达到方便用户、降低成本、扩展PC机连接外设范围的目的。USB的特点   如下:   (1)连接灵活、使用方便 现在计算机系统
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved