การออกแบบฟังก์ชันตัวจับเวลา/ตัวนับใหม่ตาม MCU

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

"

ผู้เขียน: วอร์เรน มิลเลอร์

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

โหมดตัวจับเวลาและตัวนับ: ตั้งแต่แบบง่ายไปจนถึงขั้นสูง

ตัวจับเวลาและตัวนับเริ่มต้นด้วยโหมดการทำงานง่ายๆ เพื่อแทนที่ลูปโปรแกรมทั่วไปที่ใช้ในการนับเหตุการณ์ภายนอก จับเวลาการทำงานภายในและภายนอก และรวบรวมสถิติต่างๆ เกี่ยวกับการทำงานของ MCU หลัก คุณสมบัติใน สูงสุด MAXQ612 แสดง MCU โหมดการนับที่คุ้นเคยที่สุดบางส่วน และตัวอย่างบางส่วนแสดงในรูปที่ 1 ด้านล่าง ตารางที่ด้านล่างของภาพแสดงโหมดการทำงานอัตโนมัติทั่วไปสามโหมดสำหรับตัวจับเวลา B, ตัวจับเวลา/ตัวนับ MAXQ612 โมดูล: โหลดอัตโนมัติ จับภาพ และ pp/นับถอยหลัง ภาพขวาบนแสดงแผนภาพบล็อกของโหมดโหลดซ้ำอัตโนมัติ อินพุตนาฬิกาของ TImer B อาจมาจากพรีสเกลเลอร์นาฬิกาที่แบ่งนาฬิการะบบด้วยการตั้งค่าที่แตกต่างกันแปดแบบ หรือจากพินภายนอก บิตควบคุม TRB เปิดใช้งานหรือปิดใช้งานการทำงานของ Timer B Timer Value Register (TVB) จะนับถอยหลังเมื่อตัวจับเวลาถึงค่าที่จัดเก็บไว้ใน Timer B Reload Register (TBR) และทำให้เกิดการขัดจังหวะและรีเซ็ต TVB ให้เป็นศูนย์ นี่เป็นวิธีง่ายๆ ในการสร้างเวลาแฝงโดยไม่ต้องใช้วงจร CPU อันมีค่าเพื่อสร้างเวลาแฝง


รูปที่ 1: โหมดตัวนับ/ตัวจับเวลาตัวอย่าง Maxim MAXQ612 MCU (มารยาทของแม็กซิม)

บล็อกไดอะแกรมที่มุมขวาบนของรูปที่ 1 แสดงการทำงานของโหมดจับภาพ ในโหมดนี้ ฟังก์ชันนาฬิกาล่วงหน้าและเปิด/ปิดใช้งานจะเหมือนกับในโหมดโหลดซ้ำอัตโนมัติ การลงทะเบียน TBV จะนับขึ้นและรีเซ็ตเป็นศูนย์เมื่อโอเวอร์โฟลว์และอินเตอร์รัปต์เพิ่มเติม ที่ขอบด้านตกของพิน TBB ภายนอก ค่าในรีจิสเตอร์ TBV จะถูกโหลดลงในรีจิสเตอร์แคปเจอร์ TBR และสามารถสร้างอินเตอร์รัปต์ EXFB ได้ โหมดนี้สามารถใช้เพื่อนับจำนวนนาฬิการะหว่างขอบที่เพิ่มขึ้นของสัญญาณภายนอกเพื่อกำหนดความถี่ของสัญญาณหรือความล่าช้าของสัญญาณ ดังนั้น ตัวจับเวลาทำให้ CPU เป็นอิสระจากการดำเนินการนับตามรอบอย่างเข้มข้น ดังนั้นจึงสามารถทำสิ่งที่จำเป็นต้องทำได้อย่างมีประสิทธิภาพมากขึ้น

MAXQ612 รองรับการทำงานของตัวจับเวลา/ตัวนับทั่วไปอื่นๆ เช่น การโหลดขึ้น/ลงอัตโนมัติ และพินภายนอกเพื่อควบคุมทิศทางของตัวนับ โหมดนี้มีประโยชน์สำหรับการถอดรหัสสัญญาณมอดูเลตความกว้างพัลส์ต่างๆ เช่น สัญญาณที่ใช้ในเซ็นเซอร์ระบบเครื่องกลไฟฟ้า โหมดเอาต์พุตสัญญาณนาฬิกาสามารถใช้เพื่อสร้างสัญญาณนาฬิกาเอาต์พุตอย่างง่ายโดยใช้นาฬิการะบบ พรีสเกลเลอร์ และจำนวนเทอร์มินัลของตัวจับเวลา B สุดท้าย โหมดเอาต์พุต Pulse Width Modulation (PWM) สามารถสร้างสัญญาณชิดขอบสำหรับการใช้งาน PWM ทั่วไป เช่น ที่ใช้ในการควบคุมมอเตอร์

