BỘ BIẾN ĐỔI ADC 10 BIT

Một phần của tài liệu Đề tài Kit thực tập PIC 16F877A (Trang 57 - 63)

4.1 Giới thiệu module ADC 10 bit:

Trờn VĐK cú một bộ biến đổi ADC 10bit, 8 ngừ vào Analog, 8 ngừ vào này được nối với ngừ vào của bộ chuyển đổi. Sau đú bộ chuyển đổi sẽ tạo ra một kết quả 10 bit tương ứng với giá trị Ananlog đầu vào. Điện thế tham chiếu đầu vào sẽ được lựa chọn bằng phần mềm (từ Vdd, Vss hoặc 2 chân AN2, AN3. Module ADC là module duy nhất có khả năng hoạt động trong chế độ ngủ. Để hoạt động trong chế độ ngủ Sleep, xung clock cung cấp cho ADC phải được nhận từ dao động nội RC của ADC.

Module ADC bao gồm 4 thanh ghi:

- Thanh ghi chứa byte cao của kết quả ADRESH - Thanh ghi chứa byte thấp của kết quả ADRESL - Thanh ghi chứa các bit điều khiển ADCON0 - Thanh ghi chứa các bit điều khiển ADCON1 4.2 Các thanh ghi điều khiển:

Thanh ghi điều khiển ADCON0:

Bit 7:6 ADCS1:ADCS0: Các bit lựa chọn tần số chuyển đổi A/D 00 =FOSC/2

01 =FOSC/4 10 =FOSC/32

11 =FRC (xung clock được lấy từ dao đông nội RC) Bit 5:3 CHS2:CHS0: Các bit lựa chọn kênh Analog

000: Kênh 0, (AN0)

001: Kênh 1, (AN1)

010: Kênh 2, (AN2)

011: Kênh 3, (AN3)

100: Kênh 4, (AN4)

101: Kênh 5, (AN5)

110: Kênh 6, (AN6)

111: Kênh 7, (AN7)

Bit 2 GO/ DONE: Bit báo trạng thái chuyển đổi A/D Khi bit ADON = 1

1: Quá trình A/D đang thực hiện (Khi chúng ta set bit này lên thì quá trình chuyển đổi sẽ xảy ra, khi quá trình kết thúc nó sẽ tự động được xóa bằng phần mềm).

0: Quá trình A/D không xảy ra hoặc đã hoàn tất.

Bit 1 Không sử dụng, giá trị là 0

Bit 0 ADON : Bit cho phép module A/D hoạt động.

1: Nguồn được cung cấp cho A/D 0: Ngưng cung cấp nguồn cho A/D Thanh ghi điều khiển ADCON1:

Bit 7 ADFM: Bit lựa chọn định dạng kết quả A/D

1: Canh phải, 6 bit cao nhất của thanh ghi ADRESH có giá trị 0 0: Canh trái, 6 bit thấp nhất của thanh ghi ADRESL có giá trị 0 Bit 6 ADCS2: Bit lựa chọn clock chuyển đổi A/D

Bit 5,4 Không sử dụng

Bit 3:0 PCFG3:PCFG0: Các bit điều khiển cấu hình các chân ADC

4.3 Hoạt động của module ADC

Hai thanh ghi ADRESH và ADRESL chứa giá trị 10 bit của kết quả ADC. Khi quá trình chuyển đổi hoàn tất, kết quả ADC sẽ được lưu lại trong cặp thanh ghi này. Bit GO/DONE bị xóa và cờ ngắt ADIF được bật lên.

Sau khi module ADC đã được cấu hình như mong muốn, chúng ta phải lựa chọn kênh chuyển đổi A/D trước khi chuyển đổi ADC xảy ra. Các chân Analog phải được chọn là ngừ vào bằng cỏch set cỏc bit trong thanh ghi TRIS tương ứng.

Để tiến hành chuyển đổi ADC, tiến hành theo các bước sau:

Bước 1: Cấu hình cho module ADC:

- Cấu hỡnh cho cỏc chõn ngừ vào/ điện thế chuẩn và I/O số (ADCON1) - Lựa chọn kờnh ngừ vào A/D (ADCON0)

- Lựa chọn tần số chuyển đổi (ADCON0) - Cấp nguồn cho module ADC (ADCON0) Bước 2: Cấu hình các ngắt ADC (nếu cần):

- Xóa cờ ngắt ADIF

- Set bit GIE (Cho phép ngắt toàn cục)

- Set bit ADIE (Cho phép ngắt chuyển đổi ADC) Bước 3: Đợi thời gian Acquisition (lấy mẫu) cần thiết Bước 4: Bắt đầu quá trình chuyển đổi ADC:

Set bit GO/ DONE (ADCON0) Bước 5: Đợi quá trình ADC hoàn tất:

Chạy vòng lập đợi bit GO/DONE bị xóa hoặc cờ ngắt ADIF bật lên

Bước 6 : Đọc kết quả trong 2 thanh ghi ADRESH và ADRESL, xóa bit ADIF ( nếu cần thiết)

Bước 7: Nếu muốn tiếp tục thực hiện chuyển đổi ADC trong chu kỳ kế tiếp thì quay lại bước 1 hoặc bước 2.

Sơ đồ khối của bộ biến đổi ADC 10 bit:

4.4 Thời gian lấy mẫu:

Thời gian lấy mẫu bao gồm hai giai đoạn:

Thời gian acquition: Là thời gian cần để tụ điện của bộ sample and hold (tạm dịch là bộ lấy mẫu và giữ) nạp điện để có giá trị điện thế bằng với giá trị của nguồn analog cần lấy mẫu.

Thời gian chuyển đổi từ tương tự sang số: Vào khoảng 12 chu kỳ của bộ ADC.

Tổng 2 thời gian đó ta được thời gian lấy mẫu Cách tính thời gian acquition:

TACQ = Thời gian ổn định của phần cứng khuếch đại + Thời gian nạp của tụ + hệ số nhiệt độ

TACQ = TAMP + TC + TCOFF

= 2às + TC +[(Nhiệt độ - 250C)(0.05/0C)]

= 19.72 às

4.5 Lựa chọn xung clock cho biến đổi A/D:

Thời gian chuyển đổi 1 bit được định nghĩa là chu kỳ TAD. Để biến đổi 10 bit chúng ta cần thời gian xấp xỉ 12TAD . Nguồn xung clock cung cấp cho ADC được lựa chọn bằng phần mềm. Có 4 giá trị để lựa chọn:

- 2 Tosc - 8 Tosc - 32 Tosc

- Dao động nội RC của module ADC (2-6às)

Để đảm bảo quá trình ADC chính xác thì xung clock ADC (TAD) phải được lựa chọn để đảm bảo rằng giỏ trị tối thiểu của TAD là 1.6às.

Bảng sau đây chỉ ra môi liên hệ giữa TAD và tần số của thiết bị:

4.6 Cấu hình các chân Analog:

Các thanh ghi ADCON1 và TRIS điều khiển hoạt động của các chân ADC. Đối với cỏc chõn cần được quy định là ngừ vào Analog thỡ cỏc bit tương ứng trong thanh ghi TRIS phải được set, nếu cỏc bit trong thanh ghi TRIS bị xúa (output) thỡ cỏc ngừ ra số (VOH hoặc VOL) sẽ được chuyển đổi. Hoạt động của bộ ADC sẽ phụ thuộc vào trạng thái của các bit CHS2:CHS0 và các bit trong thanh ghi TRIS.

4.7 Chuyển đổi ADC:

Việc xóa bit GO/DONE trong quá trình chuyển đổi sẽ bỏ qua chuyển đổi hiện tại.

Cặp thanh ghi kết quả chuyển đổi ADC sẽ không được cập nhật những mẫu chuyển đổi ADC đã hoàn tất. Do đó, cặp thanh ghi ADRESH và ADRESL sẽ chứa giá trị của lần chuyền đổi hoàn tất cuối cùng ( hoặc giá trị được ghi cuối cùng vào 2 thanh ghi này).

Sau khi một chuyển đổi ADC bị bỏ qua, việc lấy mẫu tiếp theo dựa trên kênh ADC đã chọn sẽ tự động diễn ra. Sau đó bit GO/DONE có thể được set để bắt đầu chuyển đổi ADC.

Chú ý: Bit GO/DONE không nên được set trong cùng một lệnh với lệnh mở module ADC.

Cặp thanh ghi ADRESH và ADRESL dùng để lưu kết quả ADC 10 bit. Module ADC cho phép ta lựa chọn việc canh trái hay canh phải kết quả 10 bit trong thanh ghi kết quả bằng cách xóa hoặc set bit ADFM. Các bit còn lại mang giá trị là 0.

4.8 Hoạt động của module ADC trong chế độ ngủ:

Module ADC có thể hoạt động trong chế độ ngủ (Sleep). Điều này yêu cầu nguồn xung clock cung cấp cho ADC phải từ dao động RC (ADCS1:ADCS0 = 11). Khi xung clock RC được chọn, module ADC sẽ đợi một chu kỳ máy trước khi bắt đầu tiến hành chuyển đổi ADC. Điều này cho phép lệnh SLEEP có thể được thực thi mà không gây nhiễu đến quá trình ADC. Khi chuyển đổi ADC hoàn tất, bit GO/DONE sẽ bị xóa và kết quả được lưu vào cặp thanh ghi ADRESH, ADRESL. Nếu ngắt ADC được cho phép, nó sẽ làm VĐK thoát khỏi chế độ ngủ. Nếu ngắt không được cho phép, module ADC sau đó sẽ bị tắt mặc dù bit ADCON vẫn còn ở mức cao.

Khi nguồn xung clock khác được chọn chứ không phải RC, lệnh SLEEP sẽ làm cho chuyển đổi ADC hiện tại bị bỏ qua và module ADC sẽ bị tắt dù bit ADCON vẫn còn đang ở mức 1.

4.9 Ảnh hưởng của Reset:

Một reset thiết bị sẽ buộc tất cả các thanh ghi rơi vào trạng thái Reset của chúng.

Điều này buộc module ADC bị tắt và bất kỳ chuyển đổi ADC nào cũng bị bỏ qua. Tất cả cỏc chõn ngừ vào A/D sẽ được cấu hỡnh là cỏc ngừ vào Analog.

Giá trị trong cặp thanh ghi ADRESH:ADRESL không bị thay đổi trong một Reset Power-on. Cặp thanh ghi này sẽ chứa một giá trị không biết trước sau reset Power-on.

Các thanh ghi và các bit liên quan đến module ADC:

CHƯƠNG V : ĐIỆN THẾ THAM CHIẾU VÀ CÁC BỘ SO

Một phần của tài liệu Đề tài Kit thực tập PIC 16F877A (Trang 57 - 63)

Tải bản đầy đủ (PDF)

(180 trang)