memory_ec20.h 1.2 KB

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