ฟังก์ชันตัวนับ/ตัวจับเวลา PWM สำหรับการควบคุมมอเตอร์

ฟังก์ชันตัวจับเวลา/ตัวนับที่ล้ำสมัยบางอย่างใช้สำหรับแอปพลิเคชัน PWM ควบคุมมอเตอร์ ตัวนับเหล่านี้ใช้ฟังก์ชัน PWM ที่เกี่ยวข้องกับมอเตอร์มากที่สุดเท่าที่จะเป็นไปได้โดยใช้ฮาร์ดแวร์เฉพาะเพื่อเพิ่มพื้นที่ว่างในโปรเซสเซอร์สำหรับฟังก์ชันระดับที่สูงขึ้น การทำงานพื้นฐานของตัวนับ/ตัวจับเวลา PWM ของการควบคุมมอเตอร์เป็นเรื่องปกติในการใช้งานของผู้ผลิตส่วนใหญ่ และตัวอย่างที่ดีมีให้โดยตัวจับเวลา NXP LPC 17xx PWM สำหรับ สามเฟส มอเตอร์ AC และ DC แอพพลิเคชั่นควบคุมได้รับการปรับให้เหมาะสม ดังที่แสดงในรูปที่ 2 การทำงานของโมดูล PWM ควบคุมมอเตอร์อาจดูค่อนข้างซับซ้อนจนกว่าคุณจะทราบว่ามีช่องสัญญาณจับเวลา PWM พื้นฐานสามชุด ด้านซ้าย ตรงกลาง และด้านขวา การมีสามช่องสัญญาณทำให้สามารถใช้ตัวจับเวลา/ตัวนับตัวเดียวเพื่อควบคุมมอเตอร์สามเฟสได้ ทำให้การใช้งานมีประสิทธิภาพมาก แต่ละแชนเนลจะควบคุมเอาต์พุตคู่หนึ่ง ซึ่งจะควบคุมบางสิ่งที่ไม่ได้อยู่ในชิป เช่น ชุดของขดลวดในมอเตอร์ แต่ละช่องมีรีจิสเตอร์ตัวจับเวลา/ตัวนับ (TC) ที่เพิ่มขึ้นตามนาฬิกาตัวประมวลผล (โหมดตัวจับเวลา) หรือขาอินพุต (โหมดตัวนับ)


รูปที่ 2: ตัวจับเวลา/ตัวนับ NXP LPC 17xx PWM (ได้รับความอนุเคราะห์จาก NXP)

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

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

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


รูปที่ 3: NXP LPC17xx Motor Control PWM Timer/Counter Example การกำหนดค่าเอาต์พุต (ได้รับความอนุเคราะห์จาก NXP)

ตัวจับเวลา PWM สำหรับควบคุมมอเตอร์ยังมีแหล่งสัญญาณขัดจังหวะหลายแหล่งเพื่อแจ้งให้โปรเซสเซอร์ทราบว่าจำเป็นต้องมีฟังก์ชันการควบคุมมอเตอร์ในระดับที่สูงขึ้น การขัดจังหวะเหล่านี้ถูกจัดระเบียบตามแชนเนลและสามารถระบุได้เมื่อ TC ตรงกับรีจิสเตอร์การจับคู่ เมื่อ TC ตรงกับรีจิสเตอร์จำกัด เมื่อแชนเนลบันทึกค่าของ TC ลงในบันทึกการลงทะเบียน หรือเมื่ออินพุตยกเลิกทำงานอยู่ LPC17xx ยังมีอุปกรณ์ต่อพ่วงที่รองรับหลายตัวเพื่อลดความซับซ้อนของฟังก์ชันการควบคุมขั้นสูง รวมถึงอินเทอร์เฟซตัวเข้ารหัสพื้นที่สี่เหลี่ยมจัตุรัส โมดูล PWM เพิ่มเติม ตัวจับเวลาขัดจังหวะ และตัวจับเวลาเฝ้าระวัง ฟังก์ชันจับเวลาเฉพาะที่หลากหลายนี้แสดงให้เห็นว่าฟังก์ชันจับเวลามีความสำคัญต่อการออกแบบที่ใช้ MCU มากน้อยเพียงใด

