No part of this manual may be reproduced, published or publicly displayed in any form
or by any means, electronic or mechanical (including photocopying), nor may its
contents be modified, translated, adapted, sold or disclosed to a third party without prior
written permission of the copyright holder. Translated manuals and translated portions
of multilingual documents are based on the original English versions. In ambiguous
cases, the English versions are applicable, not the translations.
The contents of this manual are subject to change without prior notice.
This manual does not create any legally binding obligations for Vaisala towards
customers or end users. All legally binding obligations and agreements are included
exclusively in the applicable supply contract or the General Conditions of Sale and
General Conditions of Service of Vaisala.
HMM105 has an inter-integrated circuit (I2C) interface for interfacing
with the incubator’s control computer. HMM105 implements I2C slave
functionality, with the incubator’s computer acting as the master. The
interface can be used to read measurement values and status information,
set operation parameters, and make adjustments.
Physical Interface
The physical interface is a non-isolated 3-wire interface. Wires are SDA,
SCL and ground. SDA and SCL lines are buffered. Ground is shared
with power supply. There are small pull-up resistors for SCL and SDA.
Maximum cable length should not exceed 5 m and maximum capacitance
between communication lines and ground should not exceed 500 pF.
1405-072
Figure 1 Hardware Schematic
The physical connector is a Molex 87832-1007, 2 mm pitch shrouded
pin header with a locking window. It is marked X6 on the component
board. See Table 3 on page 4.
HMM105 supports a maximum clock speed of 50 kHz. Protocol bits are
sent most significant bit (MSB) first. Parameter bytes are sent using little
endian order.
Addressing
HMM105 uses 7-bit addressing. The address consists of:
- 4-bit device type identifier part (default “0101” for HMM105)
- 3-bit sub address (default “111”)
The full 7-bit default address is “0101111” (2Fh). In I2C communication,
the address should be provided by the master in the standard way after
the I2C start condition, with the read/write bit as the least significant bit
(LSB).
Table 4 HMM105 I2C Address
The I2C implementation of the HMM105 also includes the address inside
the message frame. The purpose of this is to make the I2C
implementation easier, since the I2C address can be lost by the I2C
hardware. This address is provided without the read/write bit, with zero
as the most significant bit (MSB).
This ACK/NACK refers to message level acknowlegde. I
includes separate byte level acknowledge.
Message Segment
Length
Content
Start
I2C start condition.
I2C address
1 byte
See Table 4 on page 4.
Command
1 byte
Identifier of command.
Device address
1 byte
See Table 5 on page 4.
Frame length
1 byte
Length of invoke message in bytes
Minimum invoke frame length is 5 bytes.
Data
Variable length
Content and length depending on the
contains no data in the invoke message.
Checksum
2 bytes
See section Checksum on page 9.
Stop
I2C stop condition
Message Segment
Length
Content
Start
I2C start condition.
I2C address
1 byte
See Table 4 on page 4.
Status
1 byte
See section Status Byte on page 9.
Command
1 byte
Identifier of the command that was used
valid invoke), command code is FFh.
Device address
1 byte
See Table 5 on page 4.
Frame length
1 byte
Length of the response message in
length is 6 bytes.
Data
Variable length
Content and length depending on the
command.
Checksum
2 bytes
See section Checksum on page 9.
Stop
I2C stop condition
Communication Flow
Basic communication flow always includes I2C write and read
commands. First the master writes a command to the slave device, and
then the master reads the results of that command from the slave.
When the master reads data from the slave, there is an ACK/NACK-bit in
the status byte that informs the master whether or not communication
was success. ACK is defined as zero and NACK is defined as one in the
logical level.
2
NOTE
Command messages sent by the master are called invokes. Replies sent
by the slave are called responses. Note that also responses include the
device address.
Table 6 Invoke Message in HMM105 I2C Interface
C protocol
(excluding I2C address, including CRC).
command. May be left out if command
Table 7 Response Message in HMM105 I2C Interface
in the invoke that the slave is
responding to. If slave is in idle state (no
bytes (excluding I2C address, including
CRC). The minimum response frame
The main and initial state of the HMM105 is Idle, and it will change to
WaitResponse state only when a valid invoke is received. In
WaitResponse state HMM105 expects to see an I2C read operation. After
seeing a read operation the HMM105 outputs its response with
ACK/NACK and status signals.
If HMM105 is in WaitResponse state and the master sends a new invoke,
the old response belonging to the old invoke will be lost. When the
master sends the next I2C read command, the HMM105 sends it the
response to the latest invoke.
If HMM105 is in Idle state and I2C read is sent, HMM105 responds with
a NACK-signal. This tells the master that the data which the master may
have received in same I2C read is not valid.
If the HMM105 receives an invalid invoke, it goes to the Idle state. An
invoke message can be invalid because of an unknown command,
erroneous CRC, or invalid message length.
The basic data transfer communication flows are presented in the
following figures. Each arrow represents an I2C read or write operation
The examples are simplified presentations. For actual message content,
see section Commandson page 11.
For example, Figure 3 below shows the following message sequence:
1. The master invokes the Get_Parameter command to read the RH
parameter using an I2C write operation. This command prepares the
slave to wait for a read operation from the master.
2. The master begins an I2C read operation to read the results of the
Get_Parameter RH command. The slave sends the requested RH
result and an ACK signal to the master.
The minimum time delay that the master must wait between the invoke
and response messages depends on the operation. If the operation
includes a write to the non-volatile memory, it takes more time than other
operations.
Table 8 Timing
Status Byte
The status byte gives the master device information about the slave
device’s state, and information about the communication status with the
ACK/NACK bit.
The status byte has bits for signaling Status, Warning, Error and Critical
error statuses. These bits are cleared when the status word is read. Bits
are set when the corresponding status or error state changes in the slave
device.
Table 9 Status Byte
Checksum
HMM105 uses a CRC16-CCITT checksum in its protocol frame. CCITT
(x.25) polynomial is X16+X12+X5+1 = 11021h. Initial value is 0000h and
the final value is XORed with FFFFh. The checksum uses a bit reversed
algorithm.
When the invoke message is received, the checksum is calculated using
bytes from the command byte to the last byte of the data field. The
checksum needs to be valid before data can be accepted. If the checksum
is not valid, the message is rejected and the internal state of the GMP231
is set to Idle.
When the response message is transmitted, the checksum is calculated
using bytes from the status byte to the last byte of the data field.
Status word is used to monitor the status of the HMM105 device. It can
be read in the same way as any other slave parameter. Status word is used
as 32-bit long bit field. Each bit represents a state of some error or other
essential status.
Changes in status word bits can be monitored by reading the status byte.
See section Status Byte on page 9.
The Get_Interface_Version command (ID 80h) reads the interface
version information. Recommended for verifying version compatibility
before reading or writing parameters.
The Get_Parameter command (ID 81h) reads parameter values. You can
use it to read both measurement results and operational parameters. If the
number of bytes the master tries to read exceeds the message size, the
slave sends FFh bytes.
The Set_Parameter command (ID 82h) writes parameter values to nonvolatile memory. You can use it to set the operational parameters of the
HMM105. Depending on the change, the functionality of the HMM105
may not change immediately.
The length of the invoke message varies depending on the data length.
The master must write as many bytes as indicated in the frame length of
the invoke message. If the master tries to write a longer or shorter
message, HMM105 rejects the message.
The Get_Parameter_Info command (ID 83h) reads the properties of a
single parameter from the HMM105. The command is useful for adapting
to parameters that have been added in a new software version. If the
requested parameter ID is not valid, data type Unknown Parameter ID
is returned.
Table 22 Get_Parameter_Info Invoke Message
Table 23 Get_Parameter_Info Response Message
parameter value is volatile (lost at reset)
or non-volatile (survives reset). See
HMM105 can be adjusted while it remains installed in an incubator.
Create the reference environment inside the chamber, and use the Adjust
command to perform the adjustment sequence.
Adjustment can fail for a number of reasons. Refer to the list of return
codes for the Adjust command in Table 30 above.
One Point Adjustment
To perform a one point adjustment of relative humidity (RH) or
temperature (T), you must perform the following sequence:
1. Using the Adjust command, start 1 point adjustment for the
chosen parameter.
2. Place the sensor in the reference environment and wait until the
measurement has stabilized.
3. Using the Adjust command, record the measured point and give
the reference value.
4. Use the Adjust command to end the adjustment.
Two Point Adjustment
To perform a two point adjustment of relative humidity (RH) or
temperature (T), you must perform the following sequence:
1. Using the Adjust command, start 2 point adjustment.
2. Place the sensor in the low end reference and wait until the
measurement has stabilized.
3. Using the Adjust command, record the first measured point and
give the first reference value.
4. Place the sensor in the high end reference and wait until the
5. Using the Adjust command, record the second measured point and
Maximum string size refers to
Actual reserved storage space for each parameter can be seen
on page 20
Integers and floating point numbers are sent LSB first.
Data Registers
The register table describes all available parameters and their properties.
The properties are: parameter meaning, ID, name, data type, length and
persistence. Persistence defines if the parameter is saved in EEPROM
(non-volatile memory) or in RAM. Make sure not to write excessively to
the EEPROM, as it has a maximum lifetime of approximately 30000
cycles.