DIGILENT PmodCMPS Input Pmods Sensors Owner’s Manual
- June 12, 2024
- DIGILENT
Table of Contents
**DIGILENT PmodCMPS Input Pmods Sensors Owner’s Manual
**
Overview
The Digilent PmodCMPS features the popular Honeywell HMC5883L 3-axis digital compass and can add compass heading readings to any Digilent host board with an I²C interface.
The PmodCMPS.
Features include:
- 3-axis digital compass
- 2 milli-gauss Field Resolution in ±8 gauss fields
- 160 Hz maximum data output rate
- Optional pull-up resistors for SCL and SDA pins
- Small PCB size for flexible designs 0.8“ × 0.8” (2.0 cm × 2.0 cm)
- 2×4-pin connector with I2C interface
- Follows Digilent Pmod Interface Specification
- Library and example code available in resource center
Functional Description
The PmodCMPS utilizes Honeywell’s HMC5883L with Anisotropic Magnetoresistive (AMR) technology. In plain English, this means that the three sensors (one for each coordinate direction) have very little interference with each other so that accurate data can be retrieved from the Pmod.
Interfacing with the Pmod
The Pmod CMPS communicates with the host board via the I²C protocol. Jumpers JP1 and JP2 provide optional 2.2kΩ pull-up resistors to use for the Serial Data and Serial Clock lines. The 7-bit address for this on-board chip is 0x1E, making the 8-bit address for a read command 0x3D and 0x3C for a write command.
By default, the PmodCMPS starts out in Single Measurement mode so that the compass takes a single measurement, sets the Data Ready pin high, and then places itself into Idle Mode. While in Idle Mode, major sources of power consumption are (not surprisingly) disabled, such as the internal ADC which collects the voltage measurements. However, you can still access all of the registers with their most recent data value through the I²C bus. To change the PmodCMPS from idle mode back into Single Measurement or Continuous Measurement mode, the user must write to the Mode Register (0x02).
When reading data from the Pmod CMPS, all six data registers, corresponding to the upper and lower bytes of each Cartesian coordinate direction, must be read. Since the internal register address pointer automatically increments after a register has been successfully read, it is possible to read from all six registers with a single command. An example how this might look is given below:
Table 1. Command and address bytes.
Command byte | Address byte |
---|---|
0 | 0 |
MSB X | LSB X |
SX | SX |
MSB Z | LSB Z |
SX | SX |
MSB Y | LSB Y |
SX | SX |
Note: SX stands for a sign extension of the sign bit (sb).
Pinout Description Table
Table 1. Connector J1: Pin descriptions as labeled on the Pmod.
Header J1
Pins| Signal| Description
1 & 5| SCL| Serial Clock
2 & 6| SDA| Serial Data
3 & 7| GND| Power Supply Ground
4 & 8| VCC| Power Supply (3.3V)
Header J2
Pin| Signal| Description
1| DRDY| Data Ready
2| GND| Power Supply Ground
Jumper JP1
Loaded State| SDA line uses a 2.2kΩ pull-up resistor
Jumper JP2
Loaded State| SCL line uses a 2.2kΩ pull-up resistor
The Pmod CMPS also offers a self test mode to help calibrate any data that is being received from the module.
Any external power applied to the PmodCMPS must be within 2.16V and 3.6V; therefore, when using Pmod headers on Digilent system boards, the supply voltage must be at 3.3V.
Physical Dimensions
The pins on the pin header are spaced 100 mil apart. The PCB is 0.8 inches long on the sides parallel to the pins on the pin header and 0.8 inches long on the sides perpendicular to the pin header.
Copyright Digilent, Inc.
Other product and company names mentioned may be trademarks of their
respective owners.
Downloaded from Arrow.com.
1300 Henley Court
Pullman, WA 99163
509.334.6306
www.digilentinc.com