cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
Loading...
Searching...
No Matches
onewire_driver.h File Reference

Interfaz del driver para bus 1-Wire por bit-banging. More...

#include <chip.h>
#include <stdbool.h>
#include <stdint.h>
+ Include dependency graph for onewire_driver.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  onewire_pin_config_t
 Configuracion fisica del pin usado por el bus 1-Wire. More...
 
struct  onewire_driver_t
 Estado del driver 1-Wire para un bus individual. More...
 

Macros

#define ONEWIRE_ROM_CODE_SIZE   8U
 Tamano del codigo ROM de un dispositivo 1-Wire.
 

Functions

bool onewire_init (onewire_driver_t *driver, const onewire_pin_config_t *pin_config)
 Inicializa un bus 1-Wire sobre el pin indicado.
 
bool onewire_reset (const onewire_driver_t *driver)
 Emite un reset 1-Wire y detecta presencia de dispositivos.
 
void onewire_write_bit (const onewire_driver_t *driver, bool bit_value)
 Escribe un bit en el bus 1-Wire.
 
bool onewire_read_bit (const onewire_driver_t *driver)
 Lee un bit desde el bus 1-Wire.
 
void onewire_write_byte (const onewire_driver_t *driver, uint8_t value)
 Escribe un byte en el bus 1-Wire.
 
uint8_t onewire_read_byte (const onewire_driver_t *driver)
 Lee un byte desde el bus 1-Wire.
 
void onewire_skip_rom (const onewire_driver_t *driver)
 Emite el comando Skip ROM sobre el bus.
 
void onewire_match_rom (const onewire_driver_t *driver, const uint8_t rom_code[ONEWIRE_ROM_CODE_SIZE])
 Selecciona un dispositivo concreto por su codigo ROM.
 
uint8_t onewire_search_roms (const onewire_driver_t *driver, uint8_t rom_codes[][ONEWIRE_ROM_CODE_SIZE], uint8_t max_devices)
 Busca dispositivos presentes en el bus mediante el comando Search ROM.
 

Macro Definition Documentation

◆ ONEWIRE_ROM_CODE_SIZE

#define ONEWIRE_ROM_CODE_SIZE   8U

Definition at line 14 of file onewire_driver.h.

Function Documentation

◆ onewire_init()

bool onewire_init ( onewire_driver_t driver,
const onewire_pin_config_t pin_config 
)
Parameters
driverInstancia del driver a inicializar.
pin_configConfiguracion fisica del pin del bus.
Return values
trueSi la inicializacion fue correcta.
falseSi algun puntero es invalido.

Definition at line 30 of file onewire_driver.c.

References driver_delay_init(), onewire_driver_t::initialized, onewire_release_line(), onewire_driver_t::pin, onewire_pin_config_t::scu_func, onewire_pin_config_t::scu_mode, onewire_pin_config_t::scu_pin, and onewire_pin_config_t::scu_port.

Referenced by ds18b20_bus_init(), ds18b20_discover(), ds18b20_init(), and ds18b20_init_with_rom().

◆ onewire_match_rom()

void onewire_match_rom ( const onewire_driver_t driver,
const uint8_t  rom_code[ONEWIRE_ROM_CODE_SIZE] 
)
Parameters
driverInstancia del driver.
rom_codeCodigo ROM de 64 bits del dispositivo a seleccionar.

Definition at line 149 of file onewire_driver.c.

References onewire_driver_t::initialized, ONEWIRE_CMD_MATCH_ROM, ONEWIRE_ROM_CODE_SIZE, and onewire_write_byte().

Referenced by ds18b20_begin_command(), and ds18b20_bus_begin_command().

◆ onewire_read_bit()

bool onewire_read_bit ( const onewire_driver_t driver)
Parameters
driverInstancia del driver.
Return values
trueSi el bit leido fue '1'.
falseSi el bit leido fue '0' o el driver no esta inicializado.

Definition at line 89 of file onewire_driver.c.

References driver_delay_us(), onewire_driver_t::initialized, onewire_drive_low(), onewire_read_line(), and onewire_release_line().

Referenced by onewire_read_byte(), and onewire_search_roms().

◆ onewire_read_byte()

uint8_t onewire_read_byte ( const onewire_driver_t driver)
Parameters
driverInstancia del driver.
Returns
Byte leido, comenzando por el bit menos significativo.

Definition at line 122 of file onewire_driver.c.

References onewire_driver_t::initialized, and onewire_read_bit().

Referenced by ds18b20_bus_read_raw(), and ds18b20_read_scratchpad().

◆ onewire_reset()

bool onewire_reset ( const onewire_driver_t driver)
Parameters
driverInstancia del driver.
Return values
trueSi algun dispositivo respondio con pulso de presencia.
falseSi no hubo presencia o el driver no esta inicializado.

Definition at line 50 of file onewire_driver.c.

References driver_delay_us(), onewire_driver_t::initialized, onewire_drive_low(), onewire_read_line(), and onewire_release_line().

Referenced by ds18b20_begin_command(), ds18b20_bus_begin_command(), ds18b20_is_present(), and onewire_search_roms().

◆ onewire_search_roms()

uint8_t onewire_search_roms ( const onewire_driver_t driver,
uint8_t  rom_codes[][ONEWIRE_ROM_CODE_SIZE],
uint8_t  max_devices 
)
Parameters
driverInstancia del driver del bus.
rom_codesTabla de salida con los ROM encontrados.
max_devicesCantidad maxima de dispositivos a almacenar.
Returns
Cantidad de dispositivos encontrados y almacenados.

Definition at line 164 of file onewire_driver.c.

References onewire_driver_t::initialized, ONEWIRE_CMD_SEARCH_ROM, onewire_read_bit(), onewire_reset(), ONEWIRE_ROM_CODE_SIZE, onewire_write_bit(), and onewire_write_byte().

Referenced by ds18b20_bus_discover(), and ds18b20_discover().

◆ onewire_skip_rom()

void onewire_skip_rom ( const onewire_driver_t driver)

Debe usarse cuando hay un unico dispositivo en el bus, o cuando se desea enviar un comando global a todos los dispositivos.

Parameters
driverInstancia del driver.

Definition at line 140 of file onewire_driver.c.

References onewire_driver_t::initialized, ONEWIRE_CMD_SKIP_ROM, and onewire_write_byte().

Referenced by ds18b20_begin_command(), and ds18b20_bus_begin_command().

◆ onewire_write_bit()

void onewire_write_bit ( const onewire_driver_t driver,
bool  bit_value 
)
Parameters
driverInstancia del driver.
bit_valueValor del bit a transmitir.

Definition at line 70 of file onewire_driver.c.

References driver_delay_us(), onewire_driver_t::initialized, onewire_drive_low(), and onewire_release_line().

Referenced by onewire_search_roms(), and onewire_write_byte().

◆ onewire_write_byte()

void onewire_write_byte ( const onewire_driver_t driver,
uint8_t  value 
)
Parameters
driverInstancia del driver.
valueByte a transmitir, comenzando por el bit menos significativo.

Definition at line 108 of file onewire_driver.c.

References onewire_driver_t::initialized, and onewire_write_bit().

Referenced by ds18b20_begin_command(), ds18b20_bus_begin_command(), onewire_match_rom(), onewire_search_roms(), and onewire_skip_rom().