25
DAC & ADC 1 16. การเชื่อมต ่อกับสัญญาณอนาลอก 14.1 บทนา รูปที่ 14.1 แสดงขบวนการแปลงสัญญาณระหว่าอะนาลอกกับดิจิตอล โดยทั่วๆไปสัญญาณที่ปรากฏอยู่ในทางธรรมชาติจะเป็นสัญญาณที่มีความต่อเนื่อง และมีขนาดได้ หลายขนาดไม่จากัด สัญญาณลักษณะนี ้เรียกว่า สัญญาณอนาลอกถ้าต้องการนาสัญญาณอะนาลอกนี มาประมวลผลด้วยระบบดิจิตอล จะต้องมีการเปลี่ยนสัญญาณนี ้ให้เป็นสัญญาณดิจิตอลเสียก่อน ระบบนี เรียกว่า การแปลงสัญญาณอนาลอกเป็นสัญญาณดิจิตอล (Analog to Digital conversion หรือ A/D) และใน ทางตรงข้ามกัน เมื่อประมวลผลได้แล้วสัญญาณที่ได้ยังเป็นสัญญาณดิจิตอลอยู่ ถ้าต้องการนาออกสู่โลก ภายนอกแบบสัญญาณอะนาลอก ก็ต้องทาการแปลงสัญญาณให้เป็นสัญญาณอะนาลอกด้วยระบบแปลง สัญญาณดิจิตอลเป็นสัญญาณอนาลอก ( Digital to Analog Conversion หรือ D/A ) 14.2 วงจรแปลงสัญญาณดิจิตอลเป็นสัญญาณอนาลอก (Digital-to-Analog Converter หรือ D/A ) หมายถึงวงจรที่เปลี่ยนข้อมูลทางดิจิตอลให้เป็นค่าอนาลอก ค่าอนาลอกนี ้อาจเป็นกระแสไฟฟ ้ าหรือ แรงดันไฟฟ้าก็ได้ รูปที่ 14.2 แสดงขบวนการแปลงสัญญาณจากดิจิตอลเป็นอะนาลอก

16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 1

16. การเชอมตอกบสญญาณอนาลอก

14.1 บทน า

รปท 14.1 แสดงขบวนการแปลงสญญาณระหวาอะนาลอกกบดจตอล

โดยทวๆไปสญญาณทปรากฏอยในทางธรรมชาตจะเปนสญญาณทมความตอเนอง และมขนาดไดหลายขนาดไมจ ากด สญญาณลกษณะนเรยกวา “สญญาณอนาลอก” ถาตองการน าสญญาณอะนาลอกนมาประมวลผลดวยระบบดจตอล จะตองมการเปลยนสญญาณนใหเปนสญญาณดจตอลเสยกอน ระบบนเรยกวา การแปลงสญญาณอนาลอกเปนสญญาณดจตอล (Analog to Digital conversion หรอ A/D) และในทางตรงขามกน เมอประมวลผลไดแลวสญญาณทไดยงเปนสญญาณดจตอลอย ถาตองการน าออกสโลกภายนอกแบบสญญาณอะนาลอก กตองท าการแปลงสญญาณใหเปนสญญาณอะนาลอกดวยระบบแปลงสญญาณดจตอลเปนสญญาณอนาลอก (Digital to Analog Conversion หรอ D/A )

14.2 วงจรแปลงสญญาณดจตอลเปนสญญาณอนาลอก (Digital-to-Analog Converter หรอ D/A ) หมายถงวงจรทเปลยนขอมลทางดจตอลใหเปนคาอนาลอก คาอนาลอกนอาจเปนกระแสไฟฟาหรอ

แรงดนไฟฟากได

รปท 14.2 แสดงขบวนการแปลงสญญาณจากดจตอลเปนอะนาลอก

Page 2: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 2

เทคนคการแปลงสญญาณดจตอลเปนสญญาณอะนาลอกมหลายวธเชน Binary Weighted DAC และ R/2R Ladder การท างานของแตละวธมรายละเอยดดงน