ฟังก์ชันบอกเวลาพิเศษอื่นๆ

ใน MCU สมัยใหม่จำนวนมาก ฟังก์ชันการจับเวลาและการนับเริ่มมีความเฉพาะเจาะจงมากขึ้น เนื่องจากผู้ผลิตกำหนดเป้าหมายไปยังพื้นที่การใช้งานเฉพาะ ตัวอย่างเช่น ตระกูล KineTIs K10 ของ Freescale เช่น MK10DN512ZVLQ10 มีอุปกรณ์ต่อพ่วงจับเวลาและการนับที่หลากหลายพร้อมฟังก์ชันเฉพาะ อุปกรณ์ต่อพ่วงเหล่านี้ประกอบด้วย: บล็อกการหน่วงเวลาที่ตั้งโปรแกรมได้ซึ่งควบคุมการทำงานของ ADC และ DAC ช่วยให้โปรเซสเซอร์ไม่ต้องจัดการกระบวนการระดับต่ำเหล่านี้ บล็อกจับเวลาแบบยืดหยุ่นที่ให้ช่องจับเวลา การนับ การจับอินพุต และเอาต์พุตเปรียบเทียบหลายช่องเพื่อรองรับการจัดการและควบคุมไฟและมอเตอร์ ตัวจับเวลาการขัดจังหวะเป็นระยะที่สามารถจัดการการขัดจังหวะอุปกรณ์ต่อพ่วงและการถ่ายโอน DMA โดยอัตโนมัติ ตัวจับเวลาพลังงานต่ำมากที่ทำงานแม้ในขณะที่ MCU อยู่ในสถานะพลังงานต่ำสุดเพื่อให้เหตุการณ์ "ปลุก" เป็นระยะอย่างง่าย นาฬิกาตามเวลาจริง รักษาเวลาได้อย่างแม่นยำ และสามารถใช้พลังงานจากแบตเตอรี่ได้แม้ว่า MCU จะปิดเครื่องทั้งหมด เพื่อให้ง่ายต่อการเข้าถึงการทำงานของระบบและข้อมูลอายุการใช้งาน

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

ชุดพัฒนาช่วยเร่งเวลาในการออกสู่ตลาด

เนื่องจาก MCU เป็นแบบเฉพาะแอปพลิเคชันมากขึ้น ผู้ผลิตจึงสร้างชุดพัฒนาและการออกแบบอ้างอิงที่เน้นแอปพลิเคชันมากขึ้น แอปพลิเคชันควบคุมมอเตอร์อาจเป็นหนึ่งในตัวอย่างที่พบบ่อยที่สุดของชุดแอปพลิเคชันเฉพาะ ตัวอย่างเช่น Renesas นำเสนอชุดพัฒนาการควบคุมมอเตอร์แบบสมบูรณ์ YMCPRPRX62T ที่แสดงในรูปที่ 4 ซึ่งรวมถึงมอเตอร์ตัวอย่างด้วย ชุดนี้มาพร้อมกับซอฟต์แวร์ทั้งหมดและการออกแบบตัวอย่างที่คุณต้องการเพื่อประเมิน Renesas RX62T MCU ในการออกแบบการควบคุมมอเตอร์หลายแบบ GUI สาธิตที่โฮสต์บนพีซีจะแสดงความเร็วมอเตอร์ แรงดัน และกระแส ในขณะที่ให้ผู้ใช้ปรับพารามิเตอร์และอัลกอริทึมเพื่อดูผลลัพธ์ต่างๆ ได้โดยตรง เพื่อช่วยปรับแต่งการทำงานของมอเตอร์เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดในการออกแบบเฉพาะ ชุดประเมินการควบคุมมอเตอร์ที่มีฟังก์ชันคล้ายกับ Renesas RX62T ก็มีจำหน่ายจากผู้ผลิตรายอื่นเช่นกัน ค้นหาชุดอุปกรณ์ที่ตรงกับแอปพลิเคชันเป้าหมายและสภาพแวดล้อมการพัฒนาของคุณมากที่สุด เพื่อช่วยเร่งการออกแบบการควบคุมมอเตอร์ครั้งต่อไปของคุณโดยใช้ประโยชน์จากงานจำนวนมากที่ "รวม" โดยผู้ผลิต

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

ผู้เขียน: วอร์เรน มิลเลอร์

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

