ประเภท: อิเล็กทรอนิคส์ในทางปฏิบัติ, วงจรไมโครคอนโทรลเลอร์
จำนวนการดู: 21376
ความเห็นเกี่ยวกับบทความ: 0

ประเภทและการจัดเรียงของไมโครคอนโทรลเลอร์ AVR

 


AVR - นี่คือชื่อของตระกูลไมโครคอนโทรลเลอร์ยอดนิยมที่ บริษัท ผลิต Atmel. นอกเหนือจาก ABP ภายใต้แบรนด์นี้แล้ว ไมโครคอนโทรลเลอร์ และสถาปัตยกรรมอื่น ๆ เช่น ARM และ i8051


ไมโครคอนโทรลเลอร์ AVR คืออะไร?

ไมโครคอนโทรลเลอร์ AVR

ไมโครคอนโทรลเลอร์มีสามประเภท:

  1. AVR 8-bit

  2. AVR 32 บิต

  3. AVR xMega

เป็นเวลามากกว่าทศวรรษที่ได้รับความนิยมมากที่สุดคือไมโครคอนโทรลเลอร์ตระกูล 8 บิต แฮมหลายตัวเริ่มศึกษาไมโครคอนโทรลเลอร์จากเขา พวกเขาเกือบทั้งหมดได้เรียนรู้โลกของตัวควบคุมที่ตั้งโปรแกรมได้โดยการทำงานฝีมือที่เรียบง่ายของพวกเขาเช่นไฟกระพริบ LED, เครื่องวัดอุณหภูมิ, นาฬิกา, เช่นเดียวกับระบบอัตโนมัติที่เรียบง่ายเช่นการควบคุมแสงและเครื่องทำความร้อน

ในทางกลับกัน Microcontrollers AVR 8 บิตแบ่งออกเป็นสองตระกูลยอดนิยม:

  • Attiny - ชื่อนี้แสดงให้เห็นว่าน้องคนสุดท้อง (เล็ก - หนุ่มสาวอายุน้อยที่สุด) โดยทั่วไปมี 8 พินหรือมากกว่า ระดับเสียงของหน่วยความจำและฟังก์ชั่นของพวกเขามักจะเจียมเนื้อเจียมตัวมากกว่าในต่อไปนี้;

  • ATMEGA - ไมโครคอนโทรลเลอร์ที่ทันสมัยกว่านี้มีหน่วยความจำหมุดและยูนิตการทำงานที่หลากหลาย

Attiny ของไมโครคอนโทรลเลอร์

ตระกูลย่อยที่ทรงพลังที่สุดของไมโครคอนโทรลเลอร์คือ xMega - ไมโครคอนโทรลเลอร์เหล่านี้มีให้ใช้ในกรณีที่มีพินจำนวนมากจาก 44 ถึง 100 จำเป็นสำหรับโครงการที่มีเซ็นเซอร์และแอคชูเอเตอร์จำนวนมาก นอกจากนี้ความจุหน่วยความจำและความเร็วที่เพิ่มขึ้นช่วยให้คุณได้รับประสิทธิภาพสูง

ไมโครคอนโทรลเลอร์ Atmega

Transcript: Pin (eng. Pin - needle, pin) เป็นเอาท์พุทของไมโครคอนโทรลเลอร์หรือตามที่พวกเขาบอกว่าขา ดังนั้นคำว่า "pinout" - เช่น ข้อมูลเกี่ยวกับวัตถุประสงค์ของแต่ละขา


ไมโครคอนโทรลเลอร์คืออะไรและมีไว้เพื่ออะไร

ไมโครคอนโทรลเลอร์ใช้งานได้เกือบทุกที่! เกือบทุกอุปกรณ์ในศตวรรษที่ 21 ทำงานบนไมโครคอนโทรลเลอร์: เครื่องมือวัด, เครื่องมือ, เครื่องใช้ในครัวเรือน, นาฬิกา, ของเล่น, กล่องดนตรีและโปสการ์ดรวมถึงอีกมากมาย การแจงนับอย่างเดียวจะใช้ข้อความหลายหน้า

