@@ -77,14 +77,24 @@ def get_pkg_version(self):
7777 def get_chip_description (self ):
7878 chip_name = {
7979 0 : "ESP32-C2" ,
80- 1 : "ESP32-C2 " ,
80+ 1 : "ESP8684H " ,
8181 }.get (self .get_pkg_version (), "Unknown ESP32-C2" )
8282 major_rev = self .get_major_chip_version ()
8383 minor_rev = self .get_minor_chip_version ()
8484 return f"{ chip_name } (revision v{ major_rev } .{ minor_rev } )"
8585
8686 def get_chip_features (self ):
87- return ["Wi-Fi" , "BT 5 (LE)" , "Single Core" , "120MHz" ]
87+ features = ["Wi-Fi" , "BT 5 (LE)" , "Single Core" , "120MHz" ]
88+
89+ flash = {
90+ 0 : None ,
91+ 1 : "Embedded Flash 4MB" ,
92+ 2 : "Embedded Flash 2MB" ,
93+ 3 : "Embedded Flash 1MB" ,
94+ }.get (self .get_flash_cap (), "Unknown Embedded Flash" )
95+ if flash is not None :
96+ features += [flash + f" ({ self .get_flash_vendor ()} )" ]
97+ return features
8898
8999 def get_minor_chip_version (self ):
90100 num_word = 1
@@ -95,14 +105,13 @@ def get_major_chip_version(self):
95105 return (self .read_reg (self .EFUSE_BLOCK2_ADDR + (4 * num_word )) >> 20 ) & 0x3
96106
97107 def get_flash_cap (self ):
98- # ESP32-C2 doesn't have eFuse field FLASH_CAP.
99- # Can't get info about the flash chip.
100- return 0
108+ num_word = 7
109+ return (self .read_reg (self .EFUSE_BLOCK2_ADDR + (4 * num_word )) >> 29 ) & 0x7
101110
102111 def get_flash_vendor (self ):
103- # ESP32-C2 doesn't have eFuse field FLASH_VENDOR.
104- # Can't get info about the flash chip.
105- return ""
112+ num_word = 7
113+ vendor_id = ( self . read_reg ( self . EFUSE_BLOCK2_ADDR + ( 4 * num_word )) >> 24 ) & 0x7
114+ return { 1 : "XMC" , 2 : "GD" , 3 : "FM" , 4 : "TT" , 5 : "ZBIT" }. get ( vendor_id , "" )
106115
107116 def get_crystal_freq (self ):
108117 # The crystal detection algorithm of ESP32/ESP8266 works for ESP32-C2 as well.
0 commit comments