spi_mem_chip_i.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #pragma once
  2. #include <furi.h>
  3. #include "spi_mem_chip.h"
  4. typedef enum {
  5. SPIMemChipVendorUnknown,
  6. SPIMemChipVendorADESTO,
  7. SPIMemChipVendorAMIC,
  8. SPIMemChipVendorBoya,
  9. SPIMemChipVendorEON,
  10. SPIMemChipVendorPFLASH,
  11. SPIMemChipVendorTERRA,
  12. SPIMemChipVendorGeneralplus,
  13. SPIMemChipVendorDEUTRON,
  14. SPIMemChipVendorEFST,
  15. SPIMemChipVendorEXCELSEMI,
  16. SPIMemChipVendorFIDELIX,
  17. SPIMemChipVendorGIGADEVICE,
  18. SPIMemChipVendorICE,
  19. SPIMemChipVendorINTEL,
  20. SPIMemChipVendorKHIC,
  21. SPIMemChipVendorMACRONIX,
  22. SPIMemChipVendorMICRON,
  23. SPIMemChipVendorMSHINE,
  24. SPIMemChipVendorNANTRONICS,
  25. SPIMemChipVendorNEXFLASH,
  26. SPIMemChipVendorNUMONYX,
  27. SPIMemChipVendorPCT,
  28. SPIMemChipVendorSPANSION,
  29. SPIMemChipVendorSST,
  30. SPIMemChipVendorST,
  31. SPIMemChipVendorWINBOND,
  32. SPIMemChipVendorZEMPRO,
  33. SPIMemChipVendorZbit,
  34. SPIMemChipVendorBerg_Micro,
  35. SPIMemChipVendorATMEL,
  36. SPIMemChipVendorACE,
  37. SPIMemChipVendorATO,
  38. SPIMemChipVendorDOUQI,
  39. SPIMemChipVendorFremont,
  40. SPIMemChipVendorFudan,
  41. SPIMemChipVendorGenitop,
  42. SPIMemChipVendorParagon,
  43. SPIMemChipVendorXTX,
  44. SPIMemChipVendorXMC
  45. } SPIMemChipVendor;
  46. typedef enum {
  47. SPIMemChipCMDReadJEDECChipID = 0x9F,
  48. SPIMemChipCMDReadData = 0x03,
  49. SPIMemChipCMDChipErase = 0xC7,
  50. SPIMemChipCMDWriteEnable = 0x06,
  51. SPIMemChipCMDWriteDisable = 0x04,
  52. SPIMemChipCMDReadStatus = 0x05,
  53. SPIMemChipCMDWriteData = 0x02,
  54. SPIMemChipCMDReleasePowerDown = 0xAB
  55. } SPIMemChipCMD;
  56. enum SPIMemChipStatusBit {
  57. SPIMemChipStatusBitBusy = (0x01 << 0),
  58. SPIMemChipStatusBitWriteEnabled = (0x01 << 1),
  59. SPIMemChipStatusBitBitProtection1 = (0x01 << 2),
  60. SPIMemChipStatusBitBitProtection2 = (0x01 << 3),
  61. SPIMemChipStatusBitBitProtection3 = (0x01 << 4),
  62. SPIMemChipStatusBitTopBottomProtection = (0x01 << 5),
  63. SPIMemChipStatusBitSectorProtect = (0x01 << 6),
  64. SPIMemChipStatusBitRegisterProtect = (0x01 << 7)
  65. };
  66. typedef struct {
  67. const char* vendor_name;
  68. SPIMemChipVendor vendor_enum;
  69. } SPIMemChipVendorName;
  70. struct SPIMemChip {
  71. uint8_t vendor_id;
  72. uint8_t type_id;
  73. uint8_t capacity_id;
  74. const char* model_name;
  75. size_t size;
  76. size_t page_size;
  77. SPIMemChipVendor vendor_enum;
  78. SPIMemChipWriteMode write_mode;
  79. };
  80. extern const SPIMemChip SPIMemChips[];