10M+ အီလက်ထ্রောနစ်အစိတ်အပိုင်းများ သိုလှောင်ထားပါသည်
ມາດຕະຖານ ISO
ពានុញ្ញាតរួមមាន
ປະໄວທັນເວລາ
ສ່ວນສໍາຄັນທີ່ຍາກຄົ້ນເຫັນ?
ພວກເຮົາແຫ່ງແຫຼ່ງ
ຂໍແຈ້ງລາຄາ

ATmega Microcontrollers: ສະຖາປະນິກ, ໂປຣແກຣມ, ເຄື່ອງມືພັດທະນາ ແລະ ໂປຣເເກຣມ

Mar 11 2026
ແຫຼ່ງ: DiGi-Electronics
ສືບສະຖານທີ່: 1149

ATmega microcontrollers ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນລະບົບຝັງ ເພາະມັນລວມເອົາຄວາມສາມາດໃນການດໍາເນີນການ, ຄວາມຊົງຈໍາ ແລະ ອຸປະກອນອຸປະກອນໃນຊິບດຽວ. ໂຄງສ້າງທີ່ງ່າຍໆ, ປະສິດທິພາບທີ່ໄວ້ວາງໃຈໄດ້ ແລະ ລະບົບການພັດທະນາທີ່ເຂັ້ມແຂງເຮັດໃຫ້ມັນເຫມາະສົມສໍາລັບການຮຽນຮູ້ແລະສ້າງລະບົບເອເລັກໂຕຣນິກ. ບົດຄວາມນີ້ອະທິບາຍກ່ຽວກັບສະຖາປະນິກ, module ພາຍໃນ, ຂະບວນການຂຽນໂປຣແກຣມ ແລະ ໂປຣແກຣມທົ່ວໄປໃນການອອກແບບທີ່ທັນສະໄຫມ.

ຄ1. ATmega Microcontrollers ແມ່ນຫຍັງ?

ຄ2. ລັກສະນະເດັ່ນຂອງ ATmega Microcontrollers

ຄ3. ATmega Architecture ແລະ Module ພາຍໃນ

ຄ4. ຕັ້ງຄ່າ ATmega Pin

ຄ5. ລະບົບພະລັງງານຂອງ ATmega Microcontrollers

ຄ6. ການຈັດການກັບການຂັດຂວາງໃນ ATmega Microcontrollers

ຄ7. ໂປຣແກຣມ ATmega Microcontrollers

ຄ8. ATmega Development Workflow ແລະ Programming Tools

ຄ9. ໂຄງການ LED ງ່າຍໆ ໂດຍ ໃຊ້ ATmega16

ຄ10. ແບບຢ່າງ ATmega Microcontroller ທົ່ວໄປ

ຄ11. ການນໍາໃຊ້ ATmega Microcontrollers

ຄ12. ATmega vs Microcontrollers ອື່ນໆ

ຄ13. ສະຫລຸບ

ຄ14. ຄໍາຖາມທີ່ຖາມເລື້ອຍໆ [FAQ]

Figure 1. ATmega Microcontrollers

ATmega Microcontrollers ແມ່ນຫຍັງ?

ATmega microcontrollers ເປັນ 8-bit AVR microcontroller chips (ຕົ້ນເດີມຈາກ Atmel, ປັດຈຸບັນຢູ່ພາຍໃຕ້ Microchip Technology) ທີ່ອອກແບບມາສໍາລັບລະບົບຝັງ. ເຂົາເຈົ້າໃຊ້ຊຸດຄໍາສັ່ງ RISC ແລະ ໂຄງສ້າງ Harvard ແລະລວມເອົາຄວາມຊົງຈໍາຂອງໂປຣແກຣມ (Flash), ຄວາມຊົງຈໍາທີ່ເຮັດວຽກ (SRAM), ຄວາມຊົງຈໍາທີ່ບໍ່ປ່ຽນແປງ (EEPROM), ພ້ອມທັງອຸປະກອນທົ່ວໄປ; ເຊັ່ນ: timers, digital I / O, ADC ແລະ serial interface ໃນອຸປະກອນດຽວ.

ລັກສະນະເດັ່ນຂອງ ATmega Microcontrollers

