618352ch12 1 59 ยังไม่เสร็จ a2d d2a · 1....

8
เอกสารประกอบการเรียนการสอน วิชา: 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. การแปลงสัญญาณแบบประมาณคาหลายครั้ง

Upload: others

Post on 12-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

เอกสารประกอบการเรียนการสอน• วิชา: 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. การแปลงสัญญาณแบบประมาณคาหลายครั้ง

Page 2: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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 แบบแฟลชไปใชงานจึงควรเปนงานที่ตองการความเร็วในการแปลงสัญญาณสูงๆ แตไมตองการความละเอียดมากนัก

Page 3: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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 ) แสดงดังรูป

Page 4: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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

Page 5: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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 ทุกบิต

Page 6: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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) มีโครงสรางของวงจรแสดงดังรูป

Page 7: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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

Page 8: 618352CH12 1 59 ยังไม่เสร็จ A2D D2A · 1. วงจรแปลงแบบแฟลช ( Flash Convertor ) การแปลงสัญญาณอนาลอกเป

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.