14.2.1 Binary Weighted DAC

รปท 14.3 แสดงวงจรออปแอมปแบบกลบสญญาณ (Inverting Amp.)

คณสมบตของวงจรประเภทนไดแก ความตานทานอนพทสง อตราขยายแรงดนมคาเทากบ –Rf/Rin

รปท 14.4 วงจร Binary Weighted DAC

ตามรปท 14.4 จะเหนไดวาแรงดนเอาทพทต าสดเกดเมอสวตซ D3- D0 อยต าแหนง ‘0’

Vout = 0 โวลท

ถา D3- D0 อยต าแหนง ‘1’ จะไดแรงดนเอาทพทสงสด Vout = - Vref x Rf x(1/1k + 1/2k + 1/4k + 1/8k) Vout = -Vref x 1 x(1/1 + 1/2 + 1/4 + 1/8) Vout = -Vref x (1 + .5 + .25 + .125) Vout = -1.875 x Vref

Page 3: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 3

เชนถา Vref = +5V Vout เมออนพทเปน ‘1’ หมดจะได -9.375 โวลท แตการท าวงจรใหมจ านวนบตมากขนตองใชความตานทานขนาดใหญขน ตวอยาง จงค านวณหาคา Eout

รปท 14.5 ตวอยางวงจร DAC ขนาด 8 บต

14.2.2 R/2R Ladder เปนวธทใชกนทวๆไปในการผลตเปนวงจรรวม เพราะวา ใชคาความตานทานต าและใชเพยง 2 คาคอ

1R กบ 2R เชน 1 K กบ 2K ตวอยางวงจรมลกษณะตามรปท 14.6 ซงสามารถวเคราะหวงจรโดยใช Thevenin’s theorem

รปท 14.6 ตวอยางวงจร DAC แบบ R/2R Ladder ขนาด 8 บต

การวเคราะหวงจรโดยใชทฤษฎ Thevenin หา Rth ของ Thevenin ทต าแหนงบตตางๆ สามารถหา Rth ไดดงน บต 0 Rth = 1 k, บต 1 Rth = 1 k,บต 2 Rth = 1 k,บต 3 Rth = 1 k,บต 4 Rth = 1 k,บต 5 Rth = 1 k, บต 6 Rth = 1 k และ บต 7 Rth = 1 k

Page 4: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 4

รปท 14.7 วงจร Thevenin equivalent เพอหา Rth

หา Vth ของ Thevenin ทต าแหนงบตตางๆ สามารถหา Vth ไดดงน

รปท 14.8 วงจร Thevenin equivalent เพอหา Vth เมอบต 7 เปน '1'

บต 0 Vth = 46.875 mV, บต 1 Vth = 93.75 mV, บต 2 Vth = 0.1875 V, บต 3 Vth = 0.375 V, บต 4 Vth = 0.75 V, บต 5 Vth = 1.5 V, บต 6 Vth = 3V และ บต 7 Vth = 6V 14.2.3 เทอมทเกยวกบ DAC Resolution

เปนขนาดทเลกทสดท D/A สามารถสรางได ขนาดนขนอยกบจ านวนบตของ D/A หรอค านวณไดจาก

2

REFres n

VV

จ านวนระดบของสญญาณอะนาลอก

Page 5: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 5

Analog Levels 2n

คาความเทยงตรง(Accuracy) เปนการเปรยบเทยบคาจรงกบคาทค านวณได ปกตจะก าหนดเปนเปอรเซนตของคาเอาทพทเมอเตม

สเกล (Full scale) ความเรว (Speed)

หมายถงความเรวของ Output settling time ซงเปนเวลาทตองใชเพอสรางคาเอาทพทเมออนพทมการเปลยนแปลง

การผดพลาดใน DAC

DAC ทดตองใหคาเอาทพทออกมาตรงตามคาอนพท เมออนพทใหคามากขน สญญาณเอาทพทกตองมคามากขน และการเพมขนของอนพทแตละขนกตองใหคาเอาทพทเพมขนในแตละขนเทาๆกนดวย แตถงกระนน ในทางเปนจรง DAC กมการผดเพยนเชนกน การผดเพยนใน DAC ม 2 แบบใหญๆ คอ Non-linear distortion และ Non-monotonic distortion Non-Linear Distortion:

