rockchip 3128 平台USB接口鼠标U盘功能调试日记
2019-04-12
关键词: rk3128 OTG、rk3128外接鼠标U盘、RK外接鼠标U盘
本篇文章是笔者根据自己当前所掌握知识对 rk3128 平台 USB 接口接鼠标实现输入功能调试的一个记录,不对文章所述内容的绝对、完全正确性负责。
1、前言
笔者最近有点烦。无端端接到公司让调试 rk3128 平台样机的任务,虽说自己是 Android 系统集成开发出身,但那也是 2 年前的事了,笔者现在单恋 bigdata ,只想静静地和它厮守余生好吗!不过牢骚归牢骚,既然是领导派的任务,那还是要做的。那既然都做了,不输出点什么又让我很不自在。
今天这个问题的起因是因为我们的样机条件实在是太差了,没有配置触摸屏,仅一块显示屏。无法输入的话接下来的工作可不好做啊。于是就想到了外接鼠标,通过鼠标来模拟触摸输入的方式来控制 Android 系统。而我们这块样机,刚刚好 OTG 功能是不正常的,于是就将这一调试过程记录下来,以期后续能给遇到有同样问题的同学一些启发。
笔者手里的样机是 rk3128 平台的样机,运行 Android 4.4 操作系统。问题的现象自然就是插上鼠标和 U 盘以后不能正常工作与识别。下面是排错过程
2、Debug
调试过程无非就两个方向:1. 检查硬件; 2. 检查软件 。 依据笔者多年被坑经验来看:作为一名软件开发,但凡样机出现一些匪夷所思的问题,稍微检查一下我们的代码没有发现问题以后,就要怀疑硬件了。而作为一名要经常和各种硬件设备打交道的程序员来说,掌握一些基础的硬件开发知识也是很有必要的,这些基础的硬件知识,往往能让我们在怼硬件时更理直气壮一些。
2.1、硬件问题排查
原理图、PCB 图检查
这个工作一般和我们程序员无关。主要是因为大多数程序员都不懂。不过这块问题比较 “玄学” ,像笔者就遇到过,硬件检查了多次,确认自己画的图和芯片厂商给的电路参考图没什么出入了,但是最后还是查出来某个元器件电压值差了一点。虽然这种情况比较少见,但实在排查不出原因的时候,也可以作为一个分析点切入进去。
电压检查
通常,鼠标和 U盘 的工作电压都是 5V 。在前面确认到电路图没有什么问题以后可以来测量一下 USB 接口的供电电压。
usb 原理图
通常,在上面两步都检查过了没有问题以后,就可以来软件层面排查了。
2.2、软件问题排查
基础功能确认
通常样机在初期阶段都会有非常多的问题,甚至有不少连系统都不能正常启动的。所以我们首先要确保我们的系统是能稳定运行的。如何确认?有屏幕看能否正常进入到 Android Launcher 界面。没屏幕的看串口,看通过串口能否正常与系统交互,串口控制台进程一般是在 5 ~ 8 秒后就启动了。如果很不幸你的控制台进程默认是关闭状态的,那我们还可以看内核打印。rk3128 平台在系统稳定运行以后可以在内核中看到以下三条打印
1. 开机动画结束打印
service.bootanim.exit 属性的设置。
2. 以太网口启动打印
eth0: PHY ...
3. 系统健康管家进程的监控打印
healthd: ... 这个监控打印在系统运行稳定以后每分钟打印一次。
驱动检查
在 Linux 内核启动初期就是去执行各种驱动程序。可以适当关注一下开机时的系统内核打印,看看是否有报什么错误信息。这一块没有什么标准的,如果真的是这里出了问题,问题的确认就要看自己的造化了。
dts 配置检查
在软件层面上,比较大可能都是这一块出了问题。
USB 接口的默认配置信息位于
./kernel/arch/arm/boot/dts/rk312x.dtsi
rk3128 平台的 USB 默认配置
默认的配置信息通常是不会有问题的,主要看看自定义的 dts 中是否有修改默认配置的情况。笔者这里确实是发现了 usb-mode 栏的值被修改了。
usb-mode 默认值被修改
笔者这边,将这个 rockchip,usb-mode 的值改成 1 以后问题就解决了。
在串口中也可以通过命令来读取这个 usb-mode 的值。
cat /sys/bus/platform/drivers/usb20_otg/force_usb_mode
在拥有权限的情况下,可以直接通过 echo 命令来更改这个文件的值以动态修改 USB 模式。
echo > /sys/bus/platform/drivers/usb20_otg/force_usb_mode
echo 2 > /sys/bus/platform/drivers/usb20_otg/force_usb_mode
USB 的几种工作模式
USB 设备的通信模式为 主/从 通信模式。只有当主设备(usb-mode: Host )与从设备(usb-mode: Device )连接时,才能成功建立数据通信。而我们的鼠标、U盘在 USB 通信中都属于 从设备 。因此,我们的开发板就必须设置为 主设备 才可让这些设备正常工作。
参考: [RK3288][Android6.0] USB OTG模式及切换
rockchip 3128 平台USB接口鼠标U盘功能调试日记的更多相关文章
- 将PS/2接口鼠标改造成USB接口鼠标
改造接线图 不是所有PS/2鼠标都可以改为USB鼠标的,可以改的PS/2鼠标的特征: A.早期PS/2鼠标电路板一般带有两块集成电路,(一块光电感应,一块按键或USB协议转换,和一只24M的晶体振荡器 ...
- USB接口介绍
USB设备系统分为两个部分,USB Host端和USB Device端,以USB接口的U盘为例子,U盘自身是一个USB Device,PC机的USB接口以及相关的控制电路为USB Host部分 ...
- USB接口禁用小工具v1.0.1
由论坛用户原创制作的一个USB接口工具, 可选择手动/自动启动或者禁止启动模式, 开启禁止启动模式后USB接口将关闭识别功能, 有效防止U盘设备侵入,对于机房实验室设施来说相当管用. 下载地址:htt ...
- 笔记本USB接口案例分析和是实现
笔记本电脑 笔记本电脑(laptop)通常具备使用USB设备的功能.在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以 ...
- 【转】重装win7后,所有USB接口无法使用(鼠标、键盘、U盘)
转自:https://blog.csdn.net/u010887744/article/details/45270245 今天给一朋友重装系统,华硕FX50J,修改BIOS重装了win7,结果所有US ...
- 接口的多态使用; 接口应用实例:U盘、打印机可以使用共同的USB接口,插入到电脑上实现各自的功能。
接口的多态使用 接口应用实例:U盘.打印机可以使用共同的USB接口,插入到电脑上实现各自的功能.
- 突发小事件,USB接口问题
昨天遇到的突发事件,突然USB接口全部瘫了,键盘鼠标全部不能用,换到别人电脑上可以,吓尿了,以为本子主板挂了,但是发现插U盘竟然可以识别而且可以打开,感觉可能是静电问题,果然,彻底关机,拔掉电池,然后 ...
- USB接口无法识别设备
http://windows.microsoft.com/zh-cn/windows/answers?tId=14fa1e44-0a19-48ef-9ba7-b7e512a837a4 小琼子 提问 2 ...
- 下一代USB接口将支持双向拔插,于明年亮相
近日,USB接口标准制定组织表示新一代USB接口将于明年年中亮相,而其名称目前被暂定为了USB Type-C.该组织表示USB Type-C标准将允许制造商采用更纤薄的接口设计,在实用性大大提高的同时 ...
随机推荐
- 搞懂MySQL InnoDB B+树索引
一.InnoDB索引 InnoDB支持以下几种索引: B+树索引 全文索引 哈希索引 本文将着重介绍B+树索引.其他两个全文索引和哈希索引只是做简单介绍一笔带过. 哈希索引是自适应的,也就是说这个不能 ...
- 【转】使用MySQL处理百万级以上数据时,不得不知道的几个常识
---------------------------------------------------------------------------------------------------- ...
- 由于服务主机:DCOM服务进程占用过多CPU,导致系统卡死
最近在使用电脑的时候,总是出现电脑死机,而且鼠标也是经常卡在那里不动了,开始以为是鼠标的问题,还换了个鼠标(飙泪中),这还是一个血的教训啊!!!之后打开任务管理器发现CPU占用已经达到100%,而且一 ...
- 授权管理-LDAP-介绍与环境搭建
LDAP介绍 转自:https://blog.csdn.net/tanshizhen119/article/details/79942315 还是先来百度百科介绍. LDAP是轻量目录访问协议,英文全 ...
- js 滚轮控制图片缩放大小和拖动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- wordpress 角色权限
自带多媒体库上传权限:edit_other_pages
- java 线程池 ---- newCachedThreadPool()
class MyThread implements Runnable{ private int index; public MyThread(int index){ this.index = inde ...
- <3>Centos系统完整安装python流程
一.环境 系统:Centos7 Python:3.6.5 自带pip.setuptools 二.命令 介绍:因为yum是依赖于python2,所以千万别删除自带的python2,下面的方法就是py2 ...
- Python 经典面试题汇总之网络篇
网络篇 1.简述 OSI 七层协议 物理层:定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质. 数据链路层:定义如何传输格式化数据,以及如何访问物理介质. 网络层:定义逻辑网络地址. ...
- UNIX DOMAIN SOCKET效率
关于UNIX DOMAIN SOCKET和普通udp socket的对比 在TX1(4核A57 1.7GHz)的板卡上进行测试,每个包大小设置为1024,全速收发,UDS的速度在90Mbps左右,UD ...