วิธีดูข้อมูลต่างๆ ของ ESP8266 (ChipID , FlashID , FlashSize)

18 Jun 2015 วิธีดูข้อมูลต่างๆ ของ ESP8266 (ChipID , FlashID , FlashSize)

ก่อนหน้าที่เคยเห็นคำถามเกี่ยวกับ ESP8266  เช่น มีตัวเลขอะไรที่เป็น Unique หรือเปล่า  หรือ  หรืออยากรู้ Flash Size ของโมดูลแต่ละตัว   ซึ่งค่าพวกนี้เราสามารถดูได้โดยใช้ ESP-specific APIs  บทความนี้เราจะใช้ Arduino IDE ในการเขียนโปรแกรมเพื่อดึงค่าต่าง ๆ มาแสดงบน Serial Monitor กันครับ

ก่อนอื่นต้องขอขอบคุณพี่ Settakan ที่อธิบายเกี่ยวกับเรื่อง Flash Momory ID ครับ https://www.facebook.com/groups/ChiangMaiMakerClub/permalink/781221611997934/

ESP-specific APIs

APIs related to deep sleep and watchdog timer are available in the ESP object.

ESP.deepSleep(microseconds, mode) will put the chip into deep sleep. mode is one of WAKE_RF_DEFAULTWAKE_RFCALWAKE_NO_RFCALWAKE_RF_DISABLED. (GPIO16 needs to be tied to RST to wake from deepSleep.)

ESP.wdtEnable()ESP.wdtDisable(), and ESP.wdtFeed() provide some control over the watchdog timer.

ESP.reset() resets the CPU.

ESP.getFreeHeap() returns the free heap size.

ESP.getChipId() returns the ESP8266 chip ID as a 32-bit integer.

Several APIs may be used to get flash chip info:

ESP.getFlashChipId() returns the flash chip ID as a 32-bit integer.

ESP.getFlashChipSize() returns the flash chip size, in bytes, as seen by the SDK (may be less than actual size).

ESP.getFlashChipSpeed(void) returns the flash chip frequency, in Hz.

ESP.getCycleCount() returns the cpu instruction cycle count since start as an unsigned 32-bit. This is useful for accurate timing of very short actions like bit banging.

เราสามารถเรียกใช้ ESP Object ได้เลยครับ  โดย Function ที่เราจะใช้เพื่อดึงค่าต่างๆ ของโมดูลคือ

ESP.getChipId()   ใช้สำหรับดูข้อมูล Chip ID ซึ่งจะเป็นค่าที่ไม่ซ้ำกันในแต่ละโมดูล

ESP.getFlashChipId()  ใช้สำหรับดู Flash Chip ID ค่านี้จะบอกเราได้ว่าโมดูลนี้ใช้ Flash Chip ตัวไหน  ค่าที่ได้ออกมาจะเป็น Little Endian เราสามารถนำค่านี้ไป Search ใน Code  (https://code.coreboot.org/svn/flashrom/trunk/flashchips.h)   เพื่อหา Flash Chip ได้ครับ  ถ้าไปเปิด Datasheet ต่อก็จะรู้ค่า Flash Size ของโมดูลครับ

ESP.getFlashChipSize()  ใช้สำหรับดูค่า Flash Size  ที่ SDK อ่านได้    โดยค่าจะเปลี่ยนไปตาม Flash Size ที่เราเลือกตอน Upload Program ครับ  (Tool => Flash Size)

หลังจากเรารู้หน้าที่ของฟังก์ชันต่างๆ แล้วก็มาลองเขียนโค้ดกันได้เลยครับ

หลังจาก Upload Program ลงบอร์ดเสร็จแล้ว ให้เปิด Serial Monitor ตั้งค่า Baudrate เป็น 115200 แล้วกด Reset ที่บอร์ดก็จะได้ค่าต่าง ๆ ตามที่ต้องการครับ
esp8266_info_result

Comments

comments