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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G-sensor 驱动实验教程
——疯壳·嵌入式平板开发
/ E; k/ I5 b9 C/ D/ F. d* L4 Y

# U$ G2 d- V2 `$ N8 F  a  g! c) I4 P5 j4 @/ ~4 [/ Q( g$ A
" o! r3 n' j. B6 V
第一节 引言 --- G-sensor 电路原理图详解# {3 g' x$ ^0 P9 x; }

& ^' X7 s& o4 @- _  q  f  下图来源于文档 3128_sdk_a02_20170325.pdf 中第 2 页和第 12 页。5 y- G) l- m9 i; ^# Y
  如下两张图可以确定 G-sensor 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,G-sensor 作为从设备。因为 cpu 的 I2c 不仅仅与 G-sensor 相连,它连接了多个 I2c 从设备,并且通过从设备地址来确定当前和哪个从设备通信。. V$ P- A/ l% t
- `' ^6 o3 r. z( d8 o

0 H: f7 x( A: r图1
% c0 a3 N1 k  J- `& n: d! X6 w1 s: ^% x  P4 ~3 s4 u0 J
* c+ _: Z7 _7 n3 p1 G- u
图2" C( V, ]* C4 v. f4 ~

. a, _; p; l3 d第二节 G-sensor 驱动代码结构
5 i+ t/ [3 [" y: @
4 V( m$ N+ r" P& {  $(dir)\rk3128-source\kernel\drivers\input\sensors\accel\mma8452.c
+ g/ h) M$ j3 c' Z7 |3 x- P5 ?  从代码路径可以看出 G-sensor 驱动和 input,sensor 设备有莫大的关系。- C% X  S4 o6 ^

" K0 ^8 ]4 [; Y6 W1 L" a8 T5 _9 b : m  z' Q  j$ s& X- W+ o& N
图3
7 G! q4 E; F# E4 ?  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-dev.c
* o$ U( ]- k3 H" T  --- sensor 设备注册,主要是注册 sensor,input 设备,解析 dts 配置文件
6 H' p5 H8 I& N  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-i2c.c
! V9 m0 L& K9 N* z3 L) E4 k. ~% _  n  ---sensor 的 I2c 相关处理
  h- _6 O( W" e
+ u/ h  t7 m% i4 G% \第三节 实验代码* R1 t" l  ~: S( e# k

' p1 \7 I: n% n. w1.dts 修改:* Z4 o. @( @* O0 \  [4 x2 A  z

8 Y7 t& I$ e8 t5 s9 l 1 v! D: i9 T3 F* J" x  r' R* k
代码15 B8 k8 d, C) I# ~
2.增加一个可以动态调节方向的测试函数如下(在 sensor-dev.c 中),用户可以通过adb shell 或者串口去输入数据完成屏幕方向调节的功能。
; ^5 ~% ^* q2 w2 B% l+ J8 C7 Y* `5 |0 Y% ~2 z2 k' k

+ U/ [4 N- y( { % n3 Q# i1 V9 C2 o" J7 n, k
代码2" ]( {5 [/ C3 ^2 p7 v  ?
3.输入命令格式
5 |: L2 _! n6 f1 n: Q: W9 U; Ka.系统缺省的方向配置如下, W! U: e7 m* D  w$ r6 ^& k& F; K* J
echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation b.测试命令如下) j7 P9 ~0 l) w0 ?: \8 w; r
echo gsensor_class={1, 0, 0, 0, 0, 1, 0, 1, 0} > /sys/class/gsensor_class/orientation' q9 i- T: m" X7 b& Y4 L- O$ p
: h8 x& x! o' ]$ A3 G
echo gsensor_class={0, 1, 0, 1, 0, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation; X0 ?+ R1 E& X: ]

/ q, E5 W# S4 G  q9 @echo gsensor_class={0, 1, 0, 0, 0, 1, 1, 0, 0} > /sys/class/gsensor_class/orientation
! R* L  f, e+ `% S. n& H( t8 O* y
echo gsensor_class={0, 0, 1, 1, 0, 0, 0, 1, 0} > /sys/class/gsensor_class/orientation+ f+ o/ }2 D. B1 c$ O
echo gsensor_class={0, 0, 1, 0, 1, 0, 1, 0, 0} > /sys/class/gsensor_class/orientation
  n6 |! M( @3 W8 {& _+ O# u) v- U+ `* f6 C; C6 n
4.代码调试中遇到问题" A& h. n0 s8 R" _+ z, M
  如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,会出现什么情况?为什么?   % }  g! T! i, r3 G5 [
  如果 echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation 命令提示输入不生效,可以尝试输入 su 命令提高一下权限。在我们开发板上面, adb 默认是 root 的,所以 adb shell 之后,直接是 root 用户。可以用 su 切换,也可以不用切换。6 e8 G4 H6 N, o( M( v) p

  {2 J8 j9 @+ W% i第四节 实验步骤 --- GSENSOR 怎么调节方向
5 q4 N& Y9 n" F: R; m. ?, y
9 B$ N! [5 f  W  `' \, Q# w  一般 GSENSOR 芯片贴片的位置变了,变换坐标就要跟着调整。
! k; a' J" Q- V$ T% `  我们 Gsensor 是贴片好了的,这个用户无法更改,但是用户可以模拟一下如果板子不平放而是竖着放,屏幕平放的情况看优酷,如果保证屏幕的正常显示。
6 v9 W+ `* r( Y3 ~% ^2 @% i3 \- z/ n+ i9 A% Y; `
第五节 实验现象
. Q8 g3 r0 O& b/ M. ?+ `2 P  D4 U6 r. g2 \6 V4 @1 z
  开发板放置成如下图一方向,什么命令可以让屏幕横着播放视频?
# f2 Z0 M; A% t8 U* w  echo gsensor_class={-1, 0, 0, 0, -1, 0, 0, 0, -1} > /sys/class/gsensor_class/orientation
+ {# ]9 u9 `1 F$ }2 s  输入如上命令后,屏幕变了,如图二。
$ V% Y& _; G7 q* _& J* d
$ }3 P( ~' z! H& N- `5 o1 d% s6 q6 s & [( ~% P1 i! X2 r
图4
9 I7 Y. G- t9 [! C# K3 o) U# P2 x6 a* \
: d$ w4 |" R. j3 {
图5; H# w$ J4 V7 ]7 l3 }

1 Y: E1 t/ b; g0 R& b. r8 H% k7 F( P1 G7 z& _1 M5 ~7 j0 O# S
- r  @* ^) v; `5 t: r+ @/ [# W
5 J- N) p1 x6 Q+ |
文件下载请点击: 9、G-sensor驱动实验教程.pdf (631.95 KB, 下载次数: 0)
5 A! Q% I" Y' c! c2 d7 S/ w7 I. z2 l" o1 w2 T- q

该用户从未签到

2#
发表于 2022-8-23 16:07 | 只看该作者
有没有整个教程的完整版6 |" [) h5 d' w- [
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 04:14 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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