ລັກສະນະຄໍາອະທິບາຍ
8-bit AVR RISC Architectureໃຊ້ການອອກແບບ Reduced Instruction Set Computing (RISC) ທີ່ອະນຸຍາດໃຫ້ຄໍາສັ່ງສ່ວນຫຼາຍດໍາເນີນການໃນວົງຈອນໂມງດຽວ ເຮັດໃຫ້ຂະບວນການດໍາເນີນການໄດ້ໄວແລະມີປະສິດທິພາບ.
Harvard Architectureຄວາມຊົງຈໍາຂອງໂປຣແກຣມແລະຄວາມຊົງຈໍາຂໍ້ມູນຖືກເກັບໄວ້ຕ່າງຫາກ, ອະນຸຍາດໃຫ້ CPU ເອົາຄໍາສັ່ງແລະເຂົ້າເຖິງຂໍ້ມູນໃນເວລາດຽວກັນ, ຊຶ່ງຈະປັບປຸງປະສິດທິພາບ.
On-chip Flash Program Memoryຄວາມຊົງຈໍາ Flash ທີ່ບໍ່ປ່ຽນແປງຈະເກັບລະຫັດໂປຣແກຣມແລະເກັບໄວ້ເຖິງແມ່ນວ່າຈະຖອດໄຟຟ້າອອກ. ອີງຕາມລຸ້ນ, ຕາມປົກກະຕິແລ້ວຈະມີຂະຫນາດ 4 KB ເຖິງ 256 KB.
SRAM (Static RAM)ໃຊ້ສໍາລັບການເກັບກໍາຂໍ້ມູນຊົ່ວຄາວໃນລະຫວ່າງການດໍາເນີນໂປຣແກຣມ, ລວມທັງຕົວປ່ຽນ, buffers ແລະ stack.
EEPROMElectrically Erasable Programmable Read-Only Memory ໃຊ້ເພື່ອເກັບຂໍ້ມູນທີ່ບໍ່ປ່ຽນແປງເຊັ່ນ ການຕັ້ງຄ່າທີ່ຕ້ອງເກັບຮັກສາໄວ້ຫຼັງຈາກໄຟຟ້າສູນເສຍ.
Built-in Timers ແລະ PWMHardware timers ແລະ Pulse Width Modulation modules ຖືກໃຊ້ສໍາລັບການດໍາເນີນການເວລາ, ການສ້າງສັນຍານ, ແລະ ການຄວບຄຸມຄວາມສະຫວ່າງຂອງເຄື່ອງຈັກຫຼື LED.
ADC 10-bitAnalog-to-Digital Converter ທີ່ສ້າງຂຶ້ນອະນຸຍາດໃຫ້ microcontroller ອ່ານສັນຍານ analog ຈາກ sensor ແລະປ່ຽນເປັນຄຸນຄ່າ digital ສໍາລັບການດໍາເນີນການ.
ໂປຣແກຣມ Digital I/O Pinsຫຼາຍ input/output pins ສາມາດຕັ້ງຄ່າເປັນinput ຫຼື output ເພື່ອຕິດຕໍ່ກັບອຸປະກອນພາຍນອກເຊັ່ນ LED, button ແລະ sensors.
ການສື່ສານສະຫນັບສະຫນູນລະບົບການສື່ສານແບບຕໍ່ເນື່ອງທົ່ວໄປລວມທັງ USART, SPI ແລະ I²C ສໍາລັບການເຊື່ອມຕໍ່ກັບ microcontrollers, sensor ແລະ module ອື່ນໆ.
ລະບົບນິເວດການພັດທະນາທີ່ເຂັ້ມແຂງໄດ້ຮັບການສະຫນັບສະຫນູນຢ່າງກວ້າງຂວາງໂດຍເຄື່ອງມືພັດທະນາ, ເອກະສານແລະລະບົບຕ່າງໆເຊັ່ນ Arduino, ເຮັດໃຫ້ການຂຽນໂປຣແກຣມ, ການສ້າງແບບຢ່າງແລະການແກ້ໄຂຂໍ້ມູນງ່າຍຂຶ້ນ.

ATmega Architecture ແລະ Module ພາຍໃນ

Figure 2. ATmega Architecture and Internal Modules

ATmega MCUs ໃຊ້ CPU AVR 8-bit ທີ່ມີສະຖາປະນິກຂອງຮາວເວີດ: Flash ເກັບຄໍາສັ່ງ, ໃນຂະນະທີ່ SRAM ເກັບຂໍ້ມູນໃນເວລາແລ່ນ. core ມີ 32 register ທີ່ ທໍາ ງານ ແລະ pipeline ທີ່ ງ່າຍໆ, ດັ່ງນັ້ນ ຄໍາ ແນະນໍາ ຫລາຍ ຢ່າງ ຈຶ່ງ ສໍາ ເລັດ ໃນ ໂມງ ດຽວ. ພາຍໃນ, ຄວາມຊົງຈໍາສາມປະເພດສະຫນັບສະຫນູນຄວາມຕ້ອງການ firmware ທົ່ວໄປ: Flash ສໍາລັບການເກັບໂປຣແກຣມ (ແລະພື້ນທີ່ bootloader ທາງເລືອກ), SRAM ສໍາລັບຕົວປ່ຽນແລະສະກັດ, ແລະ EEPROM ສໍາລັບການຕັ້ງຄ່າທີ່ບໍ່ປ່ຽນແປງ.

ອຸປະກອນຕິດຕໍ່ກັບ CPU ຜ່ານ register I / O ທີ່ວາງແຜນຄວາມຊົງຈໍາ. Port GPIO ຖືກຄວບຄຸມຜ່ານ DDRx (ທິດທາງ), PORTx (output ຫຼື pull-up) ແລະ PINx (ອ່ານ). ລະບົບໂມງທີ່ປັບປ່ຽນໄດ້ (RC ພາຍໃນ ຫຼື ແກ້ວພາຍນອກ) ກໍານົດຄວາມໄວ CPU ແລະ ເວລາກໍານົດເວລາ. Timers / counters (8-bit ແລະ/ຫຼື 16-bit, ຂຶ້ນກັບແບບຢ່າງ) ໃຫ້ການຊັກຊ້າ, ການນັບເຫດການແລະການສ້າງ PWM. ຫຼາຍພາກສ່ວນລວມທັງ multi-channel 10-bit ADC ສໍາລັບ sensor inputs. ຕາມປົກກະຕິແລ້ວ Serial interface ລວມທັງ USART, SPI ແລະ TWI (I²C-compatible) ສໍາລັບການສື່ສານກັບ PC, sensor ແລະ ຄວບຄຸມອື່ນໆ.

