MAX32665-MAX32668 User Guide
Maxim Integrated Page 396 of 457
20.4 1-Wire Operation
Once the OWM peripheral is correctly configured, then using the OWM peripheral to communicate with the 1-Wire
network involves directing the OWM to generate the proper reset, read, and write operations to communicate with the 1-
Wire slave devices used in a specific application.
The OWM handles the following 1-Wire protocol primitives directly in either Standard or Overdrive mode:
• 1-Wire bus reset (including detection of presence pulse from responding slave devices)
• Write single bit (a single write time slot)
• Write 8-bit byte, least significant bit first (eight write time slots)
• Read single bit (a single write-1 time slot)
• Read 8-bit byte, least significant bit first (eight write-1 time slots)
• Search ROM Acceleration Mode allowing the generation of four groups of three time slots (read, read, and write)
from a single 4-bit register write to support the Search ROM command
20.4.1 Resetting the OWM
The first step in any 1-Wire communication sequence is to reset the 1-Wire bus. To direct the OWM module to complete a
1-Wire reset, write OWM_CTRL_STAT.start_ow_reset to 1. This generates a reset pulse and checks for a replying presence
pulse from any connected slave devices.
Once the reset time slot is complete, the OWM_CTRL_STAT.start_ow_reset field is automatically cleared to zero. Then, the
interrupt flag OWM_INTFL.ow_reset_done is set to 1 by hardware. This flag must be cleared by writing a 1 bit to the flag.
If a presence pulse is detected on the 1-Wire bus during the reset sequence (that should normally be the case unless no 1-
Wire slave devices are present on the bus), the OWM_CTRL_STAT.presence_detect flag is also set to 1. This flag does not
result in the generation of an interrupt.
20.5 1-Wire Data Reads
20.5.1 Reading a Single Bit Value from the 1-Wire Bus
The procedure for reading a single bit is like the procedure for writing a single bit because the operation is completed by
writing a 1 bit that the slave device either leaves unchanged (to transmit a 1 bit) or overrides by forcing the line low (to
transmit a 0 bit).