顯示廣告
隱藏 ✕
※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2013-10-21 11:45:16
看板 iPhone
作者 govert ( )
標題 Re: [情報] 震驚!iPhone5s幾乎所有傳感器都存在問題
時間 Mon Oct 21 11:14:47 2013


文章內有對, 也有不對的地方.

※ 引述《threee ()》之銘言:
: 以下節錄文章片段:
: 為什麼iPhone 5s的加速計會出現故障?RealityCap的CEO Eagle Jones找到原因,是硬件
: 設計方面的問題。
: 根據Chipworks以及iFixit的拆解,他發現iPhone 5s改採用的加速計型號是Sensortech
: BMA220,而非以前在iPhone 5、iPhone 4s、iPad 2等蘋果產品裡的意法半導體L3G4200D
: 。這兩項產品有什麼差異?
只有iPhone5是用 L3G4200D, 6軸的(3軸g-sensor, 3軸gyro).
之前的iPhone 4/4s, iPad有用6軸的320DL, 330, 也有用兩顆ST的IC兜起的.
甚至iPad也有用InvenSense的 MEMS.
不過倒是第一次用 Bosch 的G-Sensor沒錯.

: Jones解釋,衡量加速計的性能,有兩項關鍵指標:
: ‧意法半導體的噪聲密度(Noise Density)和Bosch的輸出噪聲(output noise),這兩
:  個數據將影響加速計測量結果的精準。從規格表來看,Bosch的加速計在這方面要遜色
:  於意法半導體的。但經過實際測試,iPhone 5s的輸出噪聲數據與此前的iOS設備相當。
當然沒差, 因為 ST 的 Noise Density是指 Gyro 的雜訊, 而 Bosch 的Output Noise
是G-Sensor, 根本不是指的同樣的東西.

: ‧初始偏差量(zero-g offset)。這個數據表明,為了保證數據輸出的準確,因此廠商
:  會首先進行校準。不過這項數據將隨著物理壓力或溫度的變化而變化。而Jones在這項
:  數據中發現了問題。意法半導體加速計的初始偏差量為+/-20mg,而Bosch的為+/-95mg
:  。——用我們看得懂的話來描述,+/-20mg 相當於+/-1° 的偏差,而+/-95m則相當於
:  +/-5° 的偏差。
本來加速計(g-sensor)或是陀螺儀(gyroscope)這種MEMS的東西,
就會因為 溫度, 濕度, 緯度, 或是海拔的不同而產生誤差,
而每一個 IC 出廠時也會因為製程上的問題而會有所謂的initial offset.
所以每個 IC 或是做成成品後, 要出廠前都還要做一次校正.

不過STMicro的 sensors在封裝時都有做校正了, 廠商不用再校正一次.(spec上寫的).
而Bosch則是比較彈性一些(麻煩?), 他的IC裡面有帶EEPROM, 廠商要自己做校正一次,
然後把值寫在他的EEPROM裡, 以後每次power on後就不用再校正.


不知道是Apple忽略了這點的不同, 還是基於生產成本的問題.
(因為加一站校正的站就多一個成本), 似乎這個校正動作並沒有做.
Apple為什麼可以忽略, 下面我會說明.

: 不能說蘋果是為了節省成本而採用Bosch的加速計,因為兩者的報價大致相當,約1美元。
: 所以,蘋果是因為別的原因採用Bosch的產品——Bosch加速計的電壓為1.8V,而意法半導
: 體的為2.5V,這個差異前者的耗電量比後者低。
這個是完全錯誤的假設, Bosch的工作電壓是 1.6V ~ 3.6V沒有錯.
但是在 iPhone5s後, 多了一顆NXP (M7) 的co-processor,
用來當做所有sensor的中間處理器 (sensor hub),
那既然所有的snsor都要接上同一顆M7, 不管是用SPI, 或是I2C界面,
一樣要用同樣的電壓, 所以大概都是接3V左右的電.
不會有Bosch的g-sensor用1.8V, 而ST的gyroscope接2.5v的情形.
況且單就g-sensor幾 uA 的耗電, 在手機應用裡根本是可以忽略不計的.

: 現在問題是,iPhone 5s已經開賣,處於種種原因那些有問題的手機未必能夠得到更換,
: 那麼有什麼辦法能夠解決加速計數據偏差的問題?Jones最後提出的方法是,開發者可以
: 在應用中增加一個校準量,讓應用的表現正常。
: 文章裡的一些名詞沒有連貫
: 總之結論就是Apple為了讓5s更省電 使用新的加速感應器
: 但相較於iPhone 5或更舊的設備 新感應器的誤差值較大
: 而Apple沒有將其校正就把5s拿出來賣 才造成了這次災難
: 英文原文
: http://www.realitycap.com/iphone-5s-accelerometer/
不知道是不是有人沒事找事, 還是真的不懂,
有用過 iOS 的Core Motion Framework就知道,
開發者可以用 CMAccelerometerData, CMGyroData Framework
來得到sensor的原始資料(raw data),
然後自己處理, Raw Data裡一定會存在初始誤差,

或是可以用 CMDeviceMotion, 這個Framework, (裡面有g-sensor跟gyro)
基本上這個 framwwork已經幫你把初始誤差去除掉了,
而且加上了Apple自己的演算法, 得出來的值是很漂亮的數據(沒有雜訊),
可以直接拿來用, 而不用自己去處理 raw data.
大部份的開發者, 我想都是直接拿這個來用, 最簡單.

如果你用的App有問題的話, 你可以寫信給開發者,
叫他直接用 CMDeviceMotion framework,
就不會出現 g-sensor有誤差的情形了.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.69.87.123
blackqueen:好專業!1F 10/21 11:20
Jerrynet:有看不懂有推2F 10/21 11:27
Shane7:推超專業QQ3F 10/21 11:28
snowgod:專業推!4F 10/21 11:30
piglauhk: 結論:本次問題可用軟體更新的方式克服 結案~5F 10/21 11:32
NomadShu:你不要這麼專業好不好~6F 10/21 11:33
semicoma:我記得登山表好像也要先在海平面做校正才會準 不知道跟蘋7F 10/21 11:39
semicoma:果這裝置裡的儀器是不是類似的情況

--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 1127 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