ຄວບຄຸມການຂັດຂວາງທີ່ມີຕາຕະລາງເວັກເຕີອະນຸຍາດໃຫ້ອຸປະກອນອຸປະກອນແລະເຂັມພາຍນອກກະຕຸ້ນ firmware ທີ່ເກີດຂຶ້ນ.

ການຕັ້ງຄ່າ ATmega Pin

Figure 3. ATmega Pin Configuration

Pin CategoryPin Name / Portຄໍາອະທິບາຍ / ຫນ້າທີ່
ເຂັມໄຟຟ້າVCCvolt supply ຫຼັກສໍາລັບ microcontroller.
GNDຂໍ້ອ້າງອີງພື້ນດິນສໍາລັບຫມວດ.
AVCCໄຟຟ້າສໍາລັບຫມວດ analog ແລະ ADC.
AREFแรงดันອ້າງອີງທີ່ໃຊ້ໂດຍ Analog-to-Digital Converter (ADC).
Digital Input/Output Pinsທ່າເຮືອ A (PA0–PA7)Digital I / O pins ທີ່ສາມາດເຮັດຫນ້າທີ່ເປັນอินพุต analog ສໍາລັບ ADC.
ທ່າເຮືອ B (PB0–PB7)Digital I / O pins ທີ່ໃຊ້ກັນທົ່ວໄປສໍາລັບການສື່ສານ SPI ແລະ ຫນ້າທີ່ຂອງເວລາ.
ໂປຣແກຣມ C (PC0–PC7)ເຂັມ I / O digital ທີ່ ມີ ຈຸດປະສົງ ທົ່ວ ໄປ ມັກ ໃຊ້ ສໍາລັບ ສັນຍານ ຄວບ ຄຸມ.
ທ່າເຮືອ D (PD0–PD7)Digital I/O pins ມັກໃຊ້ສໍາລັບການສື່ສານ USART ແລະ ການຂັດຂວາງພາຍນອກ.
ເຂັມໂມງXTAL1Input pin ສໍາລັບ oscillator ພາຍນອກ ຫຼື ສັນຍານໂມງ.
XTAL2pin output ຈາກ ເຄື່ອງ ຂະຫຍາຍ oscillator ພາຍ ໃນ.
Reset PinRESETActive-low reset pin ໃຊ້ເພື່ອເລີ່ມຕົ້ນລະບົບ microcontroller.
ເຂັມການສື່ສານ – USARTRXDຮັບຂໍ້ມູນຕໍ່ຈາກອຸປະກອນພາຍນອກ.
TXDສົ່ງຂໍ້ມູນຕໍ່ເນື່ອງໄປອຸປະກອນພາຍນອກ.
ເຂັມການສື່ສານ – SPIໂມຊີMaster Out Slave In – ສາຍຂໍ້ມູນຈາກນາຍໄປຫາອຸປະກອນຂ້າໃຊ້.
MISOMaster In Slave Out - ສາຍ ຂໍ້ ມູນ ຈາກ ຂ້າ ທາດ ໄປ ຫາ ອຸປະກອນ master.
SCKສັນຍານໂມງແບບຕໍ່ເນື່ອງທີ່ໃຊ້ສໍາລັບການສື່ສານ SPI.
SSSlave Select pin ທີ່ໃຊ້ເພື່ອເລືອກອຸປະກອນ SPI slave.
ເຂັມການສື່ສານ – TWI (I²C)SDASerial Data line ໃຊ້ສໍາລັບການສື່ສານສອງສາຍ.
SCLSerial Clock line ໃຊ້ສໍາລັບການສື່ສານສອງສາຍ.

Pinout ແຕກຕ່າງກັນໄປຕາມລຸ້ນ; ຕາຕະລາງນີ້ໃຊ້ ATmega16/32 ເປັນຕົວຢ່າງ.

Power Modes ຂອງ ATmega Microcontrollers

Figure 4. Power Modes of ATmega Microcontrollers

ATmega microcontrollers ສະຫນັບສະຫນູນ mode ການ ໃຊ້ ພະລັງ ຫລາຍ ຢ່າງ ທີ່ ຫລຸດຜ່ອນ ການ ໃຊ້ ພະລັງ ເມື່ອ CPU ບໍ່ ຈໍາ ເປັນ ຕ້ອງ ທໍາ ງານ ຢ່າງ ຕໍ່ ເນື່ອງ. mode ເຫລົ່າ ນີ້ ມີ ປະ ໂຫຍດ ໂດຍ ສະ ເພາະ ໃນ ລະບົບ ຝັງ ທີ່ ໃຊ້ ໄຟ ລົດ ດັ່ງ ເຊັ່ນ ເຄື່ອງ ມື ຖື ແລະ sensor IoT.

Idle Mode

ໃນ Idle mode, CPU ຢຸດປະຕິບັດຄໍາສັ່ງໃນຂະນະທີ່ module ອ້ອມຂ້າງເຊັ່ນ timers, serial communication interface ແລະ interrupts ຍັງດໍາເນີນການຕໍ່ໄປ. ສິ່ງນີ້ອະນຸຍາດໃຫ້ microcontroller ຕື່ນຂຶ້ນຢ່າງໄວເມື່ອມີການຂັດຂວາງ.

โหมดປິດໄຟຟ້າ