ลกษณะการผดเพยนแบบนจะใหคาเอาทพทของแตละสเตปไมเทากน

รปท 14.9 การผดเพยนแบบ Non-linear

Non-Monotonic Distortion ลกษณะการผดเพยนแบบนจะใหคาเอาทพทของแตละสเตปไมเทากน และบางครงใหคา

เอาทพทลดลงทงๆทอนพทมคาเพมขน

Page 6: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 6

รปท 14.10 การผดพลาดแบบ Monotonic

ตวอยาง DAC ขนาด 2 บต มแรงดนอางอง 8 โวลทและคาความเทยงตรง @ ± 0.2% จงหาคา resolution และคาความเทยงตรงในเทอมของแรงดน Resolution = 1/22 = 1/4 = 25% หรอ Resolution = (1/4)(8V) = 2V Accuracy = (±0.2%)(8V) = ±16mV สรปการค านวณ

10

max minmin 10

max min

10

min 10

Re

Re

2

2 1

2

2 1ReRe

ref refOUT ref n

OUT n

ref ref

n

n

OUT ref

OUT

solution

solution

V VV V X

V VV V X

V V

V V

solutionV V XsolutionV V X

OUT

-ref

+ref

min

max

10

= Output Voltage

= Voltage Reference-

= Voltage Reference +

= Minimum output voltage

= Maximum output voltage

= Input value base10

n = จ านวนบต

VVVVVX

14.2.4 DAC0800 DAC 0800 เปนวงจรรวมทท าหนาทเปน DAC มอนพท 8 บต ใหเอาทพทเปนกระแส ต าแหนงขาสญญาณเปนตามรป 4.11 และ บลอกไดอะแกรมแสดงอยในรปท 14.12

Page 7: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 7

รปท 14.11 ลกษณะตวถงและขาสญญาณของ DAC0800

ขาสญญาณ ชอ ความหมาย 1 GND Ground 2 IOUT’ Output 4. IOUT Output’ 5 B1 MSB Input : : : 12 B8 LSB Input 14 VREF(+) Reference voltage for output 15 VREF(-) Reference voltage for output

รปท 14.12 ไดอะแกรมของ DAC0800

Page 8: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 8

ตวอยางการตอวงจรเพอใหเอาทพทเปนแรงดน

รปท 14.13 การใชงาน DAC0800

ตวอยางการตอ AT89C2051 กบ DAC0800

รปท 14.14 การใชงาน DAC0800 กบ AT89C2051

14.3 วงจรแปลงสญญาณอนาลอกเปนสญญาณดจตอล (Analog-to-Digital Converter หรอ A/D หรอ A2D) สญญาณในทางธรรมชาตทวๆไปเปนสญญาณทมความตอเนองมขนาดไดไมจ ากด การทจะน า

สญญาณเหลานมาประมวลผลดวยระบบดจตอลคอมพวเตอรโดยตรงนนยอมไมสามารถท าได อกประการหนงสญญาณเหลานบางครงกไมไดอยในรปของสญญาณไฟฟา ดงนนการน ามาประมวลผลดวยระบบดจตอลตองมกระบวนการแปลงเสยกอน ตามรปท 14.15 แสดงถงขนตอนการน าสญญาณในทางธรรมชาตมาใชงานในระบบดจตอล เรมตนสญญาณในทางธรรมชาตเชนอณหภมซงเปนพลงงานความรอนตองถกแปลงใหเปนพลงงานไฟฟาเสยกอนดวยดวยอปกรณทเรยกวาเซนเซอร หรอทรานสดวเซอร สญญาณ

Page 9: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 9

