#4 ทำความเข้าใจหน่วยความจำของ Arduino สักนิด :: Memory

Microcontroller แต่ละตัว ที่อยู่บนบอร์ด Arduino นั้น จะมีพื้นที่เก็บข้อมูล แบ่งเป็น 3 พื้นที่ ดังนี้

  • Flash Memory  มันเป็นที่เก็บ Arduino sketch ครับ หมายถึงว่าโปรแกรมที่เราเขียน(Sketch)  แล้วโหลดเข้า Mocrocontroller จะเก็บไว้ที่นี้นั้นเองครับ  จะเรียกว่า program space ก็ได้ ข้อมูลในพื้นที่นี้จะแก้ไขไม่ได้ ข้อมูลจะเปลี่ยนก็ต่อเมื่อโหลดโปรแกรมเข้ามาใหม่ ทับโปรแกรมเดิมไปเลย
  • SRAM (static random access memory)  เป็นพื้นที่เก็บข้อมูลในระหว่างที่ Microcontroller รันโปรแกรมของเราครับ ปกติแล้วในโปรแกรมที่เราเขียนนั้น ย่อมต้องมีการสร้างตัวแปรต่างๆ มีการใช้งานตัวแปร  ซึ่งก็จะใช้พื้นที่ตรงนี้ล่ะครับ  และเมื่อปลดแหล่งจ่ายไฟ ไฟดับข้อมูลในนี้จะหายไป
  • EEPROM เป็นพื้นเก็บข้อมูลกึ่งๆถาวร ข้อมูลที่เก็บไว้ในพื้นที่นี้ สามารถเขียนทับหรือเปลี่ยนแปลงได้ครับ แต่เมื่อไฟดับข้อมูลจะไม่หาย ด้วยนะ

ตัวอย่าง ขนาดหน่วยความจำของ  Microcontroller ที่อยู่บนบอร์ด Arduino

หน่วยความจำ ATMega168 ATMega328P ATmega1280 ATmega2560
Flash Memory
(1 Kbyte ในนี้ใช้เก็บ bootloader)
16 KBytes 32 KBytes 128 KBytes 256 KBytes
SRAM 1024 bytes 2048 bytes KBytes KBytes
EEPROM 512 bytes 1024 bytes KBytes KBytes

 

IMG_20160327_154443

รูป ATMega328P ที่อยู่บนบอร์ด Arduino Pro Mini 

pairoch-julrat-picture