โหมดตัวจับเวลาและตัวนับ: ตั้งแต่แบบง่ายไปจนถึงขั้นสูง

ตัวจับเวลาและตัวนับเริ่มต้นด้วยโหมดการทำงานง่ายๆ เพื่อแทนที่ลูปโปรแกรมทั่วไปที่ใช้ในการนับเหตุการณ์ภายนอก จับเวลาการทำงานภายในและภายนอก และรวบรวมสถิติต่างๆ เกี่ยวกับการทำงานของ MCU หลัก คุณลักษณะต่างๆ ใน ​​Maxim MAXQ612 แสดงให้เห็นถึง MCU ในโหมดนับที่คุ้นเคยมากที่สุดบางส่วน และตัวอย่างบางส่วนแสดงในรูปที่ 1 ด้านล่าง ตารางที่ด้านล่างของภาพแสดงโหมดการทำงานอิสระทั่วไปสามโหมดสำหรับ Timer B, โมดูลตัวจับเวลา/ตัวนับ MAXQ612: โหลดซ้ำอัตโนมัติ จับภาพ และ pp/นับถอยหลัง ภาพขวาบนแสดงบล็อกไดอะแกรมของโหมดโหลดซ้ำอัตโนมัติ อินพุตนาฬิกาสำหรับ TImer B สามารถมาจากตัวปรับสัญญาณนาฬิกาล่วงหน้าที่แบ่งนาฬิการะบบด้วยการตั้งค่าที่แตกต่างกันแปดแบบ หรือจากพินภายนอก บิตควบคุม TRB เปิดหรือปิดการทำงานของ Timer B Timer Value Register (TVB) จะนับขึ้นเมื่อตัวจับเวลาถึงค่าที่จัดเก็บไว้ใน Timer B Reload Register (TBR) และสร้างการขัดจังหวะและรีเซ็ต TVB เป็นศูนย์ ซึ่งเป็นวิธีที่ง่ายในการสร้างเวลาแฝงโดยไม่ต้องใช้วงจร CPU ที่มีค่าเพื่อสร้างเวลาแฝง


รูปที่ 1: โหมดตัวนับ/ตัวจับเวลาตัวอย่าง Maxim MAXQ612 MCU (มารยาทของแม็กซิม)

บล็อกไดอะแกรมที่มุมขวาบนของรูปที่ 1 แสดงการทำงานของโหมดจับภาพ ในโหมดนี้ ฟังก์ชันนาฬิกาล่วงหน้าและเปิด/ปิดใช้งานจะเหมือนกับในโหมดโหลดซ้ำอัตโนมัติ การลงทะเบียน TBV จะนับขึ้นและรีเซ็ตเป็นศูนย์เมื่อโอเวอร์โฟลว์และอินเตอร์รัปต์เพิ่มเติม ที่ขอบด้านตกของพิน TBB ภายนอก ค่าในรีจิสเตอร์ TBV จะถูกโหลดลงในรีจิสเตอร์แคปเจอร์ TBR และสามารถสร้างอินเตอร์รัปต์ EXFB ได้ โหมดนี้สามารถใช้เพื่อนับจำนวนนาฬิการะหว่างขอบที่เพิ่มขึ้นของสัญญาณภายนอกเพื่อกำหนดความถี่ของสัญญาณหรือความล่าช้าของสัญญาณ ดังนั้น ตัวจับเวลาทำให้ CPU เป็นอิสระจากการดำเนินการนับตามรอบอย่างเข้มข้น ดังนั้นจึงสามารถทำสิ่งที่จำเป็นต้องทำได้อย่างมีประสิทธิภาพมากขึ้น

MAXQ612 รองรับการทำงานของตัวจับเวลา/ตัวนับทั่วไปอื่นๆ เช่น การโหลดขึ้น/ลงอัตโนมัติ และพินภายนอกเพื่อควบคุมทิศทางของตัวนับ โหมดนี้มีประโยชน์สำหรับการถอดรหัสสัญญาณมอดูเลตความกว้างพัลส์ต่างๆ เช่น สัญญาณที่ใช้ในเซ็นเซอร์ระบบเครื่องกลไฟฟ้า โหมดเอาต์พุตสัญญาณนาฬิกาสามารถใช้เพื่อสร้างสัญญาณนาฬิกาเอาต์พุตอย่างง่ายโดยใช้นาฬิการะบบ พรีสเกลเลอร์ และจำนวนเทอร์มินัลของตัวจับเวลา B สุดท้าย โหมดเอาต์พุต Pulse Width Modulation (PWM) สามารถสร้างสัญญาณชิดขอบสำหรับการใช้งาน PWM ทั่วไป เช่น ที่ใช้ในการควบคุมมอเตอร์