ผู้พัฒนาสามารถใช้สัญญาณอะนาล็อกจากด้านล่างของมันไปยังอินพุตของไมโครคอนโทรลเลอร์และจัดการข้อมูลตามค่าของมัน งานนี้ดำเนินการโดยตัวแปลงแอนะล็อกเป็นดิจิทัล (ADC) ฟังก์ชั่นนี้ช่วยให้ผู้ใช้สื่อสารกับไมโครคอนโทรลเลอร์เช่นเดียวกับการรับรู้พารามิเตอร์ต่าง ๆ ของโลกโดยใช้เซ็นเซอร์

AVR ไมโครคอนโทรลเลอร์บนเขียงหั่นขนม

ในไมโครคอนโทรลเลอร์ AVR ทั่วไปตัวอย่างเช่น ATmega328ซึ่งในปี 2560 เป็นหัวใจของแผงวงจรจำนวนมาก Arduinoแต่เกี่ยวกับพวกเขาในภายหลัง ใช้แล้ว 8 ช่อง ADCด้วยความลึกบิต 10 บิต. หมายความว่าคุณสามารถอ่านค่าจากเซ็นเซอร์อะนาล็อก 8 ตัว และเซ็นเซอร์ดิจิตอลนั้นเชื่อมต่อกับเอาท์พุทดิจิตอลซึ่งอาจเห็นได้ชัด อย่างไรก็ตามสัญญาณดิจิตอลสามารถมีได้เพียง 1 (หน่วย) หรือ 0 (ศูนย์) ในขณะที่สัญญาณอะนาล็อกสามารถรับค่าจำนวนอนันต์

สัญญาณดิจิตอลและอนาล็อก

คำอธิบาย:


ความจุ เป็นค่าที่บอกลักษณะคุณภาพความแม่นยำและความไวของอินพุตแบบอะนาล็อก ไม่ได้เสียงที่ชัดเจนมาก แนวทางปฏิบัติเล็กน้อย: ADC ขนาด 10 บิตบันทึกข้อมูลอะนาล็อกจากพอร์ตในหน่วยความจำ 10 บิตกล่าวอีกอย่างหนึ่งว่าไมโครคอนโทรลเลอร์เป็นสัญญาณดิจิตอลที่เปลี่ยนแปลงอย่างราบรื่นซึ่งเป็นค่าตัวเลขตั้งแต่ 0 ถึง 1024

ADC แบบ 12 บิตจะเห็นสัญญาณเดียวกัน แต่มีความแม่นยำสูงกว่าในรูปแบบตั้งแต่ 0 ถึง 4096 ซึ่งหมายความว่าค่าที่วัดได้ของสัญญาณอินพุตนั้นมีความแม่นยำมากกว่าเดิมถึง 4 เท่า เพื่อให้เข้าใจว่ามาจากไหน 1024 และ 4096 เพียงเพิ่ม 2 ถึงพลังของความลึกบิตของ ADC (2 เป็นกำลัง 10 สำหรับ 10 บิตเป็นต้น)

เพื่อควบคุมกำลังโหลดมีช่อง PWM ให้คุณเลือกใช้เช่นเพื่อปรับความสว่างอุณหภูมิหรือความเร็วของเครื่องยนต์ ในคอนโทรลเลอร์ 328 ตัวเดียวกันมี 6 ตัว

โดยทั่วไปแล้วโครงสร้างของไมโครคอนโทรลเลอร์ AVR นั้นจะปรากฎในแผนภาพ:

โครงสร้าง AVR ไมโครคอนโทรลเลอร์