เอาทพททไดจากเซนเซอรนยงคงเปนสญญาณทมความตอเนอง หรอทเรยกกนทวๆไปวาสญญาณอนาลอกสญญาณนตองถกแปลงใหเปนสญญาณดจตอลดวยวงจรแปลงสญญาณอนาลอกเปนสญญาณดจตอล หรอทเรยกวา ADC หลงจากนจงไดเปนสญญาไฟฟาทอยในรปของสญญาณดจตอลทพรอมจะน าไปประมวลผลในระบบดจตอลได

รปท 14.15 ลกษณะการใชงาน ADC

การแปลงสญญาณอนาลอกเปนสญญาณดจตอลนนมอยหลายวธ เชนตวอยางวงจรแปลสญญาณอนาลอกเปนสญญาณดจตอลแบบงายๆ โดยการใชวงจรAnalog comparator ตามรปท 14.16 ซงใหเอาทพทออกมาขนาด 1 บต นอกจากนยงมวธอนๆอกเชน

- Digital Ramp ADC (Counter method) - Successive Approximation - Parallel Comparator (“Flash”) - Dual Slope

รปท 14.16 ลกษณะของ ADC ขนาด 1 บต

Page 10: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 10

14.3.1 Digital Ramp ADC (Counter method)

รปท 14.17 ลกษณะของ ADC แบบ Counter methgod

บลอกไดอะแกรมของวธนแสดงอยในรปท 14.17 โดยมการท างานดงน 1) เมอเรมสงใหแปลงสญญาณ START = 0 จะเปนการรเซตวงจรนบ (Counter) ใหไดเปน 0

ทก บต หลงจากน START จะตองเปน 1 เพอเรมขบวนการท างาน 2) คาจากวงจรนบจะถกแปลงใหเปนคาอนาลอก Vax โดย DAC 3) คา Vax จะถกน าไปเปรยบเทยบกบ คาแรงดนอนพท Va โดยตวเปรยบเทยบ (Comparator)

ถา Va > Vax เอาทพท EOC = 1 ท าใหผลของการ AND ระหวาง START EOC และ Clock ไดเปนสญญาณ Clock ปอนเขาวงจรนบ วงจรนบกจะนบคาขนไปเรอยๆ ขบวนการกจะเปนไปตาม ขนท 2 และ 3 จนกวา Va นอยกวาหรอเทากบ Vax

ถา Va < หรอ = Vax เอาทพท EOC = 0 วงจรนบจะหยดนบ เปนการเสรจสนการท างาน

14.3.2 Successive Approximation

Page 11: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 11

รปท 14.18 ลกษณะของ ADC แบบ Successive Approximation

บลอกไดอะแกรมของวธนแสดงอยในรปท 14.18 โดยมการท างานดงน 1) เมอเรมสงใหแปลงสญญาณ START = 0 จะเปนการรเซต Control logic และ Control

Register ใหเปน 0 ทกบต พรอมทงก าหนดต าแหนงบตทตองเซตหรอรเซตเปนบตท 7 หลงจากน START จะตองเปน 1 เพอเรมขบวนการท างาน

2) คาจากวงจรนบจะถกแปลงใหเปนคาอนาลอก Vax โดย DAC 3) คา Vax จะถกน าไปเปรยบเทยบกบ คาแรงดนอนพท Va โดยตวเปรยบเทยบ (Comparator) ถา Va > Vax เอาทพทของตวเปรยบเทยบจะเปน 1 และ EOC = 1 เมอสญญาณ

Clock เขามา Control logic จะเซตบตทระบใหเปน 1 พรอมทงเลอนการระบบตลงมา 1 ต าแหนง แลวกลบไปเปรยบเทยบใหม

ถา Va < Vax เอาทพท EOC = 1 เมอสญญาณ Clock เขามา Control logic จะรเซตบตทระบใหเปน 0 พรอมทงเลอนการระบบตลงมา 1 ต าแหนง แลวกลบไปเปรยบเทยบใหม

การท างานจะวนอยในขอ 3 นจนกวาจะท าครบทกบต (ในทนม 8 บต) หรอ Va = Vax เอาทพท EOC จะเทากบ 0 วงจรจะหยดท างาน เปนการเสรจสนการท างาน

