|
cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
|
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. | |
| #define ONEWIRE_ROM_CODE_SIZE 8U |
Definition at line 14 of file onewire_driver.h.
| bool onewire_init | ( | onewire_driver_t * | driver, |
| const onewire_pin_config_t * | pin_config | ||
| ) |
| driver | Instancia del driver a inicializar. |
| pin_config | Configuracion fisica del pin del bus. |
| true | Si la inicializacion fue correcta. |
| false | Si 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().
| void onewire_match_rom | ( | const onewire_driver_t * | driver, |
| const uint8_t | rom_code[ONEWIRE_ROM_CODE_SIZE] | ||
| ) |
| driver | Instancia del driver. |
| rom_code | Codigo 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().
| bool onewire_read_bit | ( | const onewire_driver_t * | driver | ) |
| driver | Instancia del driver. |
| true | Si el bit leido fue '1'. |
| false | Si 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().
| uint8_t onewire_read_byte | ( | const onewire_driver_t * | driver | ) |
| driver | Instancia del driver. |
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().
| bool onewire_reset | ( | const onewire_driver_t * | driver | ) |
| driver | Instancia del driver. |
| true | Si algun dispositivo respondio con pulso de presencia. |
| false | Si 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().
| uint8_t onewire_search_roms | ( | const onewire_driver_t * | driver, |
| uint8_t | rom_codes[][ONEWIRE_ROM_CODE_SIZE], | ||
| uint8_t | max_devices | ||
| ) |
| driver | Instancia del driver del bus. |
| rom_codes | Tabla de salida con los ROM encontrados. |
| max_devices | Cantidad maxima de dispositivos a almacenar. |
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().
| 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.
| driver | Instancia 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().
| void onewire_write_bit | ( | const onewire_driver_t * | driver, |
| bool | bit_value | ||
| ) |
| driver | Instancia del driver. |
| bit_value | Valor 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().
| void onewire_write_byte | ( | const onewire_driver_t * | driver, |
| uint8_t | value | ||
| ) |
| driver | Instancia del driver. |
| value | Byte 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().