/* * powerEngined.h * * Created on: Jan 26, 2015 * Author: aras */ #ifndef POWERENGINED_POWERENGINED_H_ #define POWERENGINED_POWERENGINED_H_ #include /* primitivas 1-wire transaction ds2438 . toda data/comandos es leida y escrita * primero el bit menos significativo */ /* Hardware definitions */ #define I2C_SLAVE_ADDR 0x26 #define DQ_BIT PB3 #define DQ_PORT PORTB #define DQ_PIN PINB #define DQ_DDR DDRB /* DS2438Z definitions */ #define READ_ROM 0X33 #define MATCH_ROM 0x55 #define SEARCH_ROM 0xF0 #define SKIP_ROM 0xCC #define WRITE_SP 0x4E #define READ_SP 0xBE #define COPY_SP 0x48 #define CONV_T 0x44 #define CONV_V 0xB4 #define RCALL_MEM 0xB8 /* DS2438Z Memory Pages (ver datasheet) */ #define PAGE_0 0x00 #define PAGE_1 0x01 #define PAGE_2 0x02 #define PAGE_3 0x03 #define PAGE_4 0x04 #define PAGE_5 0x05 #define PAGE_6 0x06 #define PAGE_7 0x07 /* Funciones de escritura */ void write_0_signal();//pull-low, wait 15us, remain low 45us (min), release (high),wait 1us void write_1_signal();//pull-low, wait 10us, release (high) 50us (min), remain high,wait 1us void write_byte(uint8_t byte); void write_bytes(uint8_t* pbytes,uint8_t len); /* Funciones de lectura */ uint8_t read_signal();//pull-low, wait 1us, release, pin I , wait 9us, read line, //wait 50us(min), pin O, wait 1us 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(); void memory_read(uint8_t* pbytes, uint8_t page_addr); // 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 send_data(uint8_t* pbytes, uint8_t len); #endif /* POWERENGINED_POWERENGINED_H_ */