Published
- 1 min read
CPU Core
ATMaga328P
UNO R3
Dip Chip
chipพังแล้วสามารถถอดเปลี่ยนได้
arduino-board-on-black-surface.avif
SMD Chip
AVR architecture
- Data Memory → ตัวแปร SRAM
- SRAM
- Cache Memory
- ข้อเสีย แพง ราคาสูง
- SRAM
- Program Memory → code Flash Memory
- Flash Memory ไม่ต้องมีไฟเลี้ยง ก็ใช้งานได้
- EEPROM Memory
Chip Control Memory
- 1 chip → 1 Block
- 1 block → 4 byte
- flash ได้พื้นที่เก็บข้อมูลเยอะ
- EEPROM พื้นที่เก็บข้อมูลน้อย control one by one
- พื้นที่ที่ไม่ได้ใช้ → slag
SRam
- 2k x 8 = 2kBytes
- 2k → ช่องเก็บข้อมูล
- 8 → 1 block
- Bus
- Address bus → ส่งตำแหน่งหน่วยความจำ
- Date bus → ส่งข้อมูล
- Control bus → control Read / Write
- หน้าที่หลักของ CPU Core
- ควบคุมลำดับการทำงานของโปรแกรม
- เข้าถึงหน่วยความจำ
- ประมวลผลทางคณิตศาสตร์และลอจิก
- ควบคุมอุปกรณ์อินพุต/เอาต์พุต (I/O)
- จัดการการขัดจังหวะ (Interrupt)
- สถาปัตยกรรมของ AVR CPU
- ใช้ Harvard Architecture (แยกหน่วยความจำโปรแกรมและข้อมูล)
- มีองค์ประกอบหลัก เช่น ALU, Register File, Status Register, Program Counter, Flash Memory, Data Memory และ Stack Pointer
- ALU (Arithmetic Logic Unit)
- หน่วยประมวลผลทางคณิตศาสตร์และลอจิก เช่น การบวก ลบ คูณ หาร AND OR NOT
- ทำงานร่วมกับ Register File 32 ตัว สามารถประมวลผลภายใน 1 รอบสัญญาณนาฬิกา
- Register File
- มี General Purpose Register ขนาด 8 บิต จำนวน 32 ตัว
- มี X, Y, Z Pointers ใช้สำหรับเข้าถึงหน่วยความจำ
- Status Register
- ใช้เก็บสถานะของการประมวลผล เช่น Carry Flag (C), Zero Flag (Z), Negative Flag (N), Overflow Flag (V), Sign Flag (S), และ Half Carry Flag (H)
- ชุดคำสั่ง (Instruction Set)
- ตัวอย่างคำสั่งพื้นฐาน:
ADD Rd, Rr→ บวกค่าของ Register สองตัวADC Rd, Rr→ บวกค่าของ Register พร้อม CarryAND Rd, Rr→ คำสั่งลอจิก ANDNEG Rd→ คำนวณค่าตรงข้าม (Two’s Complement)
- ตัวอย่างคำสั่งพื้นฐาน:
- การทำงานของ CPU (Instruction Processing)
- กระบวนการทำงานของคำสั่งมี Fetch → Decode → Execute → Writeback
- ใช้ Program Counter (PC) ในการชี้ตำแหน่งของคำสั่งใน Flash Memory
- ใช้ Stack Pointer ในการจัดการ Subroutine และ Interrupts