3-Axis Digital Compass Module HMC6343 Advanced Information The Honeywell HMC6343 is a fully integrated compass module that combines 3-axis magneto-resistive sensors and 3-axis MEMS accelerometers with the required analog and digital support circuits, and algorithms for heading computation. By combining the sensor elements, processing electronics, and firmware in to a 9.0mm by 9.0mm by 1.9mm LCC package, Honeywell offers a complete, ready to use tiltcompensated electronic compass. This provides design engineers with the simplest solution to integrate high volume, cost effective compasses into wireless phones, consumer electronics, vehicle compassing, and antenna positioning. The HMC6343 utilizes Honeywell’s Anisotropic Magnetoresistive (AMR) technology that provides advantages over other magnetic sensor technologies. The sensors feature precision sensitivity and linearity, solid-state construction with very low cross-axis sensitivity designed to measure both direction and magnitude of Earth’s magnetic fields. Honeywell’s Magnetic Sensors are among the most sensitive and reliable low-field sensors in the industry. Honeywell continues to maintain product excellence and performance by introducing innovative solid-state magnetic sensor solutions. These are highly reliable, top performance products that are delivered when promised. Honeywell’s magnetic sensor solutions provide real solutions you can count on. FEATURES BENEFITS 4 Compass with Heading Output 4 A Complete Compass. Everything is Done. MR Sensors and Accelerometers 4 A Complete Digital Solution with Heading/Tilt Outputs and Hard Iron 4 3-Axis plus Electronics in a Single Package Calibration. Serial Data Interface for Heading Output. x 9 x 1.9mm LCC Surface Mount 4 9Package Size, Easy to Assemble and Compatible with High Speed 4 Small SMT Assembly 4 Low Voltage Operations (2.7 to 3.6V) 4 Compatible for Battery Powered Applications 4 Digital Serial Data Interface 4 I C Interface, Easy to Use 2-Wire Communication 4 Moderate Precision Outputs 4 +/-2° Heading Accuracy with +/-1° Pitch and Roll Accuracy 4 Lead Free Package Construction 4 Complies with RoHS Environmental Standards 2 HMC6343 SPECIFICATIONS Characteristics Conditions* Min Typ Max Units VDD Referenced to GND 2.7 3.3 3.6 Volts 3.5 4.5 5.5 mA 1.0 mA Power Supply Supply Voltage Current All VDD pins connected together Run Mode (10Hz Output) Standby Mode µA Sleep mode 10 total applied magnetic field ±1 ±6 gauss At Level 2.0 3.0 ± deg RMS ±15° tilt 3.0 ±60° tilt 4.0 Output Data 0.1 Compass Function Field Range Heading Accuracy Heading Resolution Update Rate Tilt Range Run Mode (1, 5, 10Hz) 1 5 degrees 10 Hz From Horizontal ±80 degrees degrees Tilt Accuracy Tilt Resolution 0° to ±15° ±1 ±15° to ±60° ±2 Output Data 0.1 degrees Offset Straps Resistance Measured from OFF+ to OFF- Offset Constant Resistance 5 DC Current 8 11 10 ohms mA/gauss Field applied in sensitive direction TA=-40 to 125°C 1800 Ambient Ambient, unbiased 2700 4500 ppm/°C -40 80 °C -55 125 °C Tempco General Operating Temperature Storage Temperature Weight 0.32 ESD Voltage MSL grams 400 Moisture Sensitivity Level 3 V - * Tested at 25°C except stated otherwise. 2 www.honeywell.com HMC6343 FUNCTIONAL DIAGRAM Mag Sensors X X Magnetic ASIC Accel ASIC Y Y MicroController Z Z Temp Sensor I 2C PIN CONFIGURATIONS Pin Number Description Pin Number Description 1 RX 19 Y OFF- 2 NC 20 Y OFF+ 3 VDD1 21 VDD2 4 5 NC NC 22 23 CS X OFF- 6 NC 24 X OFF+ 7 NC 25 GND2 8 NC 26 NC 9 NC 27 NC 10 VDD4 28 NC 11 VDD3 29 GND1 12 13 NC NC 30 31 NC NC 14 NC 32 SCK/SCL 15 Z OFF- 33 TX 16 Z OFF+ 34 SDO 17 NC 35 CS_CTRL 18 NC 36 SDA www.honeywell.com 3 HMC6343 NC 18 NC 17 Z OFF+ 16 Z OFF- 15 NC 14 NC 13 NC 12 VDD3 11 VDD4 10 NC 9 19 Y OFF- NC 8 20 Y OFF+ NC 7 21 VDD2 NC 6 22 CS NC 5 23 NC 24 NC NC 4 Z X VDD1 3 25 GND2 26 NC NC 2 Y 27 NC RX 1 28 NC 29 GND1 30 NC 31 NC 32 SCK/SCL 33 TX 34 SDO 35 CS_CTRL 4 36 SDA BOTTOM VIEW www.honeywell.com HMC6343 PACKAGE OUTLINES PACKAGE DRAWING HMC6343 (32-PIN LPCC, dimensions in millimeters) E1 0.10±0.08 e 0.34±0.03 D1 D 0.57±0.03 Pin 1 E Bottom View Dimensions (mm) A (height) D D1 Minimum 1.73 - Nominal 1.87 9.00 BSC 6.40 BSC Maximum 2.02 - E E1 e - 9.00 BSC 6.40 BSC 0.8 Basic - MOUNTING CONSIDERATIONS The following is the recommend printed circuit board (PCB) footprint for the HMC6343. All dimensions are nominal and in millimeters. Stencil Design and Solder Paste A 4 mil stencil and 100% paste coverage is recommended for the electrical contact pads. The HMC6343 has been tested successfully with no-clean solder paste. Pick and Place Placement is machine dependant and no restrictions are recommended, and have be tested with mechanical centering. Placement force should be equivalent 1206 SMT resistors and enough force should be used to squeeze the paste out from the package/contact pad overlap and to keep the package pin contacts vertical. www.honeywell.com 5 HMC6343 BASIC DEVICE OPERATION The Honeywell HMC6343 magnetoresistive sensor circuit is a trio of magnetic sensors, accelerometers, and analog support circuits to measure magnetic fields. Additionally a microcontroller is integrated for computation of direction and calibration. With power supply applied, the sensor converts any incident magnetic field in the sensitive axis direction to a differential voltage output. In addition to the bridge circuit, the sensors have on-chip magnetically coupled offset straps for incident field adjustment. BASIC SCHEMATIC INTERFACE HMC6343 +2.7 to 3.6V VDD2 21 VDD1 3 VDD3 11 VDD4 10 32 SCL 36 SDA CS CS_CTRL HOST µP VDD 1uF 0Ω 10kΩ 10kΩ I2C_CLK I2C_DATA 22 35 GND 25 GND1 29 Offset Straps The three offset straps have a spiral of metallization that couples in the sensor element’s sensitive axis. The straps will easily handle currents to buck or boost fields through the ±6 gauss linear measurement range, but designers should note the extreme thermal heating on the die when doing so. With most applications, the offset strap is not utilized and can be ignored. Designers can leave one or both strap connections (Off- and Off+) open circuited, or ground one connection node. Operational Modes The HMC6343 has three operational modes; Sleep, Standby, and Run. Sleep mode is defined as having the analog circuitry powered off, and has the lowest power consumption while power is applied to the VDD pins. Standby mode has the HMC6343 fully powered, but with no measurements performed and the processor is waiting for commands to perform. Run mode is fully engaged in continuous measurements at the set rate, and ready to receive further commands. The operational mode settings are stored in EEPROM register 0x04, and shown further the HMC6343 protocol definition. 6 www.honeywell.com HMC6343 Mounting Orientations The HMC6343 provides for three standard mounting orientations, with a flat horizontal orientation the factory set default. For vertical mounting, there are two upright orientations with either the X-axis or the Z-axis designated as the forward reference directions. To change the forward reference direction, send the appropriate command byte (0x72, 0x73, or 0x74) for level or upright orientations, and reset the processor (or cycle power). To enjoy other orientations, you can add or subtract 90 degree increments of deviation angle as required from the three choices. The figure below shows pictorially the orientations. Y Z Y X HONEYWELL HMC6343 0626 Z x Y Z X LEVEL UPRIGHT EDGE 0x72 0x73 UPRIGHT FRONT 0x74 HMC6343 ORIENTATIONS Red Arrow is the Forward Direction I2C COMMUNICATION PROTOCOL 2 The HMC6343 communicates via a two-wire I C bus system as a slave device. The HMC6343 uses a layered protocol 2 with the interface protocol defined by the I C bus specification, and the lower command protocol defined by Honeywell. 2 The data rate is the standard-mode 100kbps rate as defined in the I C Bus Specification 2.1. The bus bit format is an 8-bit Data/Address send and a 1-bit acknowledge bit. The format of the data bytes (payload) shall be case sensitive ASCII characters or binary data to the HMC6343 slave, and binary data returned. Negative binary values will be in two’s complement form. The default (factory) HMC6343 7-bit slave address is 0x32 for write operations, or 0x33 for read operations. The HMC6343 Serial Clock (SCL) and Serial Data (SDA) lines do not have internal pull-up resistors, and require resistive pull-ups (Rp) between the master device (usually a host microprocessor) and the HMC6343. Pull-up resistance values of 2 about 10k ohms are recommended with a nominal 3.3-volt supply voltage. Other values may be used as defined in the I C Bus Specification 2.1. The SCL and SDA lines in this bus specification can be connected to a host of devices. The bus can be a single master to multiple slaves, or it can be a multiple master configuration. All data transfers are initiated by the master device which is 2 responsible for generating the clock signal, and the data transfers are 8 bit long. All devices are addressed by I C’s th unique 7 bit address. After each 8-bit transfer, the master device generates a 9 clock pulse, and releases the SDA line. The receiving device (addressed slave) will pull the SDA line low to acknowledge (ACK) the successful transfer or leave the SDA high to negative acknowledge (NACK). www.honeywell.com 7 HMC6343 2 Per the I C spec, all transitions in the SDA line must occur when SCL is low. This requirement leads to two unique conditions on the bus associated with the SDA transitions when SCL is high. Master device pulling the SDA line low while the SCL line is high indicates the Start (S) condition, and the Stop (P) condition is when the SDA line is pulled high while 2 the SCL line is high. The I C protocol also allows for the Restart condition in which the master device issues a second start condition without issuing a stop. All bus transactions begin with the master device issuing the start sequence followed by the slave address byte. The address byte contains the slave address; the upper 7 bits (bits7-1), and the Least Significant bit (LSb). The LSb of the th address byte designates if the operation is a read (LSb=1) or a write (LSb=0). At the 9 clock pulse, the recieving slave device will issue the ACK (or NACK). Following these bus events, the master will send data bytes for a write operation, or the slave will clock out data with a read operation. All bus transactions are terminated with the master issuing a stop sequence. 2 I C bus control can be implemented with either hardware logic or in software. Typical hardware designs will release the SDA and SCL lines as appropriate to allow the slave device to manipulate these lines. In a software implementation, care must be taken to perform these tasks in code. 2 I C Slave Address 2 The I C slave address byte consists of the 7 most significant bits with the least siginificant bit zero filled. A described 2 earlier, the default (factory) value is 0x32 and the legal I C bounded values are between 0x10 and 0xF6. This slave address is in EEPROM address 0x00. Users can change the slave address by writing to this location. Any address updates will become effective after the next power up or after a reset command. Software Version This EEPROM software version number byte contains the binary value of the programmed software. Values of 0x05 and beyond are considered production software. Deviation Angle Correction Typically the HMC6343 X-axis (or Z-axis) is designated the forward direction of the compass, and is placed mechanically towards the forward direction of the end user product. The deviation angle is used to correct for mechanical angle errors in package orientation by adding the deviation angle to the internal compass heading before the result is placed as the computed heading. Two EEPROM Bytes are used to store the deviation angle, and the binary value is in tenths of a degree and in two’s complement form for a ±1800 representation. The deviation angle MSB is located in EEPROM register 0x0B and the LSB in 0x0A. Variation Angle Correction The variation angle or declination angle of the HMC6343 is the number of degree that must be added to the internal compass heading to convert the magnetic north reference direction to the geographic (true) north reference direction. This angle information is provided to the HMC6343 from external latitude and longitude data processed through a World Magnetic Model equation to compute variation angle, or by lookup table. Two EEPROM Bytes are used to store the variation angle, and the binary value is in tenths of a degree and in two’s complement form for a ±1800 representation. The deviation angle MSB is located in EEPROM register 0x0D and the LSB in 0x0C. Magnetometer Offsets The Magnetometer Offset bytes are the values stored after the completion of the last factory or user hard-iron calibration routine. Additional value changes are possible, but will be overwritten when the next calibration routine is completed. Note that these offset values are added to the sensor offset values computed by the set/reset routine to convert the raw magnetometer data to the compensated magnetometer data. These values are written into EEPROM addresses 0x0E to 0x13 and loaded to RAM on the power up. 8 www.honeywell.com HMC6343 Heading Filter This allows for an Infinite Impulse Response (IIR) filter to be employed on current and previous heading data outputs. Typical values are 0 to 15 with a factory default of zero. The filter is only applied in run mode where a continuous stream of data is present. At the 5Hz default update rate, a filter value of 4 would weight the latest heading with the previous four headings of regressive weightings for a second’s worth of filtering. EEPROM Registers The HMC6343 contains EEPROM non-volatile memory locations (registers) to store useful compass data for processor routines. The following Table shows the register locations, content, description, and factory shipped defaults. Table 1 – EEPROM Registers EEPROM Content Location Description 0x00 Slave Address 0x01 Reserved 0x02 S/W_Version 0x03 Reserved 0x04 OP_Mode1 Operational Mode Register 1 0x11 0x05 OP_Mode2 Operational Mode Register 2 0x01 0x06 S/N LSB Device Serial Number 0x07 S/N MSB Device Serial Number 0x08 Date Code: YY Package Date Code: Last Two Digits of the Year Year 0x09 Date Code: WW Package Date Code: Fiscal Week Week 0x0A Deviation LSB Deviation Angle (±1800) in tenths of a degree 0x00 0x0B Deviation MSB Deviation Angle (±1800) in tenths of a degree 0x00 0x0C Variation LSB Variation Angle (±1800) in tenths of a degree 0x00 0x0D Variation MSB Variation Angle (±1800) in tenths of a degree 0x00 0x0E X_Offset LSB Hard-Iron Calibration Offset for the X-axis 0x00 0x0F X_Offset MSB Hard-Iron Calibration Offset for the X-axis 0x00 0x10 Y_Offset LSB Hard-Iron Calibration Offset for the Y-axis 0x00 0x11 Y_Offset MSB Hard-Iron Calibration Offset for the Y-axis 0x00 0x12 Z_Offset LSB Hard-Iron Calibration Offset for the Z-axis 0x00 0x13 Z Offset MSB Hard-Iron Calibration Offset for the Z-axis 0x00 0x14 Filter LSB Heading IIR Filter (0x00 to 0x0F typical) 0x00 0x15 Filter MSB Heading IIR Filter (set at zero) 0x00 www.honeywell.com I2C Slave Address Factory Default 0x32 Software Version Number 9 HMC6343 Command Protocol 2 The command protocol defines the content of the data (payload) bytes of I C protocol sent by the master, and the slave device (HMC6343). After the master device sends the 7-bit slave address, the 1-bit Read/Write, and gets the 1-bit slave device acknowledge bit returned; the next one to three sent data bytes are defined as the input command and argument bytes. To conserve data traffic, all response data (Reads) will be context sensitive to the last command (Write) sent. All write commands shall have the address byte least significant bit cleared (factory default 0x32). These commands then follow with the command byte and command specific binary formatted argument bytes in the general form of: (Command Byte) (Argument Binary MS Byte) (Argument Binary LS Byte) 2 The slave (HMC6343) shall provide the acknowledge bits between each data byte per the I C protocol. Response byte reads are done by sending the address byte (factory default 0x33) with the least significant bit set, and then clocking back response bytes, last command dependant. Table 2 shows the HMC6343 command and response data flow. Table 2 – HMC6343 Interface Commands/Responses Command Byte (hex) Argument 1 Byte (Binary) Argument 2 Byte (Binary) Response Bytes (Binary) (0x40) MSB/LSB Data (6 Bytes) Post Accel Data. AxMSB, AxLSB, AyMSB, AyLSB, AzMSB, AzLSB (0x45) MSB/LSB Data (6 Bytes) Post Mag Data. MxMSB, MxLSB, MyMSB, MyLSB, MzMSB, MzLSB (0x50) MSB/LSB Data (6 Bytes) Post Heading Data. HeadMSB, HeadLSB, PitchMSB, PitchLSB, RollMSB, RollLSB (0x55) MSB/LSB Data (6 Bytes) Post Tilt Data. PitchMSB, PitchLSB, RollMSB, RollLSB, TempMSB, TempLSB (0x70) Enter User Calibration Mode Level Orientation (X=forward, +Z=up) (default) Upright Sideways Orientation (X=forward, Y=up) Upright Flat Front Orientation (Z=forward, -X=up) Enter Run Mode (from Standby Mode) Enter Standby Mode (from Run Mode) (0x72) (0x73) (0x74) (0x75) (0x76) 10 Command Description (0x7F) Exit User Calibration Mode (0x82) Reset the Processor (0x83) Enter Sleep Mode (from Run Mode) (0x84) Exit Sleep Mode (to Standby Mode) (0xE1) EEPROM Address (0xF1) EEPROM Address Data (1 Byte) Data Read from EEPROM Write to EEPROM www.honeywell.com HMC6343 Timing Upon power application to the HMC6343, wait nominally 5 milli-seconds before sending the first I2C command (typically a 0x32 byte followed by a 0x50 byte for the usual heading/pitch/roll). Depending on the command sent, a delay time should be inserted before clocking out the response bytes (send 0x33, clock back response bytes). The following table indicates the response delay times for various commands. Table 3 – HMC6343 Command to Response Delay Times Prior Command (hex) Power Applied Commanded Action Response Bytes & Description Response/Delay Time (milli-seconds) VDD1-3 low to high No Response Data Post Accel Data. 6 binary data Bytes. AxMSB, AxLSB, AyMSB, AyLSB, AzMSB, AzLSB 1 Post Mag Data. 6 binary data Bytes.. MxMSB, MxLSB, MyMSB, MyLSB, MzMSB, MzLSB 1 6 binary data Bytes. HeadMSB, HeadLSB, PitchMSB, PitchLSB, RollMSB, RollLSB 1 Post Tilt Data. 6 binary data Bytes. PitchMSB, PitchLSB, RollMSB, RollLSB, TempMSB, TempLSB 1 0x70 Enter User Calibration Mode No Response Data 0.3 0x72 Level Orientation (X=forward, +Z=up) (default) No Response Data 0.3 0x73 Upright Sideways Orientation (X=forward, Y=up) No Response Data 0.3 0x74 Upright Flat Front Orientation (Z=forward, -X=up) No Response Data 0.3 0x75 Enter Run Mode No Response Data 0.3 0x76 Enter Standby Mode No Response Data 0.3 0x7F Exit User Calibration Mode No Response Data 3 0x82 Reset the Processor No Response Data 0.3 0x83 Enter Sleep Mode No Response Data 1 0x84 Exit Sleep Mode No Response Data 20 0xE1 Read from EEPROM 1 binary data Byte 10 0xF1 Write to EEPROM No Response Data. Data Settling Time 10 0x40 0x45 0x50 0x55 Post Heading Data. www.honeywell.com 5 nominally 11 HMC6343 Operational Mode Registers EEPROM registers 0x04 and 0x05 contain Bytes that are read for operational mode status and for setting the Run Mode measurement rate. The tables below describe the register contents and interpretation. It is recommended that Operational Mode Register 1 be read only, and register 2 written only to change update rate. Table 4 – Operational Mode Register 1 (EEPROM 0x04) OM1_7 Comp(0) OM1_6 OM1_5 OM1_4 OM1_3 OM1_2 OM1_1 OM1_0 Cal(0) Filter(0) Run(1) Stdby(0) UF(0) UE(0) Level(1) Table 5 – Operational Mode Register 1 Bit Designations Location Name Description OM1_7 Comp Calculating compass data if set. (read only) OM1_6 Cal Calculating calibration offsets if set. (read only) OM1_5 Filter IIR Heading Filter used if set. OM1_4 Run Run Mode if set. OM1_3 Stdby Standby Mode if set. OM1_2 UF Upright Front Orientation if set. OM1_1 UE Upright Edge Orientation if set. OM1_0 Level Level Orientation if set Table 6 – Operational Mode Register 2 (EEPROM 0x05) OM2_7 OM2_6 OM2_5 OM2_4 OM2_3 OM2_2 OM2_1 OM2_0 (0) (0) (0) (0) (0) (0) MR1(0) MR0(1) Table 7 – Operational Mode Register 2 Bit Designations Location Name Description OM1_7 to OM2_2 0 These bits must be cleared for correct operation. MR1, MR0 Measurement Rate 0,0 = 1Hz 0,1 = 5Hz (default) 1,0 = 10Hz 1,1 = Not Assigned OM2_1 to OM2_0 User Hard-Iron Calibration The HMC6343 provides a user calibration routine with the 0x70 command permitting entry into the calibration mode and the 0x7F command to exit the calibration mode. During the calibration procedure, the compass and the platform to which the compass is attached is rotated at a reasonably steady speed through 360 degrees. This process should at least take one minute for best accuracy. For best HM C6343 calibration, the rotation should include as much pitch and roll orientations possible. The calibration time window is recommended to be from 60 seconds up to 3 minutes depending on the end user’s platform. The calibration routine collects these readings to correct for hard-iron distortions of the magnetic field. These hard-iron effects are due to magnetized materials nearby the HMC6343 part that in a fixed position with respect to the end user platform. An example would be the magnetized chassis or engine block of a vehicle in which the compass is mounted onto. Upon exiting the calibration mode, the resulting magnetometer offsets and scaling factors are updated. 12 www.honeywell.com HMC6343 Example Communication For basic power up and compassing using the defaults, the flowing order of operations is recommended: 1. Apply power to the VDD pins (nominally +3.3 volts) 2. Wait at least 5 milli-seconds for device initialization. The HMC6343 is in the default Run Mode. 3. Send 0x32 and 0x50 to command the Heading and Tilt Data to be clocked out next. 4. Wait at least 1 milli-second to allow the HMC6343 to process the command. 5. Send 0x33 and clock back six more response Bytes from the HMC6343. These will be the Heading, Pitch and Roll Byte pairs; binary format in tenths of a degree with 2’s compliment on pitch and roll angles. (0 to 3600 heading, ±1800 pitch, and ±1800 roll) 6. Repeat the 0x33 sends and six Byte clock backs every 200 milli-seconds or longer to get fresh data from the default 5Hz update rate. ORDERING INFORMATION Ordering Number HMC6343 Product Digital Compass Module FIND OUT MORE For more information on Honeywell’s Magnetic Sensors visit us online at www.magneticsensors.com or contact us at 800-323-8295 (763-954-2474 internationally). The application circuits herein constitute typical usage and interface of Honeywell product. Honeywell does not warranty or assume liability of customerdesigned circuits derived from this description or depiction. Honeywell reserves the right to make changes to improve reliability, function or design. Honeywell does not assume any liability arising out of the application or use of any product or circuit described herein; neither does it convey any license under its patent rights nor the rights of others. U.S. Patents 4,441,072, 4,533,872, 4,569,742, 4,681,812, 4,847,584 and 6,529,114 apply to the technology described Caution This part is sensitive to damage by electrostatic discharge. Use ESD precautionary procedures when touching, removing or inserting. CAUTION: ESDS CAT. 1A Honeywell 12001 Highway 55 Plymouth, MN 55441 Tel: 800-323-8295 www.honeywell.com www.honeywell.com Form #900357 November 2007 ©2007 Honeywell International Inc. 13