ฟังก์ชันตัวนับ/ตัวจับเวลา PWM สำหรับการควบคุมมอเตอร์

ฟังก์ชันตัวจับเวลา/ตัวนับที่ล้ำสมัยบางอย่างใช้สำหรับแอปพลิเคชัน PWM ควบคุมมอเตอร์ ตัวนับเหล่านี้ใช้ฟังก์ชัน PWM ที่เกี่ยวข้องกับมอเตอร์มากที่สุดเท่าที่จะเป็นไปได้โดยใช้ฮาร์ดแวร์เฉพาะเพื่อเพิ่มพื้นที่ว่างในโปรเซสเซอร์สำหรับฟังก์ชันระดับที่สูงขึ้น การทำงานพื้นฐานของตัวนับ/ตัวจับเวลา PWM ของการควบคุมมอเตอร์เป็นเรื่องปกติสำหรับการใช้งานของผู้ผลิตส่วนใหญ่ และตัวอย่างที่ดีคือตัวจับเวลา NXP LPC 17xx PWM สำหรับมอเตอร์ไฟฟ้ากระแสสลับและกระแสตรงแบบสามเฟส แอปพลิเคชันควบคุมได้รับการปรับปรุงให้เหมาะสม ดังที่แสดงในรูปที่ 2 การทำงานของโมดูล PWM ควบคุมมอเตอร์อาจดูค่อนข้างซับซ้อนจนกว่าคุณจะทราบว่ามีช่องสัญญาณจับเวลา PWM พื้นฐานสามชุด ด้านซ้าย ตรงกลาง และด้านขวา การมีสามช่องสัญญาณทำให้สามารถใช้ตัวจับเวลา/ตัวนับตัวเดียวเพื่อควบคุมมอเตอร์สามเฟสได้ ทำให้การใช้งานมีประสิทธิภาพมาก แต่ละแชนเนลจะควบคุมเอาต์พุตคู่หนึ่ง ซึ่งจะควบคุมบางสิ่งที่ไม่ได้อยู่ในชิป เช่น ชุดของขดลวดในมอเตอร์ แต่ละช่องมีรีจิสเตอร์ตัวจับเวลา/ตัวนับ (TC) ที่เพิ่มขึ้นตามนาฬิกาตัวประมวลผล (โหมดตัวจับเวลา) หรือขาอินพุต (โหมดตัวนับ)


รูปที่ 2: ตัวจับเวลา/ตัวนับ NXP LPC 17xx PWM (ได้รับความอนุเคราะห์จาก NXP)

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

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

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


รูปที่ 3: NXP LPC17xx Motor Control PWM Timer/Counter Example การกำหนดค่าเอาต์พุต (ได้รับความอนุเคราะห์จาก NXP)

ตัวจับเวลา PWM สำหรับควบคุมมอเตอร์ยังมีแหล่งสัญญาณขัดจังหวะหลายแหล่งเพื่อแจ้งให้โปรเซสเซอร์ทราบว่าจำเป็นต้องมีฟังก์ชันการควบคุมมอเตอร์ในระดับที่สูงขึ้น การขัดจังหวะเหล่านี้ถูกจัดระเบียบตามแชนเนลและสามารถระบุได้เมื่อ TC ตรงกับรีจิสเตอร์การจับคู่ เมื่อ TC ตรงกับรีจิสเตอร์จำกัด เมื่อแชนเนลบันทึกค่าของ TC ลงในบันทึกการลงทะเบียน หรือเมื่ออินพุตยกเลิกทำงานอยู่ LPC17xx ยังมีอุปกรณ์ต่อพ่วงที่รองรับหลายตัวเพื่อลดความซับซ้อนของฟังก์ชันการควบคุมขั้นสูง รวมถึงอินเทอร์เฟซตัวเข้ารหัสพื้นที่สี่เหลี่ยมจัตุรัส โมดูล PWM เพิ่มเติม ตัวจับเวลาขัดจังหวะ และตัวจับเวลาเฝ้าระวัง ฟังก์ชันจับเวลาเฉพาะที่หลากหลายนี้แสดงให้เห็นว่าฟังก์ชันจับเวลามีความสำคัญต่อการออกแบบที่ใช้ MCU มากน้อยเพียงใด

