HMC5883L概述
霍尼韋爾 HMC5883L 是一種表面貼裝的高集成模塊,并帶有數字接口的弱磁傳感器芯片,應用于低成本羅盤和磁場檢測領域。HMC5883L 包括最先進的高分辨率HMC118X系列磁阻傳感器,并附帶霍尼韋爾專利的集成電路包括放大器、自動消磁驅動器、偏差校準、能使羅盤精度控制在1°~2°的12位模數轉換器。簡易的I2C 系列總線接口。HMC5883L 是采用無鉛表面封裝技術,帶有16引腳,尺寸為3.0X3.0X0.9mm。HMC5883L 的所應用領域有手機、筆記本電腦、消費類電子、汽車導航系統和個人導航系統。
HMC5883L 采用霍尼韋爾各向異性磁阻(AMR)技術,該技術領先于其他磁傳感器技術。這些各向異性傳感器具有在軸向高靈敏度和線性高精度的特點。傳感器具有的對正交軸的低靈敏度的固相結構能用于測量地球磁場的方向和大小,其測量范圍從毫高斯到 8 高斯(gauss)。 霍尼韋爾的磁傳感器在低磁場傳感器行業中是靈敏度最高和可靠性最好的傳感器。
HMC5883L引腳圖及功能
HMC5883L應用說明
1、HMC5883L通過IIC總線與主機進行通信,其IIC控制字節地址如下
可以發現,HMC5883L的IIC控制字節地址與IIC總線控制字節地址是一致的。其中高4位為器件類型標識符,接著3位為片選,最低位為讀寫控制位(1為讀操作,0為寫操作)。
HMC5883L IIC接口特性說明:
HMC5883L作為一個IIC兼容裝置,該裝置包含一個7-bit串行地址,并支持IIC協議。HMC5883L可以支持標準和快速模式,分別為100kHz和400kHz,但不支持高速模式(Hs)。
要求主機的活動(寄存器讀取和寫入)優先于內部活動,例如測量,這一優先次序的安排是為了不讓主機等待,同時IIC總線占用的事件比必須的時間長。
2、HMC5883L一些引腳說明
3、HMC5883L寄存器說明
4、HMC5883L讀寫說明
HMC5883L利用地址指針來說明讀取或者寫入的寄存器位置。這些指針由主機發往從機,并且跟在7-bit地址和1-bit讀/寫控制位之后。
下面以讀數據為例說明HMC5883L IIC讀取數據時應該進行的操作時序。
1、發送從器件控制字節0x3C(寫入操作)。注意,此操作之后主機再往從機發送的數據就是主機寫入從機的數據
2、發送數據3(由器件手冊可知,3為數據輸出X MSB寄存器的地址)。此操作也就是寫想要讀取數據的寄存器地址。
3、發送從器件控制字節0x3D(讀取操作)。注意,此操作之后從機便向主機發送步驟2所發送的地址處的數據。
4、將從器件發送過來的數據寫入相應的數組。
關于HMC5883L讀數據需要作如下說明。
HMC5883L為了盡可能減少主機與從機之間的通信,地址指針會在不需要主機干涉的情況下自動更新。這種自動更新的地址更新有兩種附加的特性。
1)當訪問12或者更高的地址時,指針會自動更新到00。也就是返回首寄存器的地址。
2)當指針達到08時,指針回滾到地址03。也就是說此時指針一直在6個數據寄存器之間滾動,從機一直滾動向主機發送數據。
To move the address pointer to a random register location, first issue a “write” to that register location with no data byte following the commend. For example, to move the address pointer to register 10, send 0x3C 0x0A.
為了將地址指針移動到隨機的寄存器地址,首先應該發送寫指令,之后再跟一個無數據字節(在這里我自己理解我所要移動到隨機的寄存器的地址)。例如,要將地址指針移動到寄存器10 ,就發送0x3C 0x0A。
0x3C為HMC5883L的寫控制字節,告訴從機下一個發送的字節為寫入到從機的字節。
0x0A為HMC5883L的寄存器10的地址,此時地址指針就指向寄存器10了。如果要進行讀操作,則發送HMC5883L的讀控制字節0x3D,然后從機將會發送相應的寄存器中的數據返回至主機。如果要進行寫操作,則發送HMC5883L的寫控制字節0x3C,然后再發送的數據就會寫入當前指針指向的寄存器。
評論