找回密码
 注册
关于网站域名变更的通知
查看: 192|回复: 0
打印 上一主题 下一主题

【嵌入式开发教程9】疯壳·平板电脑-G-sensor 驱动实验教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-8 16:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
G-sensor 驱动实验教程
——疯壳·嵌入式平板开发
' }' {) N3 o4 |: g

: H2 \1 X8 R4 B' L
8 B9 a# }, e6 X% W) {' i
. f" t, h. s1 d第一节 引言 --- G-sensor 电路原理图详解$ r, ^. f2 V$ N# R( C6 u

' d+ @+ Y4 Z4 P, }  下图来源于文档 3128_sdk_a02_20170325.pdf 中第 2 页和第 12 页。
$ ]$ |/ p4 j4 q1 L! w  如下两张图可以确定 G-sensor 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,G-sensor 作为从设备。因为 cpu 的 I2c 不仅仅与 G-sensor 相连,它连接了多个 I2c 从设备,并且通过从设备地址来确定当前和哪个从设备通信。" o' }* `8 k+ U: ~5 \+ x' p( W

, `, \. T/ n* Z
' |9 x' A8 ~) m# I. [图19 v# k* n8 [! S7 x( R3 |: Y

  E! l4 o4 D8 d8 \5 o8 u4 W! ~ : K/ E( h7 A7 Y/ I1 c6 P
图2
. a% q! _# j' C' O
% u/ a. T" O9 L* v第二节 G-sensor 驱动代码结构4 a* w1 b% B( H8 l' z

! p, R! M/ R$ A1 t. J- A+ a  $(dir)\rk3128-source\kernel\drivers\input\sensors\accel\mma8452.c9 G; H, P$ H4 K% p
  从代码路径可以看出 G-sensor 驱动和 input,sensor 设备有莫大的关系。2 E# H9 `. @* W, d* [, V" P$ A

  n& M; E1 r4 K8 B) O, l
* W3 m- m- ?, Q; u图3' F  G$ r- h2 }% n" W4 K% U
  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-dev.c9 L% G7 U1 l  z% k  W- K
  --- sensor 设备注册,主要是注册 sensor,input 设备,解析 dts 配置文件$ p& {7 M- g- v$ D( |9 X- P
  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-i2c.c, J5 k9 S! L4 Q6 R1 Q
  ---sensor 的 I2c 相关处理
0 ~/ K9 E% Z% }6 L' o5 H$ b! s4 B3 A( K7 Z* N7 W, [
第三节 实验代码+ V1 E. k% k6 _7 z
* Y7 I+ l' @8 A( m& ^
1.dts 修改:
: X5 j7 e1 {" P- u5 H9 u" N) z1 O3 W" c3 S# o
4 v# K% L: W+ {! o
代码1. S1 S0 ^9 G" _/ W
2.增加一个可以动态调节方向的测试函数如下(在 sensor-dev.c 中),用户可以通过adb shell 或者串口去输入数据完成屏幕方向调节的功能。2 t( W& a% A/ X0 K

2 ?* u9 P4 ~/ p9 X' f( H. M0 T
3 F1 T& U; p1 c; ?1 |* w : Z3 r. h5 |- M( K0 n' K+ o& O
代码2/ z  w% ^( e+ i7 X5 U
3.输入命令格式
$ E$ j& U% i3 t2 a, _- p. ca.系统缺省的方向配置如下
6 R6 }9 [9 D  s% V' C3 qecho gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation b.测试命令如下# L1 u6 u! g, T6 s
echo gsensor_class={1, 0, 0, 0, 0, 1, 0, 1, 0} > /sys/class/gsensor_class/orientation3 O+ [5 s+ _& s5 M$ d) T/ c8 ?7 \$ }
; w/ `2 x# R6 z* X
echo gsensor_class={0, 1, 0, 1, 0, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation
; |9 R% h3 k) Q* R) _  k, z
2 t% M1 d/ z" xecho gsensor_class={0, 1, 0, 0, 0, 1, 1, 0, 0} > /sys/class/gsensor_class/orientation
# W8 D: i$ l3 V7 G0 {  t  G# [  Y
: J1 ]) A) s% E6 a9 W, ?echo gsensor_class={0, 0, 1, 1, 0, 0, 0, 1, 0} > /sys/class/gsensor_class/orientation
1 R: Q& v7 I: \* |echo gsensor_class={0, 0, 1, 0, 1, 0, 1, 0, 0} > /sys/class/gsensor_class/orientation 7 C4 _5 _" |+ \# v" u3 |& ?+ F

* y5 a! z8 y, F& o# l: V4.代码调试中遇到问题' T. P6 ?9 ^: C
  如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,会出现什么情况?为什么?   2 \% t/ ~& O9 g4 P$ C: [) Q0 Q
  如果 echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation 命令提示输入不生效,可以尝试输入 su 命令提高一下权限。在我们开发板上面, adb 默认是 root 的,所以 adb shell 之后,直接是 root 用户。可以用 su 切换,也可以不用切换。
" s" w0 t" }- x' ?0 k
1 X9 t1 {4 ]) i9 e, \4 ?) s第四节 实验步骤 --- GSENSOR 怎么调节方向
/ \1 O) u0 i# k9 A1 e% D% d5 H* f! C( L5 h, U2 i1 T. S
  一般 GSENSOR 芯片贴片的位置变了,变换坐标就要跟着调整。
4 y! T/ g) @" Z' I8 `# F$ a! C9 b  我们 Gsensor 是贴片好了的,这个用户无法更改,但是用户可以模拟一下如果板子不平放而是竖着放,屏幕平放的情况看优酷,如果保证屏幕的正常显示。
  A* Y5 H7 V2 C: h9 j8 N+ B
3 A; b9 J+ ~- x& G* A第五节 实验现象
, D. _5 ?! |0 x% ^  O- t( {
  m: }, K4 `4 [9 I2 z+ Q. [  开发板放置成如下图一方向,什么命令可以让屏幕横着播放视频?! U6 M8 v5 s$ Z9 W2 ]6 q1 t
  echo gsensor_class={-1, 0, 0, 0, -1, 0, 0, 0, -1} > /sys/class/gsensor_class/orientation( d: L  O" R1 H  l! z3 k  m( ^
  输入如上命令后,屏幕变了,如图二。
2 _2 _* m% f9 M) W$ j6 s3 X- |
2 r& I; n* [# q% }2 K
' m- N' o) l9 m& X图43 A$ }0 I3 u1 F7 ~6 S2 p0 ^0 N

$ J0 y# c4 E" C) M( q5 @
6 Q0 o. ~" I% R! F, m  w图5  l) p4 Z9 [. r/ e9 p) W
+ }$ U: `: h+ y# o# m9 n( }4 f5 ^

! H. P. K: P% t' O6 I7 B! V! N
% |6 Z+ K# Y* r/ G
+ z: j& d% ]  I" T5 r0 n1 ~文件下载请点击: 9、G-sensor驱动实验教程.pdf (631.95 KB, 下载次数: 0)
1 x9 j. i9 I, |# M2 ~  T% _* s. H) T# ?
. i, |$ [; g+ E4 M' d4 f. v# d
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-25 21:19 , Processed in 0.125000 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表