onewire_master.h File Reference

library for 1-wire protocol as master (API) More...

Go to the source code of this file.

## Functions

void | onewire_master_setup (bool parasite, uint16_t recovery)
| setup 1-wire peripheral More...
bool | onewire_master_reset (void)
| send reset pulse More...
uint8_t | onewire_master_crc (uint8_t *data, uint32_t length)
| compute CRC for 1-Wire More...
uint64_t | onewire_master_rom_read (void)
| send READ ROM command and read ROM code response More...
bool | onewire_master_rom_search (uint64_t *code, bool alarm)
| send SEARCH ROM command More...
bool | onewire_master_rom_skip (void)
| send SKIP ROM command (all slaves on the bus will be selected) More...
bool | onewire_master_rom_match (uint64_t code)
| send MATCH ROM command to select a specific slave More...
bool | onewire_master_function_read (uint8_t function, uint8_t *data, uint32_t bits)
| issue function and read data More...
bool | onewire_master_function_write (uint8_t function, uint8_t *data, uint32_t bits)
| issue function and write data More...

## Detailed Description

library for 1-wire protocol as master (API)

Author
  King Kévin kingk.nosp@m.evin.nosp@m.@cuvo.nosp@m.odoo.nosp@m..info

Date
  2017

Note
  peripherals used: timer timer used to measure 1-wire signal timing, GPIO GPIO used for 1-wire signal
  overdrive mode is not provided

Definition in file onewire_master.h.

## Function Documentation

## onewire_master_crc()

uint8_t onewire_master_crc | ( | uint8_t * | data,
|  | uint32_t | length
| ) |  |

compute CRC for 1-Wire

Note
  this CRC-8 uses normal polynomial 0x31, reverse polynomial 0x8C, start value 0x00

Parameters

  [in] | data | bytes on which to calculate CRC checksum on
  [in] | length | number of bytes in data

Returns
  computed CRC checksum

Definition at line 219 of file onewire_master.c.

## onewire_master_function_read()

bool onewire_master_function_read | ( | uint8_t | function,
|  | uint8_t * | data,
|  | uint32_t | bits
| ) |  |

issue function and read data

Note
  user needs to send a ROM command before

Parameters

  [in] | function | function command to send
  [out] | data | buffer to save read bits (NULL if only the function command should be sent)
  [in] | bits | number of bits to read (0 if only the function command should be sent)

Returns
  if operation succeeded

Definition at line 239 of file onewire_master.c.

## onewire_master_function_write()

bool onewire_master_function_write | ( | uint8_t | function,
|  | uint8_t * | data,
|  | uint32_t | bits
| ) |  |

issue function and write data

Note
  user needs to send a ROM command before

Parameters

  [in] | function | function command to send
  [out] | data | data to write (NULL if only the function command should be sent)
  [in] | bits | number of bits to write (0 if only the function command should be sent)

Returns
  if operation succeeded

Definition at line 262 of file onewire_master.c.

## onewire_master_reset()

bool onewire_master_reset | ( | void |  | ) |

send reset pulse

Returns
  if slaves have indicated their presence

Definition at line 116 of file onewire_master.c.

## onewire_master_rom_match()

bool onewire_master_rom_match | ( | uint64_t | code | ) |

send MATCH ROM command to select a specific slave

Note
  user needs to send reset pulse before

Parameters

  [in] | code | ROM code of slave to select

Returns
  if operation succeeded

Definition at line 380 of file onewire_master.c.

## onewire_master_rom_read()

uint64_t onewire_master_rom_read | ( | void |  | ) |

send READ ROM command and read ROM code response

Note
  user needs to send reset pulse before

Returns
  ROM code read

Definition at line 286 of file onewire_master.c.

## onewire_master_rom_search()

bool onewire_master_rom_search | ( | uint64_t * | code,
|  | bool | alarm
| ) |  |

send SEARCH ROM command

Note
  user needs to send reset pulse before

Warning
  undefined behaviour if a ROM code different than the last found is provided

Parameters

  [in,out] | code | use 0 to start search ROM code from scratch, or last know value to search next; writes back next ROM code found, or 0 if error occurred
  [in] | alarm | search only for ROM codes for slaves with an alarm flag set

Returns
  if an additional slave has been detected

Definition at line 305 of file onewire_master.c.

## onewire_master_rom_skip()

bool onewire_master_rom_skip | ( | void |  | ) |

send SKIP ROM command (all slaves on the bus will be selected)

Note
  user needs to send reset pulse before

Returns
  if operation succeeded

Definition at line 372 of file onewire_master.c.

## onewire_master_setup()

void onewire_master_setup | ( | bool | parasite,
|  | uint16_t | recovery
| ) |  |

setup 1-wire peripheral

Parameters

  [in] | parasite | enable parasite power (provide power over 1-Wire line when not communicating)

Warning
  multiple masters and interrupts are prevented when parasite power is used

Parameters

  [in] | recovery | recovery time in us between timeslot, e.g. to ensure enough parasite power is provided (0 if not required)

Definition at line 73 of file onewire_master.c.