| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifndef __1W_EC20
- #define __1W_EC20
- #include "one_wire.h"
- #define DS28EC20_FAMILY_CODE 0x43
- #define CMD_WRITE_SCRATCHPAD 0x0F
- #define CMD_READ_SCRATCHPAD 0xAA
- #define CMD_COPY_SCRATCHPAD 0x55
- #define CMD_READ_MEMORY 0xF0
- #define CMD_EXTENDED_READ_MEMORY 0xA5
- #define REG_MEMORY_BLOCK_LOCK 0xA1E
- #define REG_REGISTER_PAGE_LOCK 0xA1F
- #define WRITE_PROTECTION 0x55
- #define EPROM_MODE 0xAA
- #define PAGE_SIZE 0x20
- #define NUM_OF_PAGES 0x50
- #define MEM_SIZE (PAGE_SIZE * NUM_OF_PAGES)
- typedef struct _onewire_ec20_{
- uint8_t buffer_rx[4];
- uint8_t buffer_tx[4];
- uint8_t real_size;
- uint8_t ROM[8];
- }OneWire_EC20_typeDef;
- typedef struct{
- uint8_t (*init)(GPIO_TypeDef*, uint16_t);
- uint32_t (*read_word)(uint16_t);
- uint16_t (*read_half_word)(uint16_t);
- /**
- * @brief Zapíše 4B hodnotu na adresu
- * @param uint32_t data dáta
- * @param uint16_t address adresa v pamati. Povolený rozsah: 0-0x09FF
- */
- uint8_t (*write_word)(uint32_t data, uint16_t address);
- uint8_t (*write_half_word)(uint16_t, uint16_t);
- }Ec20_MemoryDriver;
- Ec20_MemoryDriver *getEc20MemoryDriver();
- uint8_t DS28EC20_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
- void DS28EC20_readMem(uint16_t,uint8_t);
- uint8_t DS28EC20_writeMem(uint16_t ,uint8_t);
- uint32_t DS28EC20_readData4B(uint16_t);
- uint16_t DS28EC20_readData2B(uint16_t address);
- uint8_t DS28EC20_writeData4B(uint32_t, uint16_t );
- uint8_t DS28EC20_writeData2B(uint16_t data, uint16_t adr);
- //uint8_t DS28EC20_writeData4char(uint8_t *data, uint16_t adr);
- #endif
|