CuVoodoo STM32F1 firmware template
Functions
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]databytes on which to calculate CRC checksum on
[in]lengthnumber 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]functionfunction command to send
[out]databuffer to save read bits (NULL if only the function command should be sent)
[in]bitsnumber 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]functionfunction command to send
[out]datadata to write (NULL if only the function command should be sent)
[in]bitsnumber 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]codeROM 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]codeuse 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]alarmsearch 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]parasiteenable 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]recoveryrecovery 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.