บทที่ 4 วงจร adc
DESCRIPTION
บทที่ 4 วงจร ADC. เทอดศักดิ์ ลิ่วหาทอง สาขาวิชาอิเล็กทรอนิกส์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง. Analog & Digital Signal. Analog Signal. Digital Signal. Digital Signal. Analog to Digital Converter. Quantize. Sampling and Hold. Sampling Rate Selection. Sampling Rate - PowerPoint PPT PresentationTRANSCRIPT
บทท่ี 4 วงจร ADC
เทอดศักด์ิ ลิ่วหาทองสาขาวชิาอิเล็กทรอนิกส์
สถาบนัเทคโนโลยพีระจอมเกล้าเจา้คณุทหารลาดกระบงั
Analog & Digital Signal
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
Digital SignalAnalog Signal
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
Digital Signal
Analog to Digital Converter
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
QuantizeSampling and Hold
Sampling Rate Selection
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
Sampling Ratefs >= 2 Bandwidth
Sampling Rate Selection
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100
000
001
010
011
100
101
ResolutionLSB = (Vref+-Vref-)/2k
vin
VRef+
Vref-
D0D1
Dk-1
ADC ชนิด Successive Approximation
ADC ของ PIC18F8722
• PIC18F8722 มวีงจร Analog to Digital Converter ขนาด 10 bit ทัง้หมด 16 วงจร (AN0-AN15)
ADC ของ PIC18F8722
ADC ของ PIC18F8722
ADC ของ PIC18F8722
Register ของ ADC
• PIC มี Register ท่ีเก่ียวกับ ADC ทัง้หมด 5 ตัวคือ1. A/D Result High Register (ADRESH)2. A/D Result Low Register (ADRESL)3. A/D Control Register 0 (ADCON0)4. A/D Control Register 1 (ADCON1)5. A/D Control Register 2 (ADCON2)
ADRESH และ ADRESL
• ADRESH และ ADRESL เป็น Register ท่ีใชเ้ก็บ ผลลัพธข์องการแปลง ADC
ADCON0
• ADCON0 เป็น Register ท่ีใชก้ำาหนดวา่จะใหว้งจรVAin ของวงจร ADC ต่อกับ AN ตัวท่ีเท่าใด(CHS3:0)
• สัง่ให้ ADC เริม่ทำางาน Go/DONE• และตรวจสอบวา่ ADC ทำางานเสรจ็หรอืยงั
ADON
ADCON0
ADCON1
• ADCON1 เป็น Register ท่ีใชก้ำาหนดให้ AN ตัวใด ทำางานเป็น Analog Input Port หรอืทำางานเป็น
Digital I/O Port (PCFG3:0)• และกำาหนดให้ RA3/AN3 เป็น VRef+ และ RA2/AN2
เป็น VRef- (VCFG1:0)
ADCON1
ADCON2
• ADCON2 เป็น
Register ท่ี ใชก้ำาหนด
Acquisition Time ของ
วงจร ADC
Acquisition Time
• สญัญาณ Analog จะถกูป้อนผ่านสวทิซไ์ปเขา้ที่ขา VAin ของวงจร ADC
• จากนัน้ CHOLD จะถกูชารจ์ประจุใหม้แีรงดันเท่ากับขาVAin
Acquisition Time
• เพื่อใหก้ารแปลง ADC มคีวามถกูต้อง จะต้องให้ แรงดันของ CHOLD เท่ากับ VAin
• เนื่องจาก VAin ชารจ์ประจุ CHOLD ผ่าน RS, RSS ดังนัน้ จงึต้องใชเ้วลาในการชารจ์ประจุ เราเรยีกเวลาดัง
กล่าววา่ Acquisition Time (TACQ)
Acquisition Time
• เราสามารถตัง้ค่า Acquisition Time ได้จากACQT<2:0>
• เมื่อเซท็ให้ GO/DONE = 1 PIC จะรอเป็นเท่ากับAcquisition Time จากนัน้จงึเริม่แปลง ADC
• และเมื่อแปลง ADC เสรจ็แล้ว GO/DONE จะเท่ากับ0
ขัน้ตอนการแปลง ADC
#include <p18f8722.h>#include <adc.h>#include <delays.h>#include <timers.h>
#define NUMBER_OF_LEDS 8
#pragma code
int result;int shift;void main(void){
TRISAbits.TRISA0=1;TRISD = 0;PORTD = 0;
ADCON1 = 0b00001110;ADCON2 = 0b10001010;
ADCON0bits.ADON = 1;while(1){
ADCON0bits.GO=1;while(ADCON0bits.GO);result = ADRES;result >>=2;if(result==0) result = 1;
// PORTD = result;PORTD=1<<shift;shift++;shift %=8;
Delay10KTCYx(20);}
}