วธการแปลงแบบนใหความเรวมากกวาแบบ การนบ อกทงราคากถกจงเปนวธทนยมใชกนมาก

14.3.3 Parallel Comparator (“Flash") ADC เปนวธทเรวทสด ใชในสโคปแบบดจตอล สญญาณวดโอ และการใชงานทตองการความเรวสง แต

กมขอเสยในดานราคา เพราะวาใชฮารดแวรในการสรางมาก ดงนนจงเหมาะกบการใชงานทตองการจ านวนบตนอยๆ ลกษณะของวงจรประกอบดวยตวเปรยบเทยบและวงจรเขารหส จ านวนของตวเปรยบเทยบเชนถา

Page 12: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 12

รปท 14.19 ลกษณะของ ADC แบบ Flash

ตองการ ADC ขนาด 2 บตมจ านวน 4 สเตป ซงมแรงดนอางอง 8 โวลท ดงนนแตละสเตป 0 โวลท 2 โวลท 4 โวลท และ 6 โวลท ดงนนตองใชตวเปรยบเทยบ 3 ตว ตามรปท 14.20 ดงนนเมอปอนแรงดนอนพท เชน 5 V เขามา ตวเปรยบเทยบทง 3 ตวจะท าการเปรยบเทยบกบแรงดนอางองของแตละระดบไดเอาทพทเปน 0 1 1 วงจรเขารหสจงใหเอาทพทเปนรหสไบนาร 10 ตามรปท 14.20

รปท 14.20 ตวอยาง ADC แบบ Flash ขาด 2 บต

14.3.4 ADC แบบอนๆ นอกจากแบบทไดกลาวมาแลว ยงมADC แบบอนๆอกเชน ADC ทใชใน จอยสตก (Joystick) ของคคอมพวเตอร Apple II โดยมรปแบบตามรปท 14.21 ส าหรบ Threshold Detector อาจใช Op-amp ทใชแรงดนอางองทขา inverting เปน 2.5 โวลท หรอใช 74LS14 หรอ 74HCT14 กได สวนต าแหนงของจอยสตกก าหนดดวย Potentiometer ซงเปนความตานทานทปรบคาได หลกการท างานจะใชการวดคา RC time constant ทเกดจากการประจใหกบ C 1 F ทงนการชารตและดสชารต ประจน สงงานดวยโปรแกรมของไมโครโปรเซสเซอร

รปท 14.21 ลกษณะของ ADC แบบ Apple II A-to-D for joystick

Page 13: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 13

14.3.5 ขอก าหนดของ ADC Resolution เหมอนกบใน DAC จะเปนตวก าหนดคาความผดพลาดของการ quantizing ซงเปนการผดพลาดจาก

คาทแทจรง

Accuracy เหมอนกบใน DAC เปนการแสดงคาทถกตองเมแเทยบกนระหวางคาทแทจรงกบคาทก าหนดได

Conversion Time ระยะเวลาทใชในการแปลงสญญาณ

Sample and Hold เมอสญญาณมความถสงถาไมตองการใหเกดความผดพลาดเนองจากระยะเวลาทใชแปลง ควรใช

Sample and Hold

รปท 14.22 การใช Sample and Hold

Sampling Rate ความถของการแปลงสญญาณ เชนถาเปน 44 kHz กหมายถงวาการแปลงสญญาณจะเกดขนทกๆ

22.7 S

Page 14: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 14

รปท 14.23 ลกษณะของการสมสญญาณ

Analog-to-Digital Converter (ADC) ของ ATmega8 ขนาด 10 บต

10-bit Resolution 0.5 LSB Integral Non-linearity ± 2 LSB Absolute Accuracy 13 - 260 μs Conversion Time Up to 15 kSPS at Maximum Resolution 6 Multiplexed Single Ended Input Channels 2 Additional Multiplexed Single Ended Input Channels (TQFP and QFN/MLF Package only) Optional Left Adjustment for ADC Result Readout 0 - VCC ADC Input Voltage Range Selectable 2.56V ADC Reference Voltage Free Running or Single Conversion Mode Interrupt on ADC Conversion Complete Sleep Mode Noise Canceler

Analog to Digital Converter Block Schematic Operation

Page 15: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 15

Prescaling and Conversion Timing

ADC Timing Diagram, First Conversion (Single Conversion Mode)

Page 16: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 16

ADC Timing Diagram, Single Conversion

ADC Timing Diagram, Free Running Conversion

Page 17: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 17

ADC Conversion Time

ADC ใน ATMega168

แหลงจายแรงดนและแรงดนอางอง

AVCC Atmega168 มขาแหลงจายแรงดนอย 2 ขา คอ VCC และ AVCC.

Page 18: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 18

AVCC เปนแหลงจายส าหรบ PC0-PC5 เมอท าเปนขาอนพทส าหรบสญญาณ analog แหลงจาย AVCC นตองการความเสถยรมาก ดงนนจะใช low pass filter ซงประกอบดวย inductor และ capacitor. AREF ขา AREF ใชเปนขาส าหรบแรงดนอางอง ท 100% (เมอสญญาณ analog เทากบคาน จะไดคาดจตอลเทากบ 1024) Analogue Input Atmega168 มขาส าหรบสญญาณ analog อย 6 ขา PC0 to PC5. –ขาเหลานเปนไดทง digital I/O และ analogue input Registers Atmega168 มรจสเตอรทใชงานเกยวกบการแปลงสญญาณอนาลอกอย 6 ตว Register Description ADMUX ADC Multiplexer Selection Register ADCSRA ADC Control and Status Register A ADCSRB ADC Control and Status Register B DIDR0 Digital Input Disable Register 0 ADCL ADC Data Register – Low ADCH ADC Data Register – High ADMUX The ADMUX register allows you to control:

The Reference Voltage Left adjustment of results (used for 8 bit results) Selection of input channel

ADMUX – ADC Multiplexer Selection Register – ADMUX

Page 19: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 19

ADMUX : ADLAR และ MUX3:0

Bit 5 – ADLAR: ADC Left Adjust Result ก าหนดผลลพทธการแปลง

1 = left adjust 0 = right adjusted

รายละเอยดด “ADCL and ADCH – The ADC Data Register”

Bits 3:0 – MUX3:0: Analog Channel Selection Bits เลอกสญญาณอนพททตองการแปลง

Page 20: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 20

ADCSRA – ADC Control and Status Register A

Bit 7 – ADEN: ADC Enable 1 = enables the ADC 0 = ADC is turned off ถา turnoff ในขณะแปลง การแปลงจะหยด

Bit 6 – ADSC: ADC Start Conversion แบบ Single Conversion mode ใหบตนเปน 1 = สงใหเรมแปลงแบบ Free Running mode ใหบตนเปน 1 = start the first conversion. The first conversion จะเรม หลงจาก ADC enabled เมอแปลงเสรจบตนจะเปน 0

Bit 5 – ADATE: ADC Free Running Select

Page 21: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 21

1 = ท างานแบบ Free Running mode ในโหมดน จะแปลงตอเนองไปตลอด 0 = หยดการท างานแบบ Free Running mode.

Bit 4 – ADIF: ADC Interrupt Flag ถกท าใหเปน 1 เมอแปลงเสรจและขอมลถกสงไปท ADCL/ADCH ใชเปนบตบอกใหเกดการอนเตอรรพท (บต I ใน SREG ตองเปน 1 ดวย) บตนจะถก clear เมอการอนเตอรรพทไดรบการตอบสนอง

Bit 3 – ADIE: ADC Interrupt Enable 1 = Enable 0 = Disable When this bit is written to one and the I-bit in SREG is set, the ADC Conversion Complete Interruptis activated.

Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits เลอกตวหาร

Page 22: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 22

การก าหนดคา ADCSRA และ ADMUX ADCSRA ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0

1 0 0 0 0 0 0 1

Enable

Sta

rt C

onvers

ion เปน 1

ส ง

หยดการท างานแบบ F

ree R

unnin

g m

ode

Inte

rrupt

Fla

g เ

ปน 1

เม

อแปลงเ

สรจ

Inte

rrupt

Enable หาร 2

ADMUX REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0

0 0 0 0 0 0 0 0

ปรบ

ชดขวาADC Channel 0

AREF, internal

Vref turned off ADCL and ADCH – The ADC Data Register

Page 23: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 23

ตวอยางโปรแกรมภาษา C เขยนแบบ AVR #include <avr\io.h> // Most basic include files #include <avr\interrupt.h> // Add the necessary ones

#include <avr\signal.h> // here #include <util/delay.h>

unsigned int adc0;

int main(void) {

ADCSRA = (1<<ADEN)|(0<<ADATE); // ADC Enable & Auto Trigger Disable ADCSRA |= (0<<ADPS2)|(0<<ADPS1)|(1<<ADPS0); // XTAL/8

while(1)

{ ADMUX = 0b0000000; //Aref,left adjust, select ADC0 (bit 2=0 bit 1 = 0 bit 0 = 0)

ADCSRA |= (1<<ADSC); // ADC Start Conversion while (!(ADCSRA &(1<<ADIF))); // Wait Coversion completes

adc0 = ADCW; // Read ADC

_delay_ms(10); }

}

ฟงกชนเกยวกบสญญาณอนาลอก ของ Arduino

analogReference(type) analogRead() analogWrite() – PWM

analogReference(type) Configures the reference voltage used for analog input (i.e. the value used as the top of the input range). The options are:

DEFAULT: the default analog reference of 5 volts (on 5V Arduino boards) or 3.3 volts (on 3.3V Arduino boards)

INTERNAL: an built-in reference, equal to 1.1 volts on the ATmega168 or ATmega328 and 2.56 volts on theATmega8 (not available on the Arduino Mega)

INTERNAL1V1: a built-in 1.1V reference (Arduino Mega only) INTERNAL2V56: a built-in 2.56V reference (Arduino Mega only) EXTERNAL: the voltage applied to the AREF pin (0 to 5V only) is used as the reference.

Page 24: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 24

analogRead() Description Reads the value from the specified analog pin. The Arduino board contains a 6 channel (8 channels on the Mini and Nano, 16 on the Mega), 10-bit analog to digital converter. This means that it will map input voltages between 0 and 5 volts into integer values between 0 and 1023. This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit. The input range and resolution can be changed using analogReference(). It takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second. Syntax analogRead(pin) เชน int sensorValue = analogRead(A0); และการแปลงคาดจตอลทอานได หาไดจาก float voltage= sensorValue * (5.0 / 1023.0); ตวอยางโปรแกรมอานคาอนาลอกของ Arduino แลวสงคาทอานไดออกทางพอรทอนกรม int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3 // outside leads to ground and +5V

int val = 0; // variable to store the value read void setup()

{ Serial.begin(9600); // setup serial

} void loop()

{

val = analogRead(analogPin); // read the input pin Serial.println(val); // debug value

}

analogWrite() - PWM analogWrite(pin, value) Parameters

pin: the pin to write to. กรณ atmega168 ม D3 D5 D6 D9 D10 และ D11

value: the duty cycle: between 0 (always off) and 255 (always on). ตวอยางสราง PWM ดวย analogWrite #define pwm_1 3

Page 25: 16. การเชื่อมต่อกับสัญญาณอนาลอก · 2018-02-21 · DAC & ADC 4 รูปที่14.7 วงจร Thevenin equivalent เพื่อหา

DAC & ADC 25

#define pwm_2 5

#define pwm_3 6 #define pwm_4 9

#define pwm_5 10 #define pwm_6 11

void setup() {

analogWrite(pwm_1, 10); analogWrite(pwm_2, 50);

analogWrite(pwm_3, 100); analogWrite(pwm_4, 150);

analogWrite(pwm_5, 200);

analogWrite(pwm_6, 250); }

void loop()

{

}