Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
เอกสารประกอบการเรียนการสอน• วิชา: 618352 ไมโครโปรเซสเซอรและการเชื่อมตอ• เรื่องที่ 12: * การแปลงสัญญาณ A/D และ D/A• เว็บไซตรายวิชา: http://sites.google.com/site/618352• อาจารย ดร.โสภณ ผูมีจรรยา• ภาควิชาวิศวกรรมไฟฟา • คณะวิศวกรรมศาสตรและเทคโนโลยีอุตสาหกรรม• มหาวิทยาลัยศิลปากร
1
หัวขอบรรยาย
2
• การแปลงสัญญาณแอนะลอกเปนดิจิตอล (A/D)(Analog to Digital conversion)
• การแปลงสัญญาณดิจิตอลเปนแอนะลอก (D/A)(Digital to Analog Conversion)
A/D D/A
3
การแปลงสัญญาณ A/D และ D/A
4
การแปลงสัญญาณแอนะลอกเปนดิจิตอล (A/D) การแปลงสัญญาณอนาลอกเปนสัญญาณดิจิตอล หรือที่มักเรียกวา ADC
หรือ A/D ใชสําหรับการแปลงสัญญาณอินพุทที่เปนอนาลอกใหเปนดิจิตอลหรือเลขฐานสอง เทคนิคการแปลงสัญญาณของ A/D มีหลายแบบ ซึ่งแตละแบบก็มีขอดีขอเสียแตกตางกันไป ไดแก
1. การแปลงสัญญาณแบบแฟลช 2. การแปลงสัญญาณแบบความชันเดี่ยว3. การแปลงสัญญาณแบบประมาณคาหลายครั้ง
1. วงจรแปลงแบบแฟลช ( Flash Convertor )การแปลงสัญญาณอนาลอกเปนสัญญาณดิจิตอลแบบนี้วา การแปลงแบบขนาน
5 6
Analog comparator 1-bit A-to-D
7
จากรูป มีตัวตานทานตออนุกรมกันอยูในวงจรแบงแรงดัน ที่ตกครอมตัวเปรียบเทียบแตละตัวแรงดันอินพุทสูงสุดจะเปน “ 1 ” หรือ “ 0 ” ซึ่งเปนระดับสัญญาณลอจิกของวงจรดิจิตอล
เมื่อไมมีแรงดันอินพุทเขามา ที่ขาออกของตัวเปรียบเทียบแตละตัวจะเปนลอจิก “ 0 ” เมื่อเพิ่มแรงดันอินพุทเรื่อย ๆ ที่เอาทพุทของตัวเปรียบเทียบแตละตัวจะเปนลอจิก “ 1 ” และแรงดันอินพุทมากกวาแรงดันอางอิงแตละคาที่ถูกตั้งไว โดยวงจรแบงแรงดันเนตเวอรคของดิจิตอลเกทถูกใชในการเรียงลําดับของสัญญาณของตัวเปรียบเทียบใหอยูในรหัสเลขฐานสอง ซึ่งเปนการสรางที่เอาทพุทของตัวแปลงสัญญาณ
ตัวอยางที่ยกมาใหดูในรูป เปน A/D ขนาด 2 บิต ซึ่งไมสามารถนําไปใชงานจริงได เนื่องจากความละเอียดตํ่าเกินไป แตเปนแนวที่สําคัญในการนํามาสราง A/D แบบแฟลชไดเปนอยางดี จะเห็นไดวาใชตัวเปรียบเทียบ 2n - 1 ตัว ในการแสดงความละเอียด จากตัวอยางเปนตัวแปลงสัญญาณ ขนาด 2 บิต จึงใชตัวเปรียบเทียบ 22 - 1 = 3 ตัว 8
ถาเปนตัวแปลงสัญญาณขนาด 4 บิต จะใชตัวเปรียบเทียบ 24 - 1 = 15 ตัว เชนเดียวกัน ถาเปนตัวแปลงสัญญาณขนาด 8 บิต จะใชตัวเปรียบเทียบ 28 - 1 = 255 ตัว จะเห็นไดวาขนาดของตัวแปลงสัญญาณมากเทาไหรจํานวนตัวเปรียบเทียบจะมากขึ้นเปนทวีคูณ และความละเอียดจะเพิ่มมากขึ้น แตความซับซอนในการสรางก็สูงขึ้น และยังทําใหตัวอุปกรณมีขนาดใหญขึ้นดวย สิ่งเหลานี้จึงเปนขอเสียของ A/D แบบแฟลช
ขอดีของ A/D แบบแฟลช คือ ความเร็ว เพราะวาสัญญาณอนาลอกทางขาเขาถูกจายใหตัวเปรียบเทียบแตละตัวพรอมกัน ชวงเวลาในการเปลี่ยน ( Convertion time ) จึงมีคาเทากับเวลาหนวง ในตัวเปรียบเทียบแตละตัวและวงจรเกทในวงจรเทานั้น ซึ่งใชเวลาไมกี่ไมโครวินาที
การนํา A/D แบบแฟลชไปใชงานจึงควรเปนงานที่ตองการความเร็วในการแปลงสัญญาณสูงๆ แตไมตองการความละเอียดมากนัก
9
ตัวอยางวงจร A/D Flash Convertor แบบ 2 bit
เอาตพุตที่ไดเมื่อ Vin = 5 V
10
ตัวอยางวงจร A/D Flash Convertor แบบ 3 bit
11
ตัวอยางเอาตพุตของวงจร A/D Flash Convertor แบบ 3 bit
12
2. วงจรแปลงความชันเดี่ยว ( Single Slope Convertion ) วงจรแปลงความชันเดี่ยว หรือ เรียกวา แบบแรมปเดี่ยว ( Single ramp
A/D ) แสดงดังรูป
13
จากแผนผังการทํางานของวงจรแบบความชันเดี่ยว เริ่มตนที่การรีเซตวงจรนับ (Counter) และแรงดันแรมปอยูที่ 0 แรงดันเอาทพุทของตัวเปรียบเทียบที่จุดเริ่มตนเปน 0 ดังนั้น จึงไมมีสัญญาณนาฬิกาจายใหกับวงจรนับ
เมื่อแรงดันอินพุทถูกจายใหกับตัวแปลงสัญญาณอินพุทนอนอินเวอรติง (non-inverting) จะมีแรงดันเกินกวาแรงดันที่อินพุทอินเวอรติง (inverting ) ดังนั้นที่ขาออกของตัวเปรียบเทียบจึงเปนลอจิก “1” สัญญาณลอจิก “1” จะไดเอนาเบิลใหแอนดเกททํางานยอมใหพัลสของสัญญาณนาฬิกาผานไปยังวงจรนับเลขฐานสองใหทํางาน
ในขณะเดียวกันวงจรไทมมิง (timing) จะขับใหวงจรแรมปเพิ่มขึ้น ซึ่งทํา ใหแรงดันอางอิงที่ขาอินเวอรติงของตัวเปรียบเทียบเพิ่มขึ้นอยางรวดเร็ว เมื่อแรงดันแรมปอางอิงเริ่มมากกวาแรงดันอินพุทแรงดันเอาทพุทของตัวเปรียบเทียบจะตกลงมาเปน “0 ” อีกครั้ง พัลสของสัญญาณนาฬิกาจึงหยุดเนื่องจากไมสามารถผานวงจรแอนดเกทได และวงจรไทมมิงสงสัญญาณไปยังวงจรนับเลขฐานสองใหคาง ( latch ) คาที่นับไวในขณะนั้น เมื่อทํา การรีเซตตัวนับอีกครั้งก็จะเกิดการทํา งานตอเนื่องกันไป
14
เมื่อแรงดันแรมปอางอิงมีคาเทากับแรงดันที่อินพุท วงจรนับจะถูกกระตุนใหนับเลขฐานสอง ในขณะเดียวกันคาที่นับ ไดจึงเปนสัญญาณดิจิตอลของสัญญาณอนาลอกทางดานเอาทพุท จะสังเกตไดวาความเร็วของสัญญาณนาฬิกา อัตราการเพิ่มขึ้น ในลักษณะแรงดันแรมปจะตองมีความสัมพันธกันอยางเที่ยงตรง เพื่อใหวงจรนับทําหนาที่ไดอยางถูกตอง
คาเวลาที่ตองการเปลี่ยนขึ้นอยูกับสัญญาณอนาลอกทางดานอินพุท เพราะวงจรนับและวงจรแรมปอางอิงทั้งคูเริ่มตนจากศูนยที่ทุก ๆ การรีเซทจึงใชเวลาคอนขางนานที่จะทําใหแรงดันอางอิงเทากับแรงดันอินพุท ในทางตรงกันขามถาแรงดันอินพุทนอย ชวงเวลาที่แรงดันแรมปอางอิงเพิ่มขึ้นจนเทากับแรงดันอินพุท จะใชเวลานอยกวากรณีที่แรงดันอินพุทมีคามาก
15
แรงดันแรมปอางอิงสามารถเปลี่ยนแปลงเพิ่มขึ้นจนเทากับแรงดันอินพุทไดเร็วกวา 1 โวลตตอ 1 / 1000 วินาที เชน ถาแรงดันอินพุทเปน 2 โวลต ถูกจายใหกับวงจรในรูป วงจรจะใช 2 * 1โวลต / วินาที ซึ่งเทากับ 2 มิลลิวินาที สําหรับแรงดันแรมปที่มีคาเพิ่มมากขึ้นจนมีระดับแรงดันเทากับแรงดันอินพุท การนับเลขฐานสองจะเกิดหลังจาก 2 มิลลิวินาทีไปแลว ความเร็วในชวงนี้ขึ้นอยูกับสัญญาณนาฬิกา ถาความเร็วของสัญญาณนาฬิกามากจะทํา ใหจังหวะการนับเร็วขึ้น
เนื่องจากการทํางานของสัญญาณนาฬิกาขึ้นอยูกับแรงดันแรมป จึงเปนลักษณะของการแปลงแบบความชันเดี่ยวที่มีสัญญาณเอาทพุทออกมาเปนเลขฐานสองโดยตรง
ขอเสียของการแปลงแบบความชันเดี่ยว คือ การทํางานที่ไมเสถียรภาพเมื่อใชงานไปนานๆโดยไมมีการประสานจังหวะ ( synchronization ) ระหวางวงจรผลิตสัญญาณนาฬิกาและวงจรสรางสัญญาณแรมป ทุกๆการเลื่อนของความเร็วของสัญญาณนาฬิกาหรือแรงดันแรมปเปนเหตุใหเกิดความผิดพลาดขึ้นที่รหัสทางเอาทพุท จึงเปนสาเหตุสําคัญที่ทําให การแปลงความชันเดี่ยวไมนําไปใชงานที่ตองการความถูกตองสูงๆ
16
3. วงจรแปลงแบบประมาณคาหลายคา ( Successive-approximation converter )
เทคนิคแบบการประมาณคาหลายคาหลายครั้งมีชื่อยอวา SA ซึ่งยอมาจากคําวา Successive Approximation
17
เปนเทคนิคที่นาเลือกใชเพราะมีราคาถูก มีความละเอียดพอสมควรและเปนตัวแปลงสัญญาณที่มีความเร็วสูงใชงานไดดีและมีประสิทธิภาพสูง เพราะไมเกิดการออสซิลเลตแตกระบวนการของเทคนิคแบบนี้จะเขาใจไดยากกวาเทคนิคแบบวงจรนับที่กลาวมาแลว
หัวใจของการประมาณคาหลายครั้ง คือ อุปกรณที่เรียกที่เรียกวา Successive Approximation Register (SAR) ซึ่งเปนอุปกรณที่มีจุดประสงคตางจากวงจรนับทั่วไป
วัฏจักรการแปลงผันเริ่มตนเมื่อสัญญาณอนาลอกถูกปอนใหกับ ตัวแปลงสัญญาณและพัลสของการแปลงเริ่มขึ้น (start convertion pluse : SOC ) ถูกปอนใหกับตัว SAR พัลสสัญญาณนาฬิกาลูกแรกที่ปอนใหกับตัว SAR จะ “on“ เอาทพุทของบิทนับสูงสุด ดังนั้น จึงเปนการปรับใหเอาทพุทของ D / A เปน 50 เปอรเซ็นตของแรงดันเอาทพุทของอินเวอรเตอร ตัว SAR ตรวจสอบไปยังเอาทพุทของวงจรเปรียบเทียบวา เอาทพุทของ D / A มีคามากกวาหรือนอยกวาสัญญาณอนาลอกทางอินพุท ถาแรงดัน D / A มีคามากกวาวงจรเปรียบเทียบจะยังคงสภาวะไมทํางาน
18
ดังนั้น ตัว SAR จะยังคงใหบิทนัยสําคัญสูงสุดทํางานอยู เรียกสภาวะนี้วา “1“ ซึ่งสภาวะ “0“ หรือ “1“ จะกระทําภายในพัลลของสัญญาณนาฬิกาเพียงลูกเดียวบนสัญญาณนาฬิกาถัดไป ตัว SAR จะทํางานบิทนัยสําคัญอันดับสองและทําการตรวจสอบผลลัพธที่ไดอีกครั้งหนึ่งจากวงจรเปรียบเทียบ ถาสัญญาณจาก D/A ครั้งใหมมีคามากกวาแรงดันอินพุท เอาทพุทของวงจรเปรียบเทียบจะยังคงไมมี ดังนั้น ตัว SAR จะไมทํางานบิทนัยสําคัญสูงสุดอันดับสอง เรียกวา “ 0 “ แตถาสัญญาณจาก D / A มีคานอยกวาวงจรเปรียบเทียบจะทํางานและตัว SAR จะปลอยใหบิทนัยสําคัญสูงสุดอันดับสองทํางาน
ตัว SAR จะพิจารณาแตละบิตดวยวิธีเดียวกันจนครบทุกบิต เนื่องจากหนึ่งบิตหาคาไดภายในหนึ่งพัลส ฉะนั้น A/D ขนาด 8 บิต จึงใชสัญญาณนาฬิกาเพียง 8 พัลล ก็สามารถแปลงไดจนครบ เมื่อบิตนัยสําคัญตํ่าสุดถูกพิจารณาแลว ตัว SAR จะสงสัญญาณการแปลง ( End of Converter : EOC ) ไปทําการคางผลลัพทที่ไดซึ่งเปนเลขฐานสองทางเอาทพุทไว
19
การแปลงสัญญาณดิจิตอลเปนแอนะลอก (D/A) การแปลงสัญญาณดิจิตอลเปนแอนะลอก หรือที่มักเรียกวา DAC หรือ D/A
มีวิธีการดังตอไปนี้1. Binary Weighted DAC
- เปนการใชวงจรขยายผลรวม2. R/2R Ladder
- เปนการใชคาความตานทาน R โอหม วางสลับกับคาความตานทาน 2R โอหม
20
1. Binary Weighted DAC
กรณีลอจิก 0 ทุกบิต
21
วงจรขยายกลับเฟสโดยใชออปแอมป
Vin
Vout = -(RF/Ri ) Vin
22
กรณีลอจิก 1 ทุกบิต
Binary Weighted DAC
23
Binary Weighted DAC
24
2. R/2R Ladder โครงขายแบบ R-2R (R-2R network) มีโครงสรางของวงจรแสดงดังรูป
25
ตัวอยางการคํานวณที่ 1จงหาคา Vout ของวงจร D/A แบบ R-2R ladder เมื่อสัญญาณดิจิตอลที่อินพุตเปน
1000 และแรงดันไฟฟาอินพุตของวงจรเปน V
อินพุต A,B,C จะเปนลอจิก 0 ดังนั้น ตัวตานทาน 2R ที่ตอกับอินพุท A,B,C นี้ตอกับ Ground ของวงจร ความตานทานรวมที่จุด X จึงมีคาเปน R ดังนั้น เมื่อยุบวงจรจากรูป 3(ก) เปนรูป 3(ข) จึงกลายเปนวงจรแบงแรงดันได Vout = V/2
26
ตัวอยางการคํานวณที่ 2จงหา Vout ของวงจร D/A แบบ R-2R ladder เมื่อสัญญาณดิจิตอลนี้ อินพุตเปน 0100
จากรูป (ก) หาคาความตานทานรวมที่จุด Y เทียบกับ Ground ลดรูปของวงจรลงไดในรูป (ข) ใชทฤษฎีเทเวนินหาคา Eth โดยปลดโหลดของวงจรออกไป โดย Eth ของวงจรที่จุด X ได Eth = V/2 ลัดวงจรแบตเตอรี่ V ความตานทานรวมมองจากจุด X เทียบกับ Ground ได R (ความตานทาน 2R//2R) คาความตานทาน R คือคา Rth จากวงจรในรูป (ข) เขียนลดรูปวงจรใหมไดดังรูป (ค)
(ก)(ข) (ค)
27 28
29 30
• มีอินพุตอะนาลอก 4 ชอง• มีเอาตพุตอะนาลอก 1 ชอง• สามารถตอพวงกันไดสูงสุด 8 ตัว• ทํางานโดยใชแหลงจายไฟชุดเดียว• ทํางานที่แรงดัน 2.5 V ถึง 6 V• กินกระแสขณะอยูในสภาวะสแตนบายดต่ํา• ติดตอกับไมโครคอนโทรลเลอรผานระบบบัส I2C• อัตราการสุมขอมูลขึ้นอยูกับความเร็วของสัญญาณนาฬิกา บนบัส I2C
การแปลง ADC หรือ DAC ผานระบบบัส I2C ดวยไอซี PCF8591
31
เอกสารอางอิง• http://www.thaieasyelec.com/• http://www.arduitronics.com/• http://www.myarduino.net/• http://www.arduino.org/• https://www.arduino.cc/• http://commandronestore.com/learning/gy521_001.php• http://naringroup.blogspot.com/2016/03/robot-l298n-dual-h-bridge-motor.html• http://www.123microcontroller.com/• ประจิน พลังสันติกุล, พื้นฐานภาษา C สําหรับ Arduino, กรุงเทพ: แอพซอฟตเทค, 2553• Basic Electronic + Arduino (Pre-Lab) Workshop for Cpre, หองปฏิบัติระบบสมองกลฝงตัว (Embedded
Syatem Lab) ภาควิชาวิศวกรรมไฟฟาและคอมพิวเตอร คณะวิศวกรรมศาสตร มจพ. 12 ตุลาคม 2557• เรียนรูการใชงาน Arduino เบื้องตน, ชมรม MAKER SPACE PSRU ศูนยเทคโนโลยีสารสนเทศ
มหาวิทยาลัยราชภัฏพิบูลสงคราม• Julien Bayle, C Programming for Arduino, PACKT publishing• สมชาย เบียนสูงเนิน, สรางและพัฒนาอุปกรณดวยไมโครคอนโทรลเลอร,กรุงเทพ: ทริปเพิ้ล เอ็ดดูเคชั่น,
2557• ธีรวัฒน ประกอบผล. การเขียนแอพพลิเคชันดวย Visual Basic 2010 ฉบับสมบูรณ. พิมพครั้งที่ 4.
กรุงเทพฯ: รีไววา, 2557.