ATmega32 - ไมโครคอนโทรลเลอร์ AVR 8 บิต
ไมโครคอนโทรลเลอร์ AVR ใช้สถาปัตยกรรม RISC ขั้นสูง ATmega32 เป็นไมโครคอนโทรลเลอร์ CMOS 8 บิตที่ใช้พลังงานต่ำซึ่งใช้สถาปัตยกรรม RISC ที่ปรับปรุงโดย AVR AVR สามารถดำเนินการได้ 1 ล้านคำสั่งต่อวินาทีหากรอบความถี่เป็น 1MHz
รูปถ่าย DIP 40 พินของ ATmega32
ฟีเจอร์หลัก:
- การลงทะเบียนวัตถุประสงค์การทำงานทั่วไป 32 x 8
- 32K ไบต์ของหน่วยความจำโปรแกรมแฟลชที่ตั้งโปรแกรมได้เองในระบบ
- SRAM ภายใน 2K ไบต์
- EEPROM 1024 ไบต์
- มีให้เลือกใน 40 pin DIP, 44 lead QTFP, 44-pad QFN / MLF
- 32 บรรทัด I / O ที่ตั้งโปรแกรมได้
- 8 ช่อง 10 บิต ADC
- ตัวจับเวลา / ตัวนับ 8 บิตสองตัวพร้อมตัวตั้งค่าล่วงหน้าแยกต่างหากและโหมดเปรียบเทียบ
- ตัวจับเวลา / ตัวนับ 16 บิตหนึ่งตัวพร้อมพรีสเกลเลอร์แยกโหมดเปรียบเทียบและโหมดจับภาพ
- 4 ช่องสัญญาณ PWM
- ในการเขียนโปรแกรมระบบโดยโปรแกรมบูตบนชิป
- นาฬิกาจับเวลาสุนัขที่ตั้งโปรแกรมได้พร้อมออสซิลเลเตอร์บนชิปแยกต่างหาก
- โปรแกรม USART แบบอนุกรม
- อินเทอร์เฟซแบบอนุกรมของ Master / Slave SPI
คุณสมบัติพิเศษของไมโครคอนโทรลเลอร์:
- โหมดสลีปหกโหมด: ไม่ได้ใช้งาน, ลดเสียงรบกวน ADC, ประหยัดพลังงาน, ปิดเครื่อง, สแตนด์บายและสแตนด์บายแบบขยาย
- ออสซิลเลเตอร์ RC ที่ปรับเทียบภายใน
- แหล่งขัดจังหวะภายนอกและภายใน
- เปิดการรีเซ็ตและการตรวจจับสีน้ำตาลที่ตั้งโปรแกรมได้
DIP 40 พินของ ATmega32
รีจิสเตอร์ทั้ง 32 ตัวเชื่อมต่อโดยตรงกับ Arithmetic Logic Unit (ALU) ทำให้สามารถเข้าถึงรีจิสเตอร์อิสระสองตัวในคำสั่งเดียวที่ดำเนินการในหนึ่งรอบนาฬิกา
การปิดเครื่องจะบันทึกเนื้อหารีจิสเตอร์ แต่จะหยุดออสซิลเลเตอร์ ฟังก์ชันชิปอื่น ๆ ทั้งหมดจะถูกปิดใช้งานจนกว่าจะมีการขัดจังหวะภายนอกครั้งถัดไป ตัวจับเวลาแบบอะซิงโครนัสช่วยให้ผู้ใช้รักษาตัวจับเวลาตามโหมดประหยัดพลังงานในขณะที่อุปกรณ์ที่เหลืออยู่ในโหมดสลีป
โหมดลดสัญญาณรบกวน ADC จะหยุด CPU และโมดูล I / O ทั้งหมดยกเว้น ADC และตัวจับเวลาแบบอะซิงโครนัส ในโหมดสแตนด์บายยกเว้นคริสตัลออสซิลเลเตอร์อุปกรณ์ที่เหลืออยู่ในโหมดสลีป ทั้งออสซิลเลเตอร์หลักและตัวจับเวลาแบบอะซิงโครนัสยังคงทำงานในโหมดสแตนด์บายเพิ่มเติม
ATmega32 เป็นไมโครคอนโทรลเลอร์ที่ทรงพลังเนื่องจากมีแฟลชที่ตั้งโปรแกรมได้เองในระบบบนชิปเสาหินมอบโซลูชันที่ยืดหยุ่นและคุ้มค่าสำหรับแอปพลิเคชันการควบคุมแบบฝังจำนวนมาก
TQFP / MLF 44 แผ่น
คำอธิบายพิน:
VCC: แหล่งจ่ายแรงดันไฟฟ้าดิจิตอล
GND: พื้น
พอร์ต A (PA7-PA0): พอร์ตนี้ทำหน้าที่เป็นอินพุตแบบอะนาล็อกไปยังตัวแปลง A / D นอกจากนี้ยังทำหน้าที่เป็นพอร์ต I / O แบบสองทิศทาง 8 บิตหากไม่ได้ใช้ตัวแปลง A / D
พอร์ต B (PB7-PB0) และพอร์ต D (PD7-PD0): เป็นพอร์ต I / O แบบสองทิศทาง 8 บิต บัฟเฟอร์เอาต์พุตมีลักษณะของไดรฟ์แบบสมมาตรที่มีทั้งความสามารถในการซิงค์และแหล่งจ่ายสูง ในฐานะอินพุตสิ่งเหล่านี้จะถูกดึงให้ต่ำมากหากเปิดใช้งานตัวต้านทานแบบดึงขึ้น นอกจากนี้ยังทำหน้าที่คุณสมบัติพิเศษต่างๆของ ATmega32
พอร์ต C (PC7-PC0): เป็นพอร์ต I / O แบบสองทิศทาง 8 บิต หากเปิดใช้งานอินเทอร์เฟซ JTAG ตัวต้านทานแบบดึงขึ้นบนพิน PC5 (TDI), PC3 (TMS) และ PC2 (TCK) จะเปิดใช้งาน
การเชื่อมต่อ JTAG โดยใช้พอร์ต C ของ ATmega32
รีเซ็ต: มันเป็นอินพุต
XTAL1: เป็นอินพุตไปยังแอมพลิฟายเออร์ออสซิลเลเตอร์กลับด้านและอินพุตไปยังวงจรปฏิบัติการนาฬิกาภายใน
XTAL2: เป็นเอาต์พุตจากแอมพลิฟายเออร์ออสซิลเลเตอร์กลับด้าน
AVCC: เป็นพินแรงดันไฟฟ้าสำหรับตัวแปลงพอร์ต A และ A / D ควรเชื่อมต่อกับ VCC
พื้นที่: AREF คือพินอ้างอิงอะนาล็อกสำหรับตัวแปลง A / D
ATmega32 ความทรงจำ:
มีหน่วยความจำข้อมูลพื้นที่หน่วยความจำหลักสองช่องและพื้นที่หน่วยความจำโปรแกรม นอกจากนี้ยังมีหน่วยความจำ EEPROM สำหรับจัดเก็บข้อมูล
ในหน่วยความจำโปรแกรมแฟลชโปรแกรมระบบ:
ATmega32 มี 32Kbytes บนชิปในหน่วยความจำแฟลชที่ตั้งโปรแกรมระบบใหม่ได้สำหรับการจัดเก็บโปรแกรม Flash ถูกจัดเป็น 16k X 16 และหน่วยความจำแบ่งออกเป็นสองส่วนส่วนโปรแกรม Boot และส่วนโปรแกรมแอปพลิเคชัน
แผนภาพวงจรโปรแกรมเมอร์ ISP
หน่วยความจำข้อมูล SRAM:
ไฟล์ Register, หน่วยความจำ I / O และ SRAM ข้อมูลภายในถูกกำหนดโดยตำแหน่งหน่วยความจำข้อมูลที่ต่ำกว่า 2144 ตำแหน่ง 96 ตำแหน่งแรกจะอยู่ที่ไฟล์ Register และหน่วยความจำ I / O และข้อมูลภายใน SRAM จะถูกกำหนดโดยตำแหน่งถัดไป 2048 ทางตรงทางอ้อมที่มีการกระจัดทางอ้อมทางอ้อมที่มีการลดก่อนและในทางตรงกับการลดหลังเป็นโหมดการกำหนดแอดเดรสที่แตกต่างกัน 5 โหมดสำหรับการครอบคลุมหน่วยความจำข้อมูล การลงทะเบียนสำหรับวัตถุประสงค์ทั่วไป 32 รายการ, การลงทะเบียน I / O 64 รายการและ SRAM ข้อมูลภายใน 2048 ไบต์สามารถเข้าถึงได้โดยใช้โหมดการกำหนดแอดเดรสเหล่านี้
แผนภาพบล็อกของ ATmega32
หน่วยความจำข้อมูล EEPROM:
ประกอบด้วยหน่วยความจำ EEPROM ข้อมูล 1024 ไบต์ สามารถเข้าถึงเป็นพื้นที่ข้อมูลแยกต่างหากซึ่งสามารถอ่านและเขียนไบต์เดี่ยวได้
หน่วยความจำ I / O:
I / Os และอุปกรณ์ต่อพ่วงทั้งหมดถูกวางไว้ในช่องว่าง I / O ตำแหน่ง I / O เข้าถึงได้โดยคำสั่ง IN และ OUT โดยถ่ายโอนข้อมูลระหว่างรีจิสเตอร์วัตถุประสงค์ทั่วไป 32 รายการและช่องว่าง I / O การลงทะเบียน I / O ด้วยที่อยู่ 00-1F สามารถเข้าถึงได้โดยตรงโดยใช้คำสั่ง SBI และ CBI
ATmega8
บทนำ
เป็นไมโครคอนโทรลเลอร์ 8 บิต CMOS ที่สร้างขึ้นจากตระกูล AVR (พัฒนาโดย Atmel Corporation ในปี 2539) และสร้างขึ้นบนสถาปัตยกรรม RSIC (Reduced Instruction Set Computer) ข้อได้เปรียบพื้นฐานคือไม่มีตัวสะสมใด ๆ และผลของการดำเนินการใด ๆ สามารถเก็บไว้ในรีจิสเตอร์ใด ๆ ที่กำหนดโดยคำสั่ง
สถาปัตยกรรม
สถาปัตยกรรม
หน่วยความจำ
ประกอบด้วยหน่วยความจำแฟลช 8KB, SRAM 1KB และ EEPROM 512 ไบต์ แฟลช 8K แบ่งออกเป็น 2 ส่วน - ส่วนล่างใช้เป็นส่วนแฟลชสำหรับบูตและส่วนบนใช้เป็นส่วนแฟลชแอปพลิเคชัน SRAM ประกอบด้วย 1K ไบต์พร้อมกับรีจิสเตอร์วัตถุประสงค์ทั่วไป 1120 ไบต์และรีจิสเตอร์ I / O ตำแหน่งที่อยู่ 32 ด้านล่างใช้สำหรับการลงทะเบียน 8 บิตสำหรับวัตถุประสงค์ทั่วไป 32 รายการ ที่อยู่ 64 ถัดไปใช้สำหรับการลงทะเบียน I / O การลงทะเบียนทั้งหมดเชื่อมต่อโดยตรงกับ ALU EEPROM ใช้เพื่อจัดเก็บข้อมูลที่ผู้ใช้กำหนด
พอร์ตอินพุต / เอาต์พุต
ประกอบด้วยสาย I / O 23 เส้นพร้อมพอร์ต I / O 3 พอร์ตชื่อ B, C และ D พอร์ต B ประกอบด้วย I / O 8 เส้นพอร์ต C ประกอบด้วยสาย I / O 7 เส้นและพอร์ต D ประกอบด้วย 8 I / O เส้น
รีจิสเตอร์ที่สอดคล้องกับ portX (B, C หรือ D) คือ:
DDRX : ลงทะเบียนทิศทางข้อมูลพอร์ต X
PORTX : ลงทะเบียนข้อมูลพอร์ต X
PINX : ลงทะเบียนอินพุตพอร์ต X
ตัวจับเวลาและตัวนับ
ประกอบด้วยตัวจับเวลา 3 ตัวพร้อมโหมดเทียบเคียง สองคนคือ 8 บิตในขณะที่อันที่สามคือ 16 บิต
ออสซิลเลเตอร์
ประกอบด้วยการรีเซ็ตภายในและออสซิลเลเตอร์ซึ่งทำให้ไม่จำเป็นต้องใช้อินพุตภายนอกใด ๆ RC oscillator ภายในสามารถสร้างนาฬิกาภายในซึ่งสามารถทำงานที่ความถี่ 1MHz, 2MHz, 4MHz หรือ 8MHz ตามที่ตั้งโปรแกรมไว้ นอกจากนี้ยังรองรับออสซิลเลเตอร์ภายนอกที่มีความถี่สูงสุด 16MHz
การสื่อสาร
มีทั้งแผนการถ่ายโอนข้อมูลแบบซิงโครนัสและอะซิงโครนัสผ่าน USART (Universal Synchronous และ Asynchronous Receiver Transmitter) เช่นการสื่อสารกับโมเด็มและอุปกรณ์อนุกรมอื่น ๆ นอกจากนี้ยังรองรับ SPI (Serial Peripheral Interface) ที่ใช้สำหรับการสื่อสารระหว่างอุปกรณ์โดยใช้วิธี master-slave รองรับการสื่อสารอีกประเภทหนึ่งคือ TWI (Two wire Interface) อนุญาตให้มีการสับเปลี่ยนระหว่างอุปกรณ์ทั้งสองโดยใช้สายไฟ 2 เส้นพร้อมกับการเชื่อมต่อสายดินทั่วไป
นอกจากนี้ยังมีโมดูลเปรียบเทียบที่รวมอยู่ในชิปเพื่อเปรียบเทียบระหว่างแรงดันไฟฟ้าสองตัวที่เชื่อมต่อกับอินพุตสองตัวของตัวเปรียบเทียบอนาล็อกผ่านชิปภายนอก
นอกจากนี้ยังมี ADC 6 ช่องซึ่ง 4 ช่องมีความแม่นยำ 10 บิตและ 2 มีความแม่นยำ 8 บิต
ลงทะเบียนสถานะ : ประกอบด้วยข้อมูลเกี่ยวกับชุดคำสั่งเลขคณิตที่ดำเนินการในปัจจุบัน
ATmega Pin Diagram :
ATmega Pin Diagram
คุณสมบัติที่สำคัญอย่างหนึ่งของ ATmega8 คือยกเว้น 5 พินพินอื่น ๆ ทั้งหมดรองรับสองสัญญาณ
- พิน 23,24,25,26,27,28 และ 1 ใช้สำหรับพอร์ต C ในขณะที่พิน 9,10,14,15,16,17,18,19 ใช้สำหรับพอร์ต B และพิน 2,3,4 5,6,11,12 ใช้สำหรับพอร์ต D
- พิน 1 ยังเป็นพินรีเซ็ตและการใช้สัญญาณระดับต่ำเป็นเวลานานกว่าความยาวพัลส์ขั้นต่ำจะทำให้เกิดการรีเซ็ต
- พิน 2 และ 3 ยังใช้สำหรับการสื่อสารแบบอนุกรมสำหรับ USART
- พิน 4 และ 5 ใช้เป็นอินเทอร์รัปต์ภายนอก หนึ่งในนั้นจะทริกเกอร์เมื่อมีการตั้งค่าสถานะอินเตอร์รัปต์บิตของการลงทะเบียนสถานะและอีกรายการหนึ่งจะทริกเกอร์ตราบเท่าที่เงื่อนไขการขัดจังหวะมีชัย
- พิน 9 และ 10 ใช้เป็นออสซิลเลเตอร์ภายนอกเช่นเดียวกับออสซิลเลเตอร์ตัวนับตัวจับเวลาที่คริสตัลเชื่อมต่อโดยตรงระหว่างพิน Pin 10 ใช้สำหรับคริสตัลออสซิลเลเตอร์หรือคริสตัลออสซิลเลเตอร์ความถี่ต่ำ หากใช้ RC oscillator ที่ปรับเทียบแล้วภายในเป็นแหล่งสัญญาณนาฬิกาและเปิดใช้งานตัวจับเวลาแบบอะซิงโครนัสพินเหล่านี้สามารถใช้เป็นพินออสซิลเลเตอร์จับเวลาได้
- Pin 19 ใช้เป็นเอาต์พุต Master Clock อินพุตนาฬิกาทาสสำหรับช่อง SPI
- Pin 18 ใช้เป็นอินพุตนาฬิกาหลักเอาต์พุตนาฬิกาทาส
- Pin 17 ใช้เป็นเอาต์พุตข้อมูลหลักอินพุตข้อมูลทาสสำหรับช่อง SPI ใช้เป็นอินพุตเมื่อเปิดใช้งานโดยทาสและเป็นแบบสองทิศทางเมื่อเปิดใช้งานโดยต้นแบบ พินนี้ยังสามารถใช้เป็นเอาต์พุตเปรียบเทียบเอาต์พุตการจับคู่ซึ่งทำหน้าที่เป็นเอาต์พุตภายนอกสำหรับตัวจับเวลา / ตัวนับเปรียบเทียบการจับคู่
- Pin16 ใช้เป็นอินพุตเลือกทาส นอกจากนี้ยังสามารถใช้เป็นตัวจับเวลา / ตัวนับ 1 เปรียบเทียบการจับคู่โดยกำหนดค่าพิน PB2 เป็นเอาต์พุต
- Pin15 สามารถใช้เป็นเอาต์พุตภายนอกสำหรับตัวจับเวลา / ตัวนับเปรียบเทียบการจับคู่ A
- หมุด 23 ถึง 28 ใช้สำหรับช่อง ADC Pin 27 ยังสามารถใช้เป็นนาฬิกาอินเทอร์เฟซแบบอนุกรมและพิน 28 สามารถใช้เป็นข้อมูลอินเทอร์เฟซแบบอนุกรม
- พิน 13 และ 12 ใช้เป็นอินพุตตัวเปรียบเทียบอนาล็อก
- พิน 11 และ 6 ใช้เป็นแหล่งจับเวลา / ตัวนับ
ไมโครคอนโทรลเลอร์โหมดสลีป
ไมโครคอนโทรลเลอร์ทำงานในโหมดสลีป 6 โหมด
- โหมดไม่ได้ใช้งาน: หยุดการทำงานของ CPU แต่อนุญาตให้ใช้ SPI, USART, ADC, TWI, Timer / Counter และ Watchdog และขัดขวางระบบ ทำได้โดยการตั้งค่าแฟล็กทะเบียน MCU SM0 ถึง SM2 บิตเป็นศูนย์
- ADC โหมดลดเสียงรบกวน : หยุด CPU แต่อนุญาตให้ทำงานของ ADC, การขัดจังหวะภายนอก, ตัวจับเวลา / ตัวนับ 2 และสุนัขเฝ้าบ้าน
- โหมดปิดเครื่อง : เปิดใช้งานอินเทอร์รัปต์ภายนอกอินเทอร์เฟซแบบอนุกรม 2 สายจ้องจับผิดขณะปิดใช้งานออสซิลเลเตอร์ภายนอก หยุดนาฬิกาที่สร้างขึ้นทั้งหมด
- โหมดประหยัดพลังงาน : ใช้เมื่อ Timer / Counter ทำการตอกบัตรแบบอะซิงโครนัส มันหยุดนาฬิกาทั้งหมดยกเว้น clkASY
- โหมดสแตนด์บาย : ในโหมดนี้ออสซิลเลเตอร์ได้รับอนุญาตให้ทำงานหยุดการทำงานอื่น ๆ ทั้งหมด
แอปพลิเคชั่นที่เกี่ยวข้องกับ Atmega8
ไฟ LED กะพริบ
LEd Schematic กะพริบ
โปรแกรมนี้เขียนโดยใช้ภาษา C และคอมไพล์เป็นไฟล์. c เป็นครั้งแรก เครื่องมือซอฟต์แวร์ ATMEL จะแปลงไฟล์นี้เป็นไฟล์อ็อบเจ็กต์ ELF แบบไบนารี จากนั้นจะถูกแปลงเป็นไฟล์ฐานสิบหกอีกครั้ง จากนั้นไฟล์ฐานสิบหกจะถูกส่งไปยังไมโครคอนโทรลเลอร์โดยใช้โปรแกรม AVR dude
เครดิตภาพ:
- รูปถ่าย DIP 40 พินของ ATmega32 โดย วิกิมีเดีย
- แผนผังวงจรโปรแกรมเมอร์ ISP โดย วงจร
- สถาปัตยกรรมโดย วงจร
- ATmega Pin Diagram โดย atmega32-avr