Power-off mode ປິດ CPU ແລະ ອຸປະກອນພາຍໃນສ່ວນຫຼາຍເພື່ອໃຫ້ມີການໃຊ້ພະລັງງານຕໍ່າຫຼາຍ. ພຽງແຕ່ການຂັດຂວາງພາຍນອກຫຼືເຫດການເວລາເຝົ້າເບິ່ງເທົ່ານັ້ນທີ່ສາມາດປຸກອຸປະກອນໄດ້. ແບບ ນີ້ ມັກ ໃຊ້ ໃນ ໂປຣເເກຣມ ລໍຖ້າ ເປັນ ເວລາ ດົນ ນານ.

โหมด Standby

Standby mode ກໍ ຄ້າຍຄື ກັນ ກັບ Power-down mode ແຕ່ ຍັງ ເຮັດ ໃຫ້ oscillator ດໍາ ເນີນ ຕໍ່ ໄປ. ເນື່ອງຈາກແຫຼ່ງໂມງຍັງເຮັດວຽກຢູ່, microcontroller ຈຶ່ງສາມາດດໍາເນີນການໄດ້ໄວຂຶ້ນ.

ການຈັດການກັບການຂັດຂວາງໃນ ATmega Microcontrollers

ການຂັດຂວາງອະນຸຍາດໃຫ້ microcontroller ATmega ຕອບສະຫນອງທັນທີຕໍ່ເຫດການທີ່ສໍາຄັນໂດຍບໍ່ຕ້ອງກວດສອບຢ່າງຕໍ່ເນື່ອງໃນວົງຈອນຂອງໂປຣແກຣມຫຼັກ.

ເມື່ອເກີດການຂັດຂວາງ, microcontroller ຈະຢຸດການດໍາເນີນໂປຣແກຣມຊົ່ວຄາວແລະກະໂດດໄປຫາກິດຈະກໍາພິເສດທີ່ເອີ້ນວ່າ Interrupt Service Routine (ISR). ຫລັງ ຈາກ ISR ສິ້ນ ສຸດ ລົງ, ໂຄງການ ຈະ ດໍາ ເນີນ ຕໍ່ ໄປ ຈາກ ບ່ອນ ທີ່ ມັນ ຖືກ ຢຸດ ພັກ.

ແຫຼ່ງການຂັດຂວາງທົ່ວໄປໃນອຸປະກອນ ATmega ລວມເຖິງ:

• ເຂັມຂັດພາຍນອກ

• Timer overflow ຫຼື ປຽບທຽບເຫດການຕ່າງໆ

• ເຫດການສື່ສານຕໍ່ເນື່ອງ (USART, SPI, TWI)

• ການ ປ່ຽນ ໃຈ ເຫລື້ອມ ໃສ ADC ສໍາ ເລັດ

• ເຫດການເວລາເຝົ້າເບິ່ງ

ການໃຊ້ການຂັດຂວາງຈະປັບປຸງປະສິດທິພາບຂອງລະບົບ ເພາະວ່າ CPU ບໍ່ຈໍາເປັນຕ້ອງກວດສອບອຸປະກອນຮາດແວຣ໌ຕະຫຼອດເວລາ. ແທນທີ່ຈະເຮັດແນວນັ້ນ processor ເຮັດຫນ້າທີ່ອື່ນໆແລະຕອບສະຫນອງເມື່ອມີສັນຍານຂັດຈັງຫວະເທົ່ານັ້ນ.

ໂປຣແກຣມ ATmega Microcontrollers

ຕາມປົກກະຕິແລ້ວ microcontrollers ATmega ຈະຖືກຕັ້ງໂປຣແກຣມໃນ Embedded C ໂດຍໃຊ້ avr-gcc (AVR-GCC) ແລະ avr-libc. AVR Assembly ຍັງມີປະໂຫຍດສໍາລັບບາງກໍລະນີເຊັ່ນ ວົງຈອນທີ່ຖືກຕ້ອງ, ໂປຣແກຣມຂະຫນາດນ້ອຍ ຫຼືການຄວບຄຸມຄໍາສັ່ງສະເພາະເຈາະຈົງໂດຍກົງ, ແຕ່ໂຄງການສ່ວນຫຼາຍໃຊ້ C ເພື່ອການພັດທະນາທີ່ໄວຂຶ້ນແລະການບໍາລຸງຮັກສາທີ່ງ່າຍຂຶ້ນ.

Firmware ຄວບຄຸມຮາດແວຣ໌ຜ່ານຈົດທະບຽນ I / O ທີ່ວາງແຜນໄວ້ໃນຄວາມຊົງຈໍາ. ແຕ່ລະອຸປະກອນ (GPIO, timers, ADC, USART, SPI, TWI) ມີຈົດທະບຽນຄວບຄຸມທີ່ທ່ານຂຽນຫຼືອ່ານໃນໂປຣແກຣມ. ສໍາລັບ GPIO, ແບບແຜນທົ່ວໄປແມ່ນ:

• DDRx ກໍານົດທິດທາງ pin (0=input, 1=output)

• PORTx ຂຽນລະດັບຜົນອອກ(ຫຼືເຮັດໃຫ້ pull-up ເມື່ອຕັ້ງຄ່າເປັນอินพุต)

• PINx ອ່ານສະຖານະຂອງ pin ປະຈຸບັນ

ຕົວຢ່າງ: ຕັ້ງ PB0 ເປັນຜົນອອກແລະເປີດ LED

Embedded C Code

