2020-02-17 14:59:46 +01:00
|
|
|
/** library for 1-wire protocol as slave
|
|
|
|
* @file
|
2017-08-03 20:49:20 +02:00
|
|
|
* @author King Kévin <kingkevin@cuvoodoo.info>
|
2020-06-06 14:35:55 +02:00
|
|
|
* @copyright SPDX-License-Identifier: GPL-3.0-or-later
|
2020-02-17 14:59:46 +01:00
|
|
|
* @date 2017-2020
|
2017-08-03 20:49:20 +02:00
|
|
|
* @note peripherals used: timer @ref onewire_slave_timer, GPIO @ref onewire_slave_gpio
|
|
|
|
* @note overdrive mode is not supported
|
|
|
|
*/
|
|
|
|
#pragma once
|
2020-11-24 15:56:00 +01:00
|
|
|
#error not converted for STM32F4
|
2017-08-03 20:49:20 +02:00
|
|
|
|
|
|
|
/** set when a function command code has been received
|
|
|
|
* @note needs to be cleared by user
|
|
|
|
*/
|
|
|
|
extern volatile bool onewire_slave_function_code_received;
|
|
|
|
/** last function command code received */
|
|
|
|
extern volatile uint8_t onewire_slave_function_code;
|
|
|
|
/** set when data read/write transfer has been completed
|
|
|
|
* @note needs to be cleared by user
|
|
|
|
*/
|
|
|
|
extern volatile bool onewire_slave_transfer_complete;
|
|
|
|
|
|
|
|
/** setup 1-wire peripheral
|
|
|
|
* @param[in] family family code for slave ROM code (8 bits)
|
|
|
|
* @param[in] serial serial number for slave ROM code (48 bits)
|
|
|
|
*/
|
|
|
|
void onewire_slave_setup(uint8_t family, uint64_t serial);
|
|
|
|
/** read data from master
|
|
|
|
* @param[out] data buffer to save read bits
|
2017-08-07 23:15:16 +02:00
|
|
|
* @param[in] size number of bytes to read
|
|
|
|
* @return if transfer initialization succeeded
|
2017-08-03 20:49:20 +02:00
|
|
|
* @note onewire_slave_transfer_complete is set when transfer is completed
|
|
|
|
*/
|
2017-08-07 23:15:16 +02:00
|
|
|
bool onewire_slave_function_read(uint8_t* data, size_t size);
|
2017-08-03 20:49:20 +02:00
|
|
|
/** write data to master
|
|
|
|
* @param[in] data data to write
|
2017-08-07 23:15:16 +02:00
|
|
|
* @param[in] size number of bytes to write
|
|
|
|
* @return if transfer initialization succeeded
|
2017-08-03 20:49:20 +02:00
|
|
|
* @note onewire_slave_transfer_complete is set when transfer is completed
|
|
|
|
*/
|
2017-08-07 23:15:16 +02:00
|
|
|
bool onewire_slave_function_write(const uint8_t* data, size_t size);
|