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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G-sensor 驱动实验教程
——疯壳·嵌入式平板开发
5 c# J& {9 {" t% z! h( A
2 C8 b' i) B" b. j0 Y. O7 z# f% b* o

2 i+ O4 R' B* t# q% `1 A0 X6 w
4 V4 J5 p) ?. O2 U; H0 y# J, J第一节 引言 --- G-sensor 电路原理图详解  r* c7 D; i' p! ~8 e1 [
+ _* v) @! Y" U& k
  下图来源于文档 3128_sdk_a02_20170325.pdf 中第 2 页和第 12 页。' j+ Z- M& Z) H# G' I
  如下两张图可以确定 G-sensor 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,G-sensor 作为从设备。因为 cpu 的 I2c 不仅仅与 G-sensor 相连,它连接了多个 I2c 从设备,并且通过从设备地址来确定当前和哪个从设备通信。, [* j2 x" R7 e3 ]" p+ E+ k( }: M6 X

( T# o. D3 t7 ]5 I# U+ d) q ; S$ R+ i! e  ]4 M7 o. K
图1) ^4 o$ L2 {1 Y5 i: b% N: O2 `% O
3 w# b' x  |1 }' G+ H2 l% s2 b6 J
7 Q4 }7 Q! u. w1 O( c* K
图2  o; P+ F2 P/ h% k) h( m* B
( Z% T0 d* C6 U6 M9 o
第二节 G-sensor 驱动代码结构, {( G! Q; k' [2 p9 u
  _' w2 b7 ~% [7 x& h  z; Z4 o; W
  $(dir)\rk3128-source\kernel\drivers\input\sensors\accel\mma8452.c* h3 ?0 I# e( H2 @* C' T  V
  从代码路径可以看出 G-sensor 驱动和 input,sensor 设备有莫大的关系。
. }5 J5 u' b" E- ]7 J4 F- J1 e5 A$ Z/ y8 O1 ~% S+ T$ o  \! l
% a' R3 G# Z1 O; g8 k# l
图3: T% d* r- c  K* R8 k
  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-dev.c
. t7 Z( C# z1 n5 M" |  --- sensor 设备注册,主要是注册 sensor,input 设备,解析 dts 配置文件( U- [0 f* [1 V0 Z( r8 f
  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-i2c.c* Z: D/ Q) h8 Q
  ---sensor 的 I2c 相关处理
/ k9 f  v" d1 B# F, r
* T" _6 H5 c3 ^2 d第三节 实验代码) Y$ K% a4 \# j* @$ V6 }
1 ~; ], W% i( k1 @' u
1.dts 修改:
, P! I0 p; g5 h" F7 [# T4 N3 p3 N% ~$ `0 f
. ]& Y( N6 P3 ]( ?8 q/ O7 Z
代码1
6 X: u6 Q- s; T$ ?2.增加一个可以动态调节方向的测试函数如下(在 sensor-dev.c 中),用户可以通过adb shell 或者串口去输入数据完成屏幕方向调节的功能。
% ]  U/ u) f1 I& j+ N+ B" d3 O8 U0 T2 a$ n7 p( E7 n  c

4 L2 e( F% Y6 z
9 @! f) H- y% L' g代码2
: D% _: H$ {2 B$ J+ @! @7 R3.输入命令格式
: b2 W4 \  f* ~a.系统缺省的方向配置如下" x; R) X1 Q6 B6 P7 D$ f3 E
echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation b.测试命令如下* I- R! j4 z$ g. S( q# A7 T
echo gsensor_class={1, 0, 0, 0, 0, 1, 0, 1, 0} > /sys/class/gsensor_class/orientation' m% b; F7 Y- ?1 \; _2 ], x, h

6 i6 |. W7 [+ lecho gsensor_class={0, 1, 0, 1, 0, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation9 q) X) I$ I( q" L% Y7 C. z: a
# G/ n6 k2 w! m# w1 ~9 E
echo gsensor_class={0, 1, 0, 0, 0, 1, 1, 0, 0} > /sys/class/gsensor_class/orientation. V$ P: d, U7 B& g

) v$ \9 H" i" g) j3 S9 D" Z# u" \echo gsensor_class={0, 0, 1, 1, 0, 0, 0, 1, 0} > /sys/class/gsensor_class/orientation
( y& j% b' m! B) L# P; i' e, Yecho gsensor_class={0, 0, 1, 0, 1, 0, 1, 0, 0} > /sys/class/gsensor_class/orientation + ]2 L4 q4 Q% d7 F

& H' {  O" g# d4.代码调试中遇到问题- |1 e* c/ c: `0 f
  如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,会出现什么情况?为什么?   & o* e& t' U* W7 E3 p
  如果 echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation 命令提示输入不生效,可以尝试输入 su 命令提高一下权限。在我们开发板上面, adb 默认是 root 的,所以 adb shell 之后,直接是 root 用户。可以用 su 切换,也可以不用切换。2 K* W, }/ v  s" s

8 c8 d; d9 D; J" d7 I5 w. }) k第四节 实验步骤 --- GSENSOR 怎么调节方向; @- j- v+ {  l* G9 g
- R( A3 t0 x, T
  一般 GSENSOR 芯片贴片的位置变了,变换坐标就要跟着调整。
) d: v5 J3 u- Q7 F9 x  我们 Gsensor 是贴片好了的,这个用户无法更改,但是用户可以模拟一下如果板子不平放而是竖着放,屏幕平放的情况看优酷,如果保证屏幕的正常显示。
0 D" u+ y; ]+ L8 ^) b0 X
6 C. f/ U  ^* O3 W; E) h+ {第五节 实验现象
# W% ~  Z( D. Y! ~2 b  |) f4 e( v' x! d) Z# n1 m
  开发板放置成如下图一方向,什么命令可以让屏幕横着播放视频?2 Z. i2 K9 p  j  W6 l' j% T
  echo gsensor_class={-1, 0, 0, 0, -1, 0, 0, 0, -1} > /sys/class/gsensor_class/orientation
) M, ]6 Z0 I# ]9 ?& ~+ n3 P  输入如上命令后,屏幕变了,如图二。
7 R$ E/ N$ K) B+ s( B' k& }; t4 Q. I5 u" c! V) J, t
9 W) P! F7 b7 H9 x# u1 p6 E, u
图4, i/ }3 `& k" [8 W% M
$ v: v4 X# _/ V7 G! v! O
/ {, R% \% w& V, O) I5 i
图5  s8 j- T/ }, c9 M
$ S% G( H* L' i. X2 A! R! I

/ N' W" W$ L" k& H5 C
4 h" W. ~5 t$ ~5 W
8 b% a; Q) |; n, q2 M% x; P7 [文件下载请点击: 9、G-sensor驱动实验教程.pdf (631.95 KB, 下载次数: 0)
: f4 v& U' j4 m& A9 ]/ [- S6 [: q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 02:29 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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