ฟังก์ชันบอกเวลาพิเศษอื่นๆ

ใน MCU สมัยใหม่จำนวนมาก ฟังก์ชันการจับเวลาและการนับเริ่มมีความเฉพาะเจาะจงมากขึ้น เนื่องจากผู้ผลิตกำหนดเป้าหมายไปยังพื้นที่การใช้งานเฉพาะ ตัวอย่างเช่น ตระกูล KineTIs K10 ของ Freescale เช่น MK10DN512ZVLQ10 มีอุปกรณ์ต่อพ่วงจับเวลาและการนับที่หลากหลายพร้อมฟังก์ชันเฉพาะ อุปกรณ์ต่อพ่วงเหล่านี้ประกอบด้วย: บล็อกการหน่วงเวลาที่ตั้งโปรแกรมได้ซึ่งควบคุมการทำงานของ ADC และ DAC ช่วยให้โปรเซสเซอร์ไม่ต้องจัดการกระบวนการระดับต่ำเหล่านี้ บล็อกจับเวลาแบบยืดหยุ่นที่ให้ช่องจับเวลา การนับ การจับอินพุต และเอาต์พุตเปรียบเทียบหลายช่องเพื่อรองรับการจัดการและควบคุมไฟและมอเตอร์ ตัวจับเวลาการขัดจังหวะเป็นระยะที่สามารถจัดการการขัดจังหวะอุปกรณ์ต่อพ่วงและการถ่ายโอน DMA โดยอัตโนมัติ ตัวจับเวลาพลังงานต่ำมากที่ทำงานแม้ในขณะที่ MCU อยู่ในสถานะพลังงานต่ำสุดเพื่อให้เหตุการณ์ "ปลุก" เป็นระยะอย่างง่าย นาฬิกาตามเวลาจริง รักษาเวลาได้อย่างแม่นยำ และสามารถใช้พลังงานจากแบตเตอรี่ได้แม้ว่า MCU จะปิดเครื่องทั้งหมด เพื่อให้ง่ายต่อการเข้าถึงการทำงานของระบบและข้อมูลอายุการใช้งาน

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

ชุดพัฒนาช่วยเร่งเวลาในการออกสู่ตลาด

เนื่องจาก MCU เป็นแบบเฉพาะแอปพลิเคชันมากขึ้น ผู้ผลิตจึงสร้างชุดพัฒนาและการออกแบบอ้างอิงที่เน้นแอปพลิเคชันมากขึ้น แอปพลิเคชันควบคุมมอเตอร์อาจเป็นหนึ่งในตัวอย่างที่พบบ่อยที่สุดของชุดแอปพลิเคชันเฉพาะ ตัวอย่างเช่น Renesas นำเสนอชุดพัฒนาการควบคุมมอเตอร์แบบสมบูรณ์ YMCPRPRX62T ที่แสดงในรูปที่ 4 ซึ่งรวมถึงมอเตอร์ตัวอย่างด้วย ชุดนี้มาพร้อมกับซอฟต์แวร์ทั้งหมดและการออกแบบตัวอย่างที่คุณต้องการเพื่อประเมิน Renesas RX62T MCU ในการออกแบบการควบคุมมอเตอร์หลายแบบ GUI สาธิตที่โฮสต์บนพีซีจะแสดงความเร็วมอเตอร์ แรงดัน และกระแส ในขณะที่ให้ผู้ใช้ปรับพารามิเตอร์และอัลกอริทึมเพื่อดูผลลัพธ์ต่างๆ ได้โดยตรง เพื่อช่วยปรับแต่งการทำงานของมอเตอร์เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดในการออกแบบเฉพาะ ชุดประเมินการควบคุมมอเตอร์ที่มีฟังก์ชันคล้ายกับ Renesas RX62T ก็มีจำหน่ายจากผู้ผลิตรายอื่นเช่นกัน ค้นหาชุดอุปกรณ์ที่ตรงกับแอปพลิเคชันเป้าหมายและสภาพแวดล้อมการพัฒนาของคุณมากที่สุด เพื่อช่วยเร่งการออกแบบการควบคุมมอเตอร์ครั้งต่อไปของคุณโดยใช้ประโยชน์จากงานจำนวนมากที่ "รวม" โดยผู้ผลิต

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

ดูเพิ่มเติม : โมดูล IGBT | จอแสดงผล LCD | ชิ้นส่วนอิเล็กทรอนิกส์