|
|
/*
|
|
|
* powerEngined.h
|
|
|
*
|
|
|
* Created on: Jan 26, 2015
|
|
|
* Author: aras
|
|
|
*/
|
|
|
|
|
|
#ifndef POWERENGINED_POWERENGINED_H_
|
|
|
#define POWERENGINED_POWERENGINED_H_
|
|
|
#include <inttypes.h>
|
|
|
|
|
|
/* primitivas 1-wire transaction ds2438 . toda data/comandos es leida y escrita
|
|
|
* primero el bit menos significativo */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void write_0_signal();//pull-low, wait 15us, remain low 45us (min), release (high),wait 1us
|
|
|
inline void write_1_signal();//pull-low, wait 10us, release (high) 50us (min), remain high,wait 1us
|
|
|
inline void write_byte(uint8_t byte);
|
|
|
void write_bytes(uint8_t* pbytes,uint8_t len);
|
|
|
|
|
|
|
|
|
inline uint8_t read_signal();//pull-low, wait 1us, release, pin I , wait 9us, read line,
|
|
|
//wait 50us(min), pin O, wait 1us
|
|
|
inline uint8_t read_byte();
|
|
|
void read_bytes(uint8_t* pbytes, uint8_t len);
|
|
|
|
|
|
|
|
|
// 1 reset pulse trasmition (maestro)
|
|
|
// low signal for a minimum of 480us. luego del flanco de subida,
|
|
|
// espera de 15-60us y recibe el pulso de presencia del ds2438
|
|
|
// (low 60-240us)
|
|
|
|
|
|
// 2 presence pulse (respuesta del esclavo)
|
|
|
|
|
|
void initialization();
|
|
|
|
|
|
|
|
|
// 5 CONVERT_T (0x44) inicia conversion A/D de temperatura
|
|
|
// 6 CONVERT_V (0xB4) inicia conversion A/D de voltaje
|
|
|
void convert(uint8_t cmd);
|
|
|
|
|
|
void memory_read(uint8_t* pbyte, uint8_t page_addr);
|
|
|
|
|
|
void ISR_int0(); //usado para cronometrar la lectura del presence pulse
|
|
|
void ISR_low_level();//detecta el nivel bajo. usado para detectar el presence pulse
|
|
|
|
|
|
void ISR_twi();// usado para enviar datos
|
|
|
void ISR_int1();//usado para cronometrar la lectura de datos
|
|
|
|
|
|
|
|
|
#endif /* POWERENGINED_POWERENGINED_H_ */
|
|
|
|