ໃນພາກປະຕິບັດ, ທ່ານຈະປະກອບໂຄງການເປັນແຟ້ມ .hex ແລະໂປຣແກຣມຊິບໂດຍໃຊ້ ISP (SPI-based) ດ້ວຍເຄື່ອງມືເຊັ່ນ USBasp / AVRISP / Atmel-ICE ຫຼືຜ່ານ bootloader ໃນບາງboard. ທາງເລືອກຂອງອຸປະກອນເຊັ່ນ clock source ແລະ boot ຕັ້ງຄ່າຖືກຄວບຄຸມໂດຍ fuse bits, ດັ່ງນັ້ນມັນຕ້ອງສອດຄ່ອງກັບໂມງຂອງຮາດແວຣ໌ແລະຄວາມຕ້ອງການເລີ່ມຕົ້ນຂອງເຈົ້າ.

ATmega Development Workflow ແລະ Programming Tools

Figure 5. ATmega Development Workflow and Programming Tools

Toolchain (ສ້າງຜົນອອກ)

• ຂຽນໂປຣແກຣມໃນ Embedded C (ຫຼື AVR assembly ເມື່ອຈໍາເປັນ) ໂດຍໃຊ້ IDE / editor ເຊັ່ນ Microchip Studio ຫຼື VS Code.

• ສ້າງດ້ວຍ AVR-GCC (compile + link) ເພື່ອຜະລິດແຟ້ມ ELF, ຈາກນັ້ນສ້າງຮູບພາບ .hex ສໍາລັບໂປຣແກຣມ Flash.

• ຮັກສາການຕັ້ງຄ່າໂຄງການໃຫ້ສອດຄ່ອງ (ອຸປະກອນ, ໂມງ, ການປັບປຸງ, ຫ້ອງສະຫມຸດ) ເພື່ອໃຫ້ການສ້າງສາມາດເຮັດຊ້ໍາໄດ້.

ວິທີການຂຽນໂປຣແກຣມ (ວິທີທີ່ firmware ເຂົ້າໄປໃນ chip)

• ISP (SPI-based) ເປັນວິທີທໍາມະດາທີ່ສຸດສໍາລັບ chips ATmega ເປົ່າ. ໂປຣແກຣມທົ່ວໄປລວມທັງ USBasp, AVRISP ແລະ Atmel-ICE.

• bootloader ສາມາດໃຊ້ໄດ້ໃນບາງboard, ອະນຸຍາດໃຫ້ອັບໂປຣແກຣມຜ່ານ UART / USB ໂດຍບໍ່ຕ້ອງໃຊ້ເຄື່ອງມື ISP ພາຍນອກ.

• ໃຊ້ເຄື່ອງມືເຊັ່ນ avrdude (ຫຼື IDE-integrated programmers) ເພື່ອຂຽນແຟ້ມ HEX ແລະດໍາເນີນຂັ້ນຕອນການຢືນຢັນຫຼັງຈາກການຂຽນໂປຣແກຣມ.

• ທາງເລືອກຂອງອຸປະກອນເຊັ່ນ ແຫຼ່ງໂມງແລະການຕັ້ງຄ່າເລີ່ມລະບົບຖືກຄວບຄຸມໂດຍ fuse bits, ດັ່ງນັ້ນ ການຕັ້ງຄ່າ fuse ຕ້ອງສອດຄ່ອງກັບຮາດແວຣ໌ແທ້ໆ.

ແກ້ໄຂແລະທົດສອບ

• ສໍາລັບການທົດສອບຫນ້າທີ່, ເລີ່ມຕົ້ນດ້ວຍບັນທຶກ UART, pin "heartbeat" GPIO ແລະ firmware ທົດສອບແບບງ່າຍໆ.

• ການແກ້ໄຂຮາດແວຣ໌ຂຶ້ນຢູ່ກັບລຸ້ນ ATmega ສະເພາະແລະການສະຫນັບສະຫນູນຂອງຄະນະກໍາມະການ (ຍົກຕົວຢ່າງ, debugWIRE ຫຼື JTAG ໃນສ່ວນທີ່ສະຫນັບສະຫນູນ). ເຄື່ອງມືເຊັ່ນ Atmel-ICE ສາມາດໃຊ້ໄດ້ເມື່ອເປົ້າຫມາຍສະຫນັບສະຫນູນການແກ້ໄຂຂໍ້ມູນໃນຊິບ.

• ເຄື່ອງມືจําลอง (Proteus, SimulIDE, Tinkercad) ສາມາດຊ່ວຍກວດສອບໄດ້ໃນຕອນຕົ້ນ, ແຕ່ພຶດຕິກໍາແລະເວລາທີ່ຢູ່ອ້ອມຂ້າງອາດບໍ່ສອດຄ່ອງກັບຮາດແວຣ໌ແທ້ໆ, ດັ່ງນັ້ນການກວດສອບຄັ້ງສຸດທ້າຍຄວນເຮັດໃນກະດານ.

ໂຄງການ LED ງ່າຍໆ ໂດຍ ໃຊ້ ATmega16

Figure 6. Simple LED Project Using ATmega16

ໂຄງການເລີ່ມຕົ້ນທີ່ງ່າຍໆໂດຍໃຊ້ ATmega16 ສະແດງໃຫ້ເຫັນວິທີທີ່ microcontroller ອ່ານຂໍ້ມູນທີ່ປຸ້ນແລະຄວບຄຸມຜົນອອກ LED.

ຈຸດປະສົງຂອງໂຄງການ

ເປີດ LED ເມື່ອຖືກບຸກເບີກ ແລະ ປິດເມື່ອປ່ອຍປຸ່ມ.

ຕົວຢ່າງການເຊື່ອມຕໍ່

• ປຸ່ມ → PA0

• LED → PB0 ຜ່ານ resistor ທີ່ຈໍາກັດກະແສ

