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

【教程9】手把手教你做平板电脑-G-sensor 驱动实验教程

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G-sensor 驱动实验教程
——疯壳·嵌入式平板开发

  m$ m! i! K- y3 n% J8 ~" l8 Q1 E, m) ?3 o

" z3 \) d4 C# Z* H% n5 h  x. ?, P0 h1 o8 X9 I3 u
第一节 引言 --- G-sensor 电路原理图详解* z7 ]1 v- {5 Q7 s: ]
9 L7 {: _+ M- Y2 C
  下图来源于文档 3128_sdk_a02_20170325.pdf 中第 2 页和第 12 页。
' D" W9 n7 r1 W- y0 A6 I  如下两张图可以确定 G-sensor 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,G-sensor 作为从设备。因为 cpu 的 I2c 不仅仅与 G-sensor 相连,它连接了多个 I2c 从设备,并且通过从设备地址来确定当前和哪个从设备通信。$ S& B, n0 e% p- D- R- u

! A: _3 X6 E/ z9 T $ b7 S# q0 R' a5 s% n8 C
图1! U2 F9 {5 l1 X, I- ^0 z. p
/ f" B+ e8 Q! J' B* Q2 c+ K* K# I
2 J/ J8 Z9 \& i& q& {! W
图20 u6 h  m( D& w& Y# e

+ v  m$ |* X; ~- Y( Q# U% F第二节 G-sensor 驱动代码结构
* W- Q4 b" h1 ^# I
& }/ D" E' z. t6 V% G' a, C  $(dir)\rk3128-source\kernel\drivers\input\sensors\accel\mma8452.c+ L! Q0 L2 h% [4 g, H+ s/ e8 ^
  从代码路径可以看出 G-sensor 驱动和 input,sensor 设备有莫大的关系。
$ K: i0 K9 b: |" o1 w# B' F1 ~/ u' x8 ~+ u- X4 k; @- D0 q
4 e/ M- \% ~6 W2 x4 S" z6 F
图3
( N* e. u9 m2 }! D0 ?; a& y& i  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-dev.c
2 H0 E$ B& x8 p  --- sensor 设备注册,主要是注册 sensor,input 设备,解析 dts 配置文件
$ H% G) X- _6 }+ `' d0 w% G" g  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-i2c.c
' L& L8 @9 R* Y4 v  ---sensor 的 I2c 相关处理3 g  s" [, |$ c  m; G2 c% ]% A
  g# |0 d, v" F2 i* Y8 b
第三节 实验代码
) C2 F' R. j- Q5 M. P4 m0 V& N: f" a7 H' F0 X' D2 x
1.dts 修改:. t2 x! u# b6 X2 e: J

/ i  c9 |1 J; I" M3 h" A- r2 i , E+ Y* D* q# U. s3 ?
代码18 g$ H# `# @  J  ~
2.增加一个可以动态调节方向的测试函数如下(在 sensor-dev.c 中),用户可以通过adb shell 或者串口去输入数据完成屏幕方向调节的功能。9 ^) T" f/ X% f" T: J3 d2 _

. d( ^* W7 _3 ~3 e
$ ^) N" D! z! x1 \6 s8 j. l  ]8 t- C   J9 ^& Z3 C0 n8 r9 N
代码2
" Q: D& W% ~# p5 z3.输入命令格式
5 ?; Z. }5 ?2 a# W% f# a+ ja.系统缺省的方向配置如下
. F4 @; }+ a$ c  Necho gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation b.测试命令如下( N/ R& D4 Q  T' X# @
echo gsensor_class={1, 0, 0, 0, 0, 1, 0, 1, 0} > /sys/class/gsensor_class/orientation
# l. K* o0 Q- M3 a$ I0 ^& K
" ~2 m: w7 b7 [- secho gsensor_class={0, 1, 0, 1, 0, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation
5 i2 A, u# p7 g3 B! Z9 B
3 S- @, j5 D8 R. b1 |! Lecho gsensor_class={0, 1, 0, 0, 0, 1, 1, 0, 0} > /sys/class/gsensor_class/orientation
  U2 z# D: {1 e/ `( q2 C3 Q( x. c# r2 V% E' r: E
echo gsensor_class={0, 0, 1, 1, 0, 0, 0, 1, 0} > /sys/class/gsensor_class/orientation
, g1 P4 l( p7 d9 Z" ]/ oecho gsensor_class={0, 0, 1, 0, 1, 0, 1, 0, 0} > /sys/class/gsensor_class/orientation ( ]( C5 k! N% C% P: n8 c

, l5 K; x3 v9 t2 V8 J/ v4.代码调试中遇到问题
9 h+ _1 O4 E0 ]6 M% l  如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,会出现什么情况?为什么?   
( V: n6 u( b4 F  如果 echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation 命令提示输入不生效,可以尝试输入 su 命令提高一下权限。在我们开发板上面, adb 默认是 root 的,所以 adb shell 之后,直接是 root 用户。可以用 su 切换,也可以不用切换。$ ]9 K7 A" N" @" t! ^5 S. ?  m2 y8 R

) R( A5 q7 h& v* @& w& m第四节 实验步骤 --- GSENSOR 怎么调节方向
: H4 x/ i/ S4 P% }: b" I$ e
+ K1 k/ w! x" h) g" C  一般 GSENSOR 芯片贴片的位置变了,变换坐标就要跟着调整。
# K; ~/ r2 `9 N: D& s0 |! d/ n  我们 Gsensor 是贴片好了的,这个用户无法更改,但是用户可以模拟一下如果板子不平放而是竖着放,屏幕平放的情况看优酷,如果保证屏幕的正常显示。/ |% ^4 A) v7 g: @. x

& n2 k' n1 J9 k" a' \( l第五节 实验现象5 }; f# y, Q* V0 e- O3 E# R
0 j$ |) C9 G4 r) j- R+ r
  开发板放置成如下图一方向,什么命令可以让屏幕横着播放视频?
/ {! k# d( O: |1 p  echo gsensor_class={-1, 0, 0, 0, -1, 0, 0, 0, -1} > /sys/class/gsensor_class/orientation
: X% m: @$ \, L, k  输入如上命令后,屏幕变了,如图二。
' V* P9 Y: e) N' |3 C
# X, t. n/ K$ h: |, K0 D
! K# j, G/ Q. R! x. v图4
8 Q% V* b* w( F* f6 D# R1 a- m! r% f/ S- h2 P# K

( ~" |0 H, V$ G+ i" |8 \图5
# B' c. ~/ o5 F" \0 ?; p8 j4 L5 b" Q. S, u

4 T9 @& H" D/ J
  [3 f7 j" f1 J. w) y, n3 U: [2 g  S: z4 E+ d; f) {+ [8 H3 F
文件下载请点击: 9、G-sensor驱动实验教程.pdf (631.95 KB, 下载次数: 0)
& t  e& u9 G$ b5 [/ L" g7 Y3 W( j. N9 P  X/ Z  z  b3 ^

该用户从未签到

2#
发表于 2022-8-23 16:07 | 只看该作者
有没有整个教程的完整版( D$ C- K- w) P2 R# S& R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-28 19:51 , Processed in 0.203125 second(s), 26 queries , Gzip On.

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

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

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