โหนดทั้งหมดมีการเซ็นชื่อ แต่ยังมีบางชื่อที่อาจไม่ชัดเจน ลองดูสัญกรณ์ของพวกเขา

  • ALU - อุปกรณ์ทางคณิตศาสตร์ - ตรรกะ จำเป็นต้องทำการคำนวณ

  • รีจิสเตอร์วัตถุประสงค์ทั่วไป (RON) - การลงทะเบียนที่สามารถรับข้อมูลและเก็บไว้ในขณะที่ไมโครคอนโทรลเลอร์เชื่อมต่อกับพลังงานจะถูกลบหลังจากรีบูต ทำหน้าที่เป็นเซลล์ชั่วคราวสำหรับการดำเนินการข้อมูล

  • ขัดจังหวะ - บางอย่างเช่นเหตุการณ์ที่เกิดขึ้นเนื่องจากอิทธิพลภายในหรือภายนอกที่มีต่อไมโครคอนโทรลเลอร์ - ตัวจับเวลาล้น, การขัดจังหวะภายนอกจากขา MK ฯลฯ

  • JTAG - อินเตอร์เฟสสำหรับการเขียนโปรแกรมในวงจรโดยไม่ต้องถอดไมโครคอนโทรลเลอร์ออกจากบอร์ด

  • แฟลช, RAM, EEPROM - ประเภทของหน่วยความจำ - โปรแกรมข้อมูลการทำงานชั่วคราวการจัดเก็บระยะยาวที่เป็นอิสระจากแหล่งจ่ายไฟไปยังไมโครคอนโทรลเลอร์ตามคำสั่งในชื่อ

  • ตัวจับเวลาและตัวนับ - โหนดที่สำคัญที่สุดในไมโครคอนโทรลเลอร์ในบางรุ่นจำนวนของมันอาจมีมากถึงหนึ่งโหล พวกเขาต้องการเพื่อรายงานจำนวนการวัดตามลำดับช่วงเวลาและตัวนับเพิ่มมูลค่าสำหรับเหตุการณ์ใด ๆ งานและโหมดของพวกเขาขึ้นอยู่กับโปรแกรมอย่างไรก็ตามการกระทำเหล่านี้จะดำเนินการในฮาร์ดแวร์เช่น ขนานกับข้อความหลักของโปรแกรมพวกเขาสามารถทำให้เกิดการขัดจังหวะ (โดยตัวจับเวลาล้นเป็นตัวเลือก) ในทุกขั้นตอนของการเรียกใช้โค้ดในบรรทัดใด ๆ ของมัน

  • A / D (อนาล็อก / ดิจิตอล) - ADC เราได้อธิบายวัตถุประสงค์ของมันไว้แล้ว

  • WatchDogTime (ตัวจับเวลา Watchdog) - RC oscillator ที่เป็นอิสระจากไมโครคอนโทรลเลอร์และแม้กระทั่งตัวกำเนิดสัญญาณนาฬิกาซึ่งนับระยะเวลาหนึ่งและสร้างสัญญาณรีเซ็ต MK หากใช้งานได้และจะกลับมาทำงานหากอยู่ในโหมดสลีป (ประหยัดพลังงาน) การดำเนินการสามารถปิดใช้งานได้โดยการตั้งค่าบิต WDTE เป็น 0


เอาต์พุตของไมโครคอนโทรลเลอร์ค่อนข้างอ่อนแอซึ่งหมายความว่ากระแสที่ผ่านมามักจะสูงถึง 20-40 มิลลิแอมป์ซึ่งเพียงพอที่จะส่องไฟ LED และไฟแสดงสถานะ LED สำหรับการโหลดที่มีประสิทธิภาพยิ่งขึ้นจำเป็นต้องใช้เครื่องขยายเสียงกระแสหรือแรงดันเช่นทรานซิสเตอร์เดียวกัน


คุณต้องเริ่มเรียนไมโครคอนโทรลเลอร์อย่างไร?

ก่อนอื่นคุณต้องซื้อไมโครคอนโทรลเลอร์ก่อน บทบาทของไมโครคอนโทรลเลอร์ตัวแรกสามารถเป็น Attiny2313, Attiny85, Atmega328 และอื่น ๆ มันจะดีกว่าที่จะเลือกรูปแบบที่อธิบายไว้ในบทเรียนที่คุณจะมีส่วนร่วม

