memory_ec20.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef __1W_EC20
  2. #define __1W_EC20
  3. #include "one_wire.h"
  4. #define DS28EC20_FAMILY_CODE 0x43
  5. #define CMD_WRITE_SCRATCHPAD 0x0F
  6. #define CMD_READ_SCRATCHPAD 0xAA
  7. #define CMD_COPY_SCRATCHPAD 0x55
  8. #define CMD_READ_MEMORY 0xF0
  9. #define CMD_EXTENDED_READ_MEMORY 0xA5
  10. #define REG_MEMORY_BLOCK_LOCK 0xA1E
  11. #define REG_REGISTER_PAGE_LOCK 0xA1F
  12. #define WRITE_PROTECTION 0x55
  13. #define EPROM_MODE 0xAA
  14. #define PAGE_SIZE 0x20
  15. #define NUM_OF_PAGES 0x50
  16. #define MEM_SIZE (PAGE_SIZE * NUM_OF_PAGES)
  17. typedef struct _onewire_ec20_{
  18. uint8_t buffer_rx[4];
  19. uint8_t buffer_tx[4];
  20. uint8_t real_size;
  21. uint8_t ROM[8];
  22. }OneWire_EC20_typeDef;
  23. uint8_t DS28EC20_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
  24. void DS28EC20_readMem(uint16_t,uint8_t);
  25. uint8_t DS28EC20_writeMem(uint16_t ,uint8_t);
  26. uint32_t DS28EC20_readData4B(uint16_t);
  27. uint16_t DS28EC20_readData2B(uint16_t address);
  28. uint8_t DS28EC20_writeData4B(uint32_t, uint16_t );
  29. uint8_t DS28EC20_writeData2B(uint16_t data, uint16_t adr);
  30. //uint8_t DS28EC20_writeData4char(uint8_t *data, uint16_t adr);
  31. #endif