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