Attiny2313

สิ่งต่อไปที่คุณต้องการคือ โปรแกรมเมอร์. มันเป็นสิ่งจำเป็นในการดาวน์โหลดเฟิร์มแวร์ไปยังหน่วยความจำของ MK ก็ถือว่าถูกที่สุดและเป็นที่นิยมที่สุด USBASP.

โปรแกรมเมอร์

แพงกว่านิดหน่อย แต่ก็ไม่ธรรมดาเหมือนกันโปรแกรมเมอร์ AVRISP MKIIซึ่งคุณสามารถทำเองได้ - จากกระดานปกติ Arduino

โปรแกรมเมอร์ AVRISP MKII

ตัวเลือกอื่นคือการกระพริบผ่าน USB UART อะแดปเตอร์ซึ่งมักจะทำกับหนึ่งในตัวแปลง: FT232RL, CH340, PL2303 และ CP2102

ตัวแปลง USB-UART

ในบางกรณีคอนโทรลเลอร์ไมโครคอนโทรลเลอร์ AVR พร้อมกับการสนับสนุนฮาร์ดแวร์ USB จะใช้สำหรับตัวแปลงดังกล่าวมีรุ่นดังกล่าวไม่มากเกินไป นี่คือบางส่วน:

  • ATmega8U2;

  • ATmega16U2;

  • ATmega32U2

AVR ไมโครคอนโทรลเลอร์ที่ใช้ฮาร์ดแวร์ USB

เพียงหนึ่ง“ แต่” - bootloader ของ UART จะต้องโหลดลงในหน่วยความจำของไมโครคอนโทรลเลอร์ก่อน แน่นอนว่าสำหรับเรื่องนี้คุณยังต้องมีโปรแกรมเมอร์สำหรับไมโครคอนโทรลเลอร์ AVR


ที่น่าสนใจ: Bootloader - นี่เป็นโปรแกรมปกติสำหรับไมโครคอนโทรลเลอร์ แต่ด้วยงานที่ผิดปกติ - หลังจากการเปิดตัว (เชื่อมต่อกับพลังงาน) มันคาดว่าในบางครั้งที่เฟิร์มแวร์สามารถโหลดเข้าไปได้ ข้อดีของวิธีนี้คือคุณสามารถแฟลชอะแดปเตอร์ USB-UART และมีราคาถูกมาก ข้อเสียคือเฟิร์มแวร์ใช้เวลาโหลดนาน

สำหรับการทำงาน UART (RS-232) อินเตอร์เฟสในตัวควบคุมไมโครคอนโทรลเลอร์ AVR จัดสรร UDR แบบลงทะเบียนทั้งหมด (การลงทะเบียนข้อมูล UART). UCSRA (การตั้งค่าบิตตัวรับส่งสัญญาณ RX, TX), UCSRB และUCSRС - ชุดของรีจิสเตอร์ที่รับผิดชอบการตั้งค่าอินเตอร์เฟสทั้งหมด


ฉันจะเขียนโปรแกรมได้อย่างไร

นอกจากนี้โปรแกรมเมอร์สำหรับการเขียนและดาวน์โหลดโปรแกรมที่คุณต้องการ IDE - สภาพแวดล้อมการพัฒนา แน่นอนคุณสามารถเขียนโค้ดในแผ่นจดบันทึกผ่านคอมไพเลอร์ ฯลฯ ทำไมจึงจำเป็นเมื่อมีตัวเลือกสำเร็จรูปยอดเยี่ยม บางทีหนึ่งในผู้ที่ทรงพลังที่สุดคือ IAR แต่ได้รับค่าตอบแทน