ຕົວຢ່າງລະຫັດ

Example Code

ວິທີ ທີ່ ໂຄງການ ດໍາເນີນ ງານ

ທໍາອິດໂປຣແກຣມຕັ້ງຄ່າ PA0 ເປັນpin input ແລະ PB0 ເປັນpin output. ພາຍໃນວົງຈອນທີ່ບໍ່ມີຂອບເຂດ, microcontroller ຈະອ່ານສະພາບ logic ຂອງປຸ່ມທີ່ຕິດຕໍ່ກັບ PA0 ຢ່າງຕໍ່ເນື່ອງ.

ເມື່ອບີບປຸ່ມ, PA0 ຈະກາຍເປັນ HIGH. ໂປຣແກຣມຈະກວດພົບຂໍ້ມູນນີ້ແລະຕັ້ງ PB0 HIGH ເຊິ່ງເປີດ LED. ເມື່ອປ່ອຍປຸ່ມ, PA0 ຈະກາຍເປັນ LOW, ດັ່ງນັ້ນໂປຣແກຣມຈະມ້ຽນ PB0 ແລະ LED ຈະປິດ.

ແບບຢ່າງ ATmega Microcontroller ທົ່ວໄປ

Figure 7. ATmega8

• ATmega8 – ລວມເອົາຄວາມຊົງຈໍາ Flash 8 KB ແລະ ເຫມາະສົມສໍາລັບໂປຣແກຣມການຄວບຄຸມທີ່ງ່າຍໆ, ການຕິດຕໍ່ພົວພັນກັບเซ็นเซอร์ພື້ນຖານ ແລະ ໂຄງການຮຽນຮູ້ນ້ອຍໆທີ່ລາຄາຕໍ່າແລະຄວາມງ່າຍດາຍເປັນສິ່ງສໍາຄັນ.

Figure 8. ATmega16

• ATmega16 – ໃຫ້ຄວາມຊົງຈໍາ Flash 16 KB ພ້ອມກັບທາງເລືອກ I/O digital ແລະ ອຸປະກອນທີ່ຕິດຢູ່, ເຮັດໃຫ້ມັນເປັນທາງເລືອກທົ່ວໄປສໍາລັບໂຄງການຝັງໃນລະດັບປານກາງເຊັ່ນ ການຄວບຄຸມການສະແດງ, ການຕິດຕໍ່ກັບເຄື່ອງຈັກ ແລະ ລະບົບອັດຕະໂນມັດຂະຫນາດນ້ອຍ.

Figure 9. ATmega32

• ATmega32 – ສະເຫນີຄວາມຊົງຈໍາ Flash 32 KB ພ້ອມດ້ວຍອຸປະກອນເພີ່ມເຕີມ ແລະ ຊ່ອງຫວ່າງໂປຣແກຣມທີ່ກວ້າງຂວາງ, ເຮັດໃຫ້ມັນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນຫຸ່ນຍົນ, ຫມວດຄວບຄຸມ ແລະ ລະບົບອັດຕະໂນມັດທີ່ຕ້ອງການຄວາມປັບປ່ຽນແລະຫນ້າທີ່ຫຼາຍກວ່າ.

Figure 10. ATmega328P

• ATmega328P - ມີຄວາມຊົງຈໍາ Flash 32 KB, ຊ່ອງທາງເຂົ້າແບບ analog ຫຼາຍຊ່ອງ ແລະ ການສື່ສານຫຼາຍຢ່າງ. ເປັນທີ່ຮູ້ຈັກກັນດີວ່າເປັນຈຸນລະຊີບຫຼັກທີ່ໃຊ້ໃນ Arduino Uno, ຊຶ່ງເຮັດໃຫ້ມັນເປັນທີ່ນິຍົມເປັນພິເສດສໍາລັບການສຶກສາ, ການສ້າງແບບຢ່າງແລະເຄື່ອງເອເລັກໂຕຣນິກ.

Figure 11. ATmega2560

• ATmega2560 – ມາພ້ອມກັບຄວາມຊົງຈໍາ Flash 256 KB ແລະ pin I / O ຈໍານວນຫຼວງຫຼາຍ, ອະນຸຍາດໃຫ້ມັນຮັບມືກັບລະບົບຝັງທີ່ສະຫຼັບຊັບຊ້ອນຫຼາຍຂຶ້ນ. ມັນຖືກໃຊ້ໃນ Arduino Mega ແລະເຫມາະສົມສໍາລັບໂຄງການທີ່ຕ້ອງການ sensor, module ແລະການເກັບຮັກສາໂປຣແກຣມທີ່ໃຫຍ່ກວ່າ.

ການນໍາໃຊ້ ATmega Microcontrollers

Figure 12. Applications of ATmega Microcontrollers

• ລະບົບຄວບຄຸມເຄື່ອງຈັກ – ຄວບຄຸມ DC motors, servo motor ແລະ stepper motors ໂດຍໃຊ້ສັນຍານ PWM ສໍາລັບການຄວບຄຸມຄວາມໄວ ແລະ ຕໍາແຫນ່ງ (ຕົວຢ່າງ: ຂົນສົ່ງຂະຫນາດນ້ອຍ, ຄວບຄຸມพัดลม, ຄວບຄຸມສູບ).

• ການບັນທຶກຂໍ້ມູນຂອງ Sensor – ການອ່ານເຄື່ອງສັງເກດເຊັ່ນ ອຸນຫະພູມ, ຄວາມຊຸ່ມເຢັນ, ແສງສະຫວ່າງ, ແກ໊ດ ຫຼື ຄວາມກົດດັນ ແລະ ການບັນທຶກການວັດແທກໃສ່ EEPROM, SD card modules ຫຼືສົ່ງຂໍ້ມູນໄປໃຫ້ຄອມພິວເຕີຜ່ານການສື່ສານແບບຕໍ່ເນື່ອງ.

• ຄວບຄຸມອັດຕະໂນມັດໃນບ້ານ – ປ່ຽນໄຟ, ຖ່າຍທອດ ແລະ ເຄື່ອງໃຊ້; ເຝົ້າເບິ່ງເຄື່ອງຈັບປະຕູ ຫຼື ເຄື່ອງຈັບການເຄື່ອນໄຫວ; ແລະ ການ ຄວບ ຄຸມ ອຸນຫະພູມ ຫລື ສັນຍານ ໂດຍ ໃຊ້ ເຫດຜົນ ການ ຄວບ ຄຸມ ທີ່ ງ່າຍໆ.

• ລະບົບຫຸ່ນຍົນຂະຫນາດນ້ອຍ – ຈັດການກັບຫຸ່ນຍົນທີ່ຕິດຕາມແຖວ, ຫຸ່ນຍົນຫຼີກລ່ຽງອຸປະສັກ ແລະ ແຂນຫຸ່ນຍົນທີ່ງ່າຍໆ ໂດຍການຈັດການຂໍ້ມູນຂອງ sensor ແລະ ຄວບຄຸມເຄື່ອງຈັກ ແລະ actuator.

• ການຕິດຕາມ ແລະ ຄວບຄຸມອຸດສະຫະກໍາ – ການຕິດຕາມຂະບວນການພື້ນຖານ, ລະບົບສັນຍານ ແລະ ການຄວບຄຸມອັດຕະໂນມັດຂອງເຄື່ອງຈັກນ້ອຍໆທີ່ຕ້ອງການຄວາມໄວພໍສົມຄວນ ແລະ I / O ທີ່ໄວ້ໃຈໄດ້.

• IoT ແລະ node sensor wireless – ອຸປະກອນ sensor ພະລັງງານຕ່ໍາທີ່ຄູ່ກັບ module wireless (ເຊັ່ນ RF, Bluetooth ຫຼື Wi-Fi modules) ສໍາລັບການຕິດຕາມ ແລະ ລາຍງານເປັນໄລຍະ.

• ເຄື່ອງເອເລັກໂຕຣນິກສໍາລັບລູກຄ້າ ແລະ ລົດ – ການຄວບຄຸມທີ່ງ່າຍໆພາຍໃນອຸປະກອນເຊັ່ນ ການຄວບຄຸມທາງໄກ, ເຄື່ອງໃຊ້ນ້ອຍໆ, dashboard ຫຼື ລະບົບຊີ້ບອກ.

• ເຄື່ອງມືການແພດ ແລະ ວັດແທກ – ວຽກງານການເຝົ້າເບິ່ງ ແລະ ຄວບຄຸມສັນຍານພື້ນຖານໃນອຸປະກອນ portable ບ່ອນທີ່ພະລັງງານຕ່ໍາ ແລະ ປະສິດທິພາບທີ່ຫມັ້ນຄົງເປັນສິ່ງສໍາຄັນ.

ATmega vs Microcontrollers ອື່ນໆ

Figure 13. ATmega vs Other Microcontrollers

ລັກສະນະATmega (AVR)PIC MicrocontrollersMicrocontrollers ທີ່ອີງໃສ່ ARM
ສະຖາປະນິກAVR RISCຮູບພາບ RISCARM Cortex-M
ພະລັງການປຸງແຕ່ງພໍ ສົມ ຄວນພໍ ສົມ ຄວນສູງຫຼາຍ
ຄວາມສາມາດຂອງຄວາມຊົງຈໍານ້ອຍ-ກາງນ້ອຍ-ກາງໃຫຍ່
ຄວາມສະດວກໃນການຂຽນໂປຣແກຣມງ່າຍຫຼາຍພໍ ສົມ ຄວນສະຫຼັບຊັບຊ້ອນກວ່າ
ໂປຣເເກຣມArduino, ການສຶກສາ, ການຄວບຄຸມຝັງການຄວບຄຸມອຸດສະຫະກໍາIoT, ລະບົບທີ່ກ້າວຫນ້າ
ລະບົບນິເວດການສະຫນັບສະຫນູນ Arduino ທີ່ເຂັ້ມແຂງລະບົບນິເວດ MPLABລະບົບນິເວດມືອາຊີບຂະຫນາດໃຫຍ່

ການສະຫລຸບ

ATmega microcontrollers ຍັງເປັນພື້ນຖານທີ່ສໍາຄັນສໍາລັບການພັດທະນາແບບຝັງເນື່ອງຈາກປະສິດທິພາບທີ່ສົມດຸນ, ການໃຊ້ພະລັງງານຕໍ່າ ແລະ ງ່າຍໃນການຂຽນໂປຣແກຣມ. ດ້ວຍອຸປະກອນທີ່ລວມເຂົ້າກັນ, ຄວາມສາມາດ I / O ທີ່ປັບປ່ຽນໄດ້ ແລະ ການສະຫນັບສະຫນູນເຄື່ອງມືທີ່ເຂັ້ມແຂງ, ມັນເຮັດໃຫ້ການອອກແບບລະບົບທີ່ມີປະສິດທິພາບສໍາລັບຫຼາຍໂປຣແກຣມ. ການເຂົ້າໃຈໂຄງສ້າງແລະຂັ້ນຕອນການພັດທະນາຂອງເຂົາເຈົ້າຊ່ວຍໃຫ້ເຈົ້າສ້າງທາງແກ້ໄຂທີ່ເຊື່ອຖືໄດ້ແລະໂຄງການເອເລັກໂຕຣນິກທີ່ໃຊ້ການໄດ້.

ຄໍາຖາມທີ່ຖາມເລື້ອຍໆ [FAQ]

ATmega microcontrollers ສະຫນັບສະຫນູນການພັດທະນາ Arduino ບໍ?

ແມ່ນແລ້ວ. microcontrollers ATmega ຫຼາຍຊະນິດສາມາດເຂົ້າກັນໄດ້ຢ່າງເຕັມທີກັບລະບົບນິເວດ Arduino. ຍົກ ຕົວ ຢ່າງ, ATmega328P ເປັນ processor ຫຼັກ ທີ່ ໃຊ້ ໃນ board Arduino Uno. ທ່ານສາມາດຂຽນໂປຣແກຣມຊິບເຫຼົ່ານີ້ໂດຍໃຊ້ Arduino IDE ເຊິ່ງເຮັດໃຫ້ການຂຽນໂປຣແກຣມງ່າຍຂຶ້ນ, ການອັບໂຫຼດເຟີແວຣ໌ ແລະການລວມເຂົ້າກັບ sensor ຫຼື module.

ພາສາໂປຣແກຣມອັນໃດແດ່ທີ່ສາມາດໃຊ້ໄດ້ສໍາລັບ ATmega microcontrollers?

ATmega microcontrollers ຕາມປົກກະຕິແລ້ວຈະຖືກຕັ້ງໂປຣແກຣມໂດຍໃຊ້ພາສາ Embedded C ແລະ AVR Assembly. Embedded C ເປັນທີ່ນິຍົມຊົມຊອບຢ່າງກວ້າງຂວາງ ເພາະມັນປັບປຸງຄວາມງ່າຍໃນການອ່ານ, ງ່າຍຂຶ້ນໃນການຄວບຄຸມຮາດແວຣ໌ ແລະ ເລັ່ງການພັດທະນາ, ໃນຂະນະທີ່ພາສາ Assembly ໃຫ້ການຄວບຄຸມລະດັບຕໍ່າສໍາລັບໂປຣເເກຣມທີ່ສໍາຄັນຕໍ່ປະສິດທິພາບ.

แรงดันດໍາເນີນການຕາມປົກກະຕິຂອງ ATmega microcontrollers ແມ່ນຫຍັງ?

microcontroller ATmega ສ່ວນຫຼາຍເຮັດວຽກລະຫວ່າງ 1.8V ແລະ 5.5V ຂຶ້ນກັບລຸ້ນອຸປະກອນສະເພາະແລະຄວາມໄວຂອງໂມງ. board ທໍາ ມະ ດາ ຫລາຍ ຢ່າງ, ດັ່ງ ເຊັ່ນ ລະບົບ Arduino, ແລ່ນ ໃນ 5V, ໃນ ຂະນະ ທີ່ ໂປຣເເກຣມ ທີ່ ມີ ພະລັງ ຕ່ໍາ ອາດ ໃຊ້ ການ ດໍາ ເນີນ ງານ 3.3V ເພື່ອ ຫລຸດຜ່ອນ ການ ໃຊ້ ພະລັງ.

ATmega microcontrollers ຈະຖືກຕັ້ງໂປຣແກຣມ ຫຼື flashed ໄດ້ແນວໃດ?

ຕາມປົກກະຕິແລ້ວ microcontroller ATmega ຈະຖືກຕັ້ງໂປຣແກຣມໂດຍໃຊ້ໂປຣແກຣມໃນລະບົບ (ISP). ເປັນໂປຣແກຣມຮາດແວຣ໌; ເຊັ່ນ USBasp, AVRISP ຫຼື USBtinyISP ເຊື່ອມຕໍ່ກັບ SPI pins ຂອງ chip ແລະ upload ແຟ້ມ HEX ທີ່ຮຽບຮ້ອຍໂດຍກົງໃສ່ຄວາມຊົງຈໍາ Flash ໂດຍບໍ່ຕ້ອງຖອດ microcontroller ອອກຈາກຫມວດ.

ATmega microcontrollers ເຫມາະສົມສໍາລັບຜູ້ເລີ່ມຕົ້ນໃນລະບົບຝັງຕົວບໍ?

ແມ່ນແລ້ວ. ATmega microcontrollers ຖືກແນະນໍາຢ່າງກວ້າງຂວາງສໍາລັບຜູ້ເລີ່ມຕົ້ນ ເພາະມັນມີໂຄງສ້າງທີ່ງ່າຍໆ, ເອກະສານທີ່ແຈ່ມແຈ້ງ ແລະ ການສະຫນັບສະຫນູນຈາກຊຸມຊົນທີ່ເຂັ້ມແຂງ. ປະກອບກັບເຄື່ອງມືເຊັ່ນ Arduino ແລະ Microchip Studio, ມັນອະນຸຍາດໃຫ້ເຈົ້າສ້າງໂຄງການໄດ້ໄວໃນຂະນະທີ່ເຂົ້າໃຈພື້ນຖານຂອງໂປຣແກຣມທີ່ຝັງໄວ້.