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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

7 Q6 G$ _( @/ C+ W+ p+ |$ S% q) o! @

* P9 h4 g" J3 z' a* ^8 ?5 G2 d6 s0 U' A: R
第一节 引言 --- G-sensor 电路原理图详解$ L4 C8 g  Q; N/ _5 U" O, M  G; d

! z. p: [& ~0 Q" _" K" L& S% c  下图来源于文档 3128_sdk_a02_20170325.pdf 中第 2 页和第 12 页。
5 t; N2 v' d( _. y% q! V' X  如下两张图可以确定 G-sensor 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,G-sensor 作为从设备。因为 cpu 的 I2c 不仅仅与 G-sensor 相连,它连接了多个 I2c 从设备,并且通过从设备地址来确定当前和哪个从设备通信。
( K! A0 W. a6 C! o) A$ K6 t
* C/ j% c0 G# ?. \4 E6 ` 6 N" a8 @$ m1 D+ Y' ]
图1
* ?1 Y: i! V1 T' @8 |
4 R* h3 T* k* D1 a- i
6 K! s7 A! H/ S6 d图2
0 T) j0 ~4 M( v0 Z$ H, l+ e
, g; `9 o, k( {5 N- S第二节 G-sensor 驱动代码结构
+ V# J1 \8 ?1 [, x9 L7 s1 N
0 c$ E+ k+ Y4 z9 l5 ?  $(dir)\rk3128-source\kernel\drivers\input\sensors\accel\mma8452.c& s8 e) J6 I( ^( G
  从代码路径可以看出 G-sensor 驱动和 input,sensor 设备有莫大的关系。
. H' [7 g# B4 F: W% K5 }% d: N; D7 S3 q+ n$ j: D6 h

/ Q/ X" N3 h+ B" ^" r  t% R图3
! d/ t2 J& {+ S: B3 V7 J+ h  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-dev.c
- t' @; z, T- O: f  --- sensor 设备注册,主要是注册 sensor,input 设备,解析 dts 配置文件( T& g1 D( R% `+ y, \
  $(dir)\rk3128-source\kernel\drivers\input\sensors\sensor-i2c.c7 p( f: Z* ?0 N# O  i2 V& ~
  ---sensor 的 I2c 相关处理" {- J* S! h3 D3 w5 U  @" w- k
  x& I0 h+ Y+ K8 \
第三节 实验代码
, q+ |2 g8 t- a' I4 I, ^# g$ u) L) O% C! c6 n. V
1.dts 修改:
( z, e, d, L6 b( F
( W8 L2 \! X- d: X5 J9 r, \ " C- E: K7 f% D5 w
代码1
4 U( }" G! o# I- u) t2.增加一个可以动态调节方向的测试函数如下(在 sensor-dev.c 中),用户可以通过adb shell 或者串口去输入数据完成屏幕方向调节的功能。
3 \- i) L; P5 [- w: C
: Y$ }% Z2 y& w 6 ]" E2 O- _5 E) p) m1 k; p( D0 E. j

% ?, E4 `+ ~3 h# H& V' `代码2
8 E$ K3 m5 S8 e3.输入命令格式
; o. ?% u8 G3 c1 s" [$ W7 W1 y5 ea.系统缺省的方向配置如下4 T. W1 l0 G& E+ ?; L$ J; C# B
echo gsensor_class={1, 0, 0, 0, 1, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation b.测试命令如下
) ]) S( D( m5 R( d! Y& _2 F; techo gsensor_class={1, 0, 0, 0, 0, 1, 0, 1, 0} > /sys/class/gsensor_class/orientation
, @. U, C: V; S( }% \) h6 J  w2 \9 E0 K" D  V# P* ~6 W& h- }5 s
echo gsensor_class={0, 1, 0, 1, 0, 0, 0, 0, 1} > /sys/class/gsensor_class/orientation
% D! G& s! [( I" E7 J: S% d  l' Z' u) I0 Q' l
echo gsensor_class={0, 1, 0, 0, 0, 1, 1, 0, 0} > /sys/class/gsensor_class/orientation; C  W* M8 \. f3 b  a

( U3 V: \1 O; s* }7 ^echo gsensor_class={0, 0, 1, 1, 0, 0, 0, 1, 0} > /sys/class/gsensor_class/orientation7 V3 N' r: p6 P% k) z
echo gsensor_class={0, 0, 1, 0, 1, 0, 1, 0, 0} > /sys/class/gsensor_class/orientation
& f0 O( t' x+ u4 m, Y( X4 P3 Y* n8 l( W/ {+ ?* ]: |, _% i3 Q
4.代码调试中遇到问题- T% }, K; [9 S( y  E
  如果 gsensor_set_orientation_online()直接返回 0 或 1 而不是 count,会出现什么情况?为什么?   5 a% A0 S3 M' t0 I; a7 x
  如果 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 z* @& k/ F0 i: e
* h/ q, i# ~6 l2 X: ^第四节 实验步骤 --- GSENSOR 怎么调节方向  x7 v( \. D6 W8 `( p% {* x/ |
# `& |, R. G. `/ i5 Q
  一般 GSENSOR 芯片贴片的位置变了,变换坐标就要跟着调整。
9 c5 @6 a1 W# S' d1 F. o' M  我们 Gsensor 是贴片好了的,这个用户无法更改,但是用户可以模拟一下如果板子不平放而是竖着放,屏幕平放的情况看优酷,如果保证屏幕的正常显示。
  @* y8 a" F0 a( j
0 d1 N1 c* F7 X& _. h" F9 m9 l& m3 M第五节 实验现象
( }! ?0 u, d  I! b8 e' F5 `: F% i" Q6 B1 d+ ]7 Y  o2 [
  开发板放置成如下图一方向,什么命令可以让屏幕横着播放视频?
* b+ |& L& R0 L. b* A9 N" i  echo gsensor_class={-1, 0, 0, 0, -1, 0, 0, 0, -1} > /sys/class/gsensor_class/orientation
) |. d$ d8 A5 F  输入如上命令后,屏幕变了,如图二。- Z6 F! |" P( j5 i: E8 F- {* n

% \6 J  c/ `1 P' _$ q # S+ A/ ]; ]( T
图44 f5 R" F" F7 {1 A3 B: F: w0 p6 \

" i( C# \4 B, T8 I1 V * A4 X! B2 U" b8 t, D
图51 j8 t$ f) s9 V% A* x7 T
9 V( `3 B3 S0 @" f! h

7 B, F, V; b2 e/ w4 y4 `
; ?6 E* @# H* d& P- j8 |" _: K4 A1 u, T7 _6 g$ k
文件下载请点击: 9、G-sensor驱动实验教程.pdf (631.95 KB, 下载次数: 0)
- H9 i6 x1 \) I$ ]* B
. P! U# v, b+ ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-22 20:59 , Processed in 0.093750 second(s), 27 queries , Gzip On.

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

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

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