Atmel IDE อย่างเป็นทางการคือ AVR Studio ซึ่งเปลี่ยนชื่อเป็นสตูดิโอ Atmel ในเวอร์ชัน 6 รองรับไมโครคอนโทรลเลอร์ AVR ทั้งหมด (8, 32, xMega) ตรวจจับคำสั่งโดยอัตโนมัติและช่วยในการป้อนเน้นไวยากรณ์ที่ถูกต้องและอื่น ๆ อีกมากมายด้วยความช่วยเหลือของมันคุณสามารถแฟลช MK

ที่พบมากที่สุดคือ C AVR ดังนั้นหาบทเรียนเกี่ยวกับมันมีตัวเลือกภาษารัสเซียมากมายและหนึ่งในนั้นคือ Khartov V.Ya “ ไมโครคอนโทรลเลอร์ AVR การประชุมเชิงปฏิบัติการสำหรับผู้เริ่มต้น "

การเขียนโปรแกรมไมโครคอนโทรลเลอร์

วิธีที่ง่ายที่สุดในการเรียนรู้ AVR

ซื้อหรือทำเอง บอร์ด Arduino. โครงการ arduino ออกแบบมาโดยเฉพาะเพื่อการศึกษา มีหลายสิบบอร์ดที่มีรูปร่างและจำนวนผู้ติดต่อที่หลากหลาย สิ่งที่สำคัญที่สุดใน arduino คือคุณไม่ได้ซื้อแค่ไมโครคอนโทรลเลอร์เท่านั้น แต่ยังมีบอร์ด debug ที่เต็มเปี่ยมไปยังแผงวงจรพิมพ์ textolite คุณภาพสูงปกคลุมด้วยหน้ากากและส่วนประกอบ SMD ที่ติดตั้ง

ที่พบมากที่สุดคือ Arduino Nano และ Arduino UNO ซึ่งเหมือนกันเป็นหลักยกเว้นว่านาโนมีขนาดเล็กกว่า Uno ประมาณ 3 เท่า

Arduino uno

ข้อเท็จจริงบางประการ:

  • Arduino สามารถตั้งโปรแกรมในภาษามาตรฐาน -“ C AVR”;

  • การเดินสายของเขาเอง

  • สภาพแวดล้อมการพัฒนามาตรฐาน - Arduino IDE;

  • ในการเชื่อมต่อกับคอมพิวเตอร์คุณเพียงแค่ต้องเชื่อมต่อสายเคเบิล USB เข้ากับช่องเสียบ micro-USB บนบอร์ดนาโน Arduino ติดตั้งไดรเวอร์ (ส่วนใหญ่จะเกิดขึ้นโดยอัตโนมัติยกเว้นเมื่อตัวแปลงบน CH340 ฉันไม่มีไดรเวอร์ใน 8.1 8.1 ฉันต้องดาวน์โหลด แต่มัน ใช้เวลาไม่นาน) จากนั้นคุณสามารถอัปโหลด "ภาพร่าง" ของคุณ

  • “ ภาพร่าง” เป็นชื่อของโปรแกรมสำหรับ arduino

ทดลองกับ Arduino UNO

ผลการวิจัย

ไมโครคอนโทรลเลอร์จะช่วยได้มากในการฝึกวิทยุสมัครเล่นของคุณซึ่งจะช่วยให้คุณค้นพบโลกของอิเล็คทรอนิคส์ดิจิตอลออกแบบเครื่องมือวัดของคุณเองและอุปกรณ์อัตโนมัติในบ้าน

ดูได้ที่ bgv.electricianexp.com:

  • ไมโครคอนโทรลเลอร์ PIC สำหรับผู้เริ่มต้น
  • การเขียนโปรแกรมไมโครคอนโทรลเลอร์สำหรับผู้เริ่มต้น
  • การเชื่อมต่อและการเขียนโปรแกรม Arduino สำหรับผู้เริ่มต้น
  • ไมโครคอนโทรลเลอร์ที่สามารถตั้งโปรแกรมได้ใน JavaScript: ตัวเลือกใดตัวหนึ่ง ...
  • ไมโครคอนโทรลเลอร์คืออะไร - วัตถุประสงค์อุปกรณ์ซอฟต์แวร์

  •