[問題] 如何使 BMA150 加速規G-range切換?

看板AndroidDev作者 (800IM)時間14年前 (2011/12/01 09:03), 編輯推噓1(1013)
留言14則, 7人參與, 最新討論串1/1
  小弟只有 C++ 和 VB6 的程式基礎 由於做研究需要攜帶型加速規,剛好手機上有,Chip 是 BMA150, 大多數手機都用的型號。目前可用範圍只有+-2G,不敷使用。   Datasheet 上說可以透過 via SPI/I2C 的方式來切換到+-8G,但是 我找很多資料看很久,還是不知道什麼是via SPI/I2C??只知道Andriod 的語言和 C 很相似,又好像有些不一樣 ?! 國外論壇,我也找了很多,發現都沒有談到我要的。倒是有個外國人 也在不少論壇發問相同問題,他也沒得到答案。 ------- 我剛剛找了函式庫 bma150.h 來看,發現一段碼 /* range and bandwidth */ #define BMA_RANGE_2G 0 #define BMA_RANGE_4G 1 #define BMA_RANGE_8G 2 似乎是只要在某個方傳入 BMA_RANGE_8G 或 2 就好了?! 可是我找不到在何處傳入? 就算找到了,又要如何寫入手機呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.52.205 ※ 編輯: deo2000 來自: 61.224.52.205 (12/01 10:26)

12/01 11:13, , 1F
在kernel層 BMA150是接在i2c或spi的bus上...
12/01 11:13, 1F

12/01 11:28, , 2F
應該是在kernel driver probe起來之後去設定的
12/01 11:28, 2F

12/01 11:56, , 3F
設定register吧
12/01 11:56, 3F

12/01 13:41, , 4F
太偏硬體了,你可能需要補一下嵌入式系統的知識
12/01 13:41, 4F

12/01 20:17, , 5F
先看看驅動有沒有註冊sysfs 也許可以直接切換mode
12/01 20:17, 5F
我能到看起來像驅動的檔案,打開都是*.so的機器語言耶 ※ 編輯: deo2000 來自: 61.224.52.205 (12/01 21:07)

12/02 00:00, , 6F
要看看driver 有沒有調整的方法
12/02 00:00, 6F

12/02 00:04, , 7F
沒有的就得修改driver 看SPEC對某個register修改
12/02 00:04, 7F

12/02 00:10, , 8F
手機上... 除非你重上驅動程式... 否則廠商給你2G就是2G
12/02 00:10, 8F

12/02 00:10, , 9F
不然就是廠商的driver+hal一開始保留了改range的能力
12/02 00:10, 9F

12/02 18:42, , 10F
一般都是i2c
12/02 18:42, 10F

12/02 18:42, , 11F
如果你知道怎麼做的話,可以寫command tool強制下i2c指令改
12/02 18:42, 11F

12/02 18:43, , 12F
或者用現成lm-sensor出的i2c-tools
12/02 18:43, 12F

12/02 18:44, , 13F
至於怎麼做我不太想教,因為原po對i2c也沒有概念
12/02 18:44, 13F

12/02 18:44, , 14F
不想花太多時間step-by-step
12/02 18:44, 14F
文章代碼(AID): #1Erj9Ojg (AndroidDev)