Hoạt động của bộ chuyển đổi ADC10

Một phần của tài liệu Những kiến thức cơ bản về MSP 430 (Trang 44 - 175)

IV. NGÀY HOÀN THÀNH NHIỆM VỤ :

2.1.6.1.1Hoạt động của bộ chuyển đổi ADC10

Kênh ADC10 chuyển đổi một tín hiệu tương tự sang tín hiệu số có độ dài 10 bit, kết quả chuyển đổi được lưu vào thanh ghi ADC10MEM. Sử dụng điện áp tham chiếu VR+ và VR- để xác định giới hạn trên và giới hạn dưới của bộ chuyển đổi. Kết quả chuyển đổi số có giá trị NADC = 03FFh khi đó Vinput > = VR+ (khi đầy) hoặc NADC = 0 khi Vinput< = VR-. Kết quả chuyển đổi được tính bằng công thức như sau:

Bộ chuyển đổi ADC10 được điều khiển bởi 2 thanh ghi ADC10CTL0 và ADC10CTL1. ADC10ON là bit cho phép chuyển đổi. Khi bạn muốn thay đổi

các giá trị điều khiển chuyển đổi bạn phải đặt ENC = 0. Khi điều chỉnh xong lưu ý set bit ENC = 1 để quá trình chuyển đổi bắt đầu.

2.1.6.1.2 Lựa chọn nguồn xung clock ADC10CLK:

Để lựa chọn nguồn xung điều khiển ta sử dụng bit ADC10SSELx. Có thể sử dụng bộ chia trước bắng bit ADC10DIVx. ADC10CLK có thể lấy xung từ các nguồn SMCLK, MCLK, ACLK hoặc sử dụng bội xung nội ADC10OSC phục vụ riêng cho nó.

Tần số chuyển đổi có thể lên tới 5-MHz, nhung giá trị này cũng tùy thuộc vào nguồn cấp, nhiệt độ và thay đổi do lập trình. Phải luôn cấp xung clock trong quá trình chuyển đổi, nếu ngắt nguồn xung bộ chuyển đổi không hoạt động hoặc kết quả chuyển đổi không chính xác.

Hình 15: Bộ đa hợp ngõ vào ADC10

Kênh chuyển đổi ADC10 có tất cả 12 ngõ vào tương tự, 8 ngõ vào tương tự ngoài và 4 ngõ vào nội, các ngõ vào được lựa chọn chuyển đổi bằng bộ đa hợp.

2.1.6.1.3 Lựa chọn kênh tương tự:

Các ngõ vào tương tự Ax, VeREF+, and VREF− + động thời cũng là các chân xuất/nhập. Các chân này là dạng cổng CMOS, khi được lựa chọn làm ngõ vào chuyển đổi có thể tạo ra dòng điện ký sinh có giá trị rất nhỏ từ Vcc về GND. Có thể cấm khuếch đại dòng ký sinh này bằng cách sử dụng bit ADC10Aex.

2.1.6.1.4 Điện áp tham chiếu:

Ta có thể lựa chọn điện áp tham chiếu nội bằng cách set bit REFON = 1, khi REFON = 0 lựa chọn điện áp tham chiếu ngoài VRFE+. Bit RFE2_5V lựa chọn giá trị điện áp tham chiếu nội. Khi REF2_5V = 1điện áp tham chiếu nội là 2.5 V. Khi REF2_5V = 0 điện áp tham chiếu nội là 1.5 V.

2.1.6.1.5 Đặc tính công suất thấp của điện áp tham chiếu nội:

Mọi thiết kế của MSP 430 đếu hướng tới tiêu chí tiết kiệm năng lượng. Kênh ADC10 tự chuyển sang chế độ tiết kiệm năng lượng khi điện áp tương tự ngõ vào không đổi, nó kích hoạt trở lại khi cần thiết. Khi không có nguồn xung clock dòng chuyển đổi bằng 0.

2.1.6.1.6 Thời gian lấy mẫu và chuyển đổi:

Bit SHTx được sử dụng để lựa chọn thời gian lấy mẫu, thời gian lấy mẫu có thể là 4, 8, 16 hoặc 64 chu kỳ xung, thời gian chuyển đổi là 13 chu kỳ xung.

Hình 16: Thời gian lấy mẫu

2.1.6.1.7 Tính toán thời gian lấy mẫu:

Khi SAMPCON = 0 tất cả các ngõ vào tương tự Ax đều ở trạng thái tổng trở cao. Khi SAMPCON = 1 tín hiệu tương tự ngõ vào được đưa qua một mạch lọc thông thấp RC. Sơ đồ tương đương như sau:

Nội trở của nguồn Rs và Ri ảnh hưởng đến thời gian lấy mẫu. Thời gian lấy mẫu tối thiểu có thể được tính theo phương trình sau đây:

Nếu Rs = 10kΩ thì thời gian lấy mẫu lớn hơn 2.47 µs.

Khi sử dụng bộ đệm tham chiếu trong chế độ burst thì thời gian lấy mẫu phải lớn hơn thời gian tính toán ở trên và thời gian thiết lập của bộ đệm.

Ví dụ, nếu điện áp tham chiếu ngoài VRef =1.5V, RS = 10 kΩ, tsample lớn hơn than 2.47µs, khi ADC10SR = 0, hoặc 2.5 µs khi ADC10SR = 1. Khi đó thời gian thiết lập của bộ đệm được tính toán như sau:

Trong đó SR: là tốc độ quét của bộ đệm.

2.1.6.1.8 Chế độ chuyển đổi:

Bộ chuyển đổi tương tự sang số ADC10 có 4 chế độ hoạt động được lựa chọn bằng bít CONSEQx.

2.1.6.1.9 Ngắt của ADC10:

Một ngắt được tạo ra do kênh ADC10, ADC10IFG được set khi bắt đầu quá trình chuển đổi, kết quả chuyển đổi được lưu vào ADC10MEM. Khi qua trình chuyển đổi hoàn thành cờ ngắt ADC10IFG sẽ tạo ra một ngắt, cờ ngắt tự động reset khi ngắt đã được phục vụ.

2.1.6.1.10 Các thanh ghi của ADC10:

Bảng 6: Thanh ghi ADC10

a) Thanh ghi điều khiển ADC10CTL0: Là thanh ghi 16 bit có sơ đồ như sau: (adsbygoogle = window.adsbygoogle || []).push({});

+ Trong đó SREFx 15-13 lựa chọn điện áp tham chiếu:

+ SHTx là bit lựa chọn thời gian lấy mẫu và giữ:

+ ADC10SR Bit 10 là bít lựa chọn tốc độ lấy mẫu: Bit = 1 tốc độ ~ 50 ksps

Bit = 0 tốc độ ~200 ksps

+ REFOUT Bit 9 Ngõ ra tham chiếu: Bit = 0 Ngõ ra tham chiếu off

Bit = 1 Ngõ ra tham chiếu on

+ REF2_5V Bit 6 Lựa chọn điện áp tham chiếu: Bit = 0 Vref = 1.5 V

Bit = 1 Vref = 2.5 V + ADC10ON Bit 4:

Bit = 0 ADC10 off Bit = 1 ADC10 on

+ ADC10IE Bit 3 Cho phép ngắt ADC10: Bit = 0 cấm ngăt

Bit = 1 cho phép ngắt + ADC10IFG Bit 2 Cờ ngắt:

Bit =0 báo không có ngắt nào đợi phục vụ Bit = 1 Báo có ngắt đợi phục vụ

+ ENC Bit 1 Bít cho phép chuyển đổi: Bit = 0 cấm chuyển đổi

Bit =1 cho phép chuyển đổi b)Thanh ghi điều khiển ADC10CTL1:

+ SSELx Bit 4-3 Lựa chọn nguồn xung clock

c)Thanh ghi lưu kết quả chuyển đổi ADC10MEM:

Kết quả 10 bit chuyển đổi được lưu trữ bên phải. Bit 9 là MSB. Bit 10-15 luôn luôn là 0.

2.1.6.2 Kênh chuyển đổi ADC12:

ADC12 là kênh chuyển đổi 12 bít có các đặc tính như sau: + Tốc độ chuyển đổi lớn hơn 200-ksps.

+ Bộ chuyển đổi 12 bit đơn không bị lỗi mã.

+ Lấy mẫu và chốt với thời gian lấy mẫu được lập trình.

+ Quá trình chuyển đổi được khởi tạo bằng phần mềm hoặc Timer_A, Timer_B.

+ Có thể sử dụng phần mềm để lựa chọn điện áp tham chiếu (1.5V hoặc 2.5V).

+ Có thể lựa chọn điện áp tham chiếu nội hoặc điện áp tham chiếu ngoài. + Có 8 kênh đầu vào tương tự, riêng với MSP 340x22xx có tới 12 kênh đầu vào tương tự.

+ Các kênh chuyển đổi cho cảm biến nhiệt độ bên trong, Vcc, và điện áp tham chiếu ngoài.

+ Lựa chọn nguồn xung clock.

+ Tự động điều khiển quá trình huyển đổi dữ liệu và lưu kết quả chuyển đổi, thanh ghi lưu kết quả chuyển đổi là thanh ghi 16 bit.

Hình 18: Sơ đồ khối của kênh chuyển đổi tương tự sang số ADC12

Tính toán kết quả chuyển đổi sử dụng công thức:

2.1.6.2.1 Lựa chọn nguồn xung: (adsbygoogle = window.adsbygoogle || []).push({});

Để lựa chọn nguồn xung điều khiển ta sử dụng bit ADC12SSELx. Có thể sử dụng bộ chia trước bắng bit ADC12DIVx. ADC12CLK có thể lấy xung từ các nguồn SMCLK, MCLK, ACLK hoặc sử dụng bội xung nội ADC12OSC phục vụ riêng cho nó.

Tần số chuyển đổi có thể lên tới 5-MHz, nhung giá trị này cũng tùy thuộc vào nguồn cấp, nhiệt độ và thay đổi do lập trình. Phải luôn cấp xung clock trong quá trình chuyển đổi, nếu ngắt nguồn xung bộ chuyển đổi không hoạt động hoặc kết quả chuyển đổi không chính xác.

Hình 19: Bộ đa hợp ngõ vào ADC12

Kênh chuyển đổi ADC12 có tất cả 12 ngõ vào tương tự, 8 ngõ vào tương tự ngoài và 4 ngõ vào nội, các ngõ vào được lựa chọn chuyển đổi bằng bộ đa hợp.

2.1.6.2.2 Điện áp tham chiếu:

Ta có thể lựa chọn điện áp tham chiếu nội bằng cách set bit REFON = 1, khi REFON = 0 lựa chọn điện áp tham chiếu ngoài VRFE+. Bit RFE2_5V lựa chọn giá trị điện áp tham chiếu nội. Khi REF2_5V = 1điện áp tham chiếu nội là 2.5 V. Khi REF2_5V = 0 điện áp tham chiếu nội là 1.5 V.

2.1.6.2.3 Ngắt ADC12:

Kênh ADC12 có 18 nguồn ngắt bao gồm: + ADC12IFG0-ADC12IFG15.

+ Tràn ADC12IFG0-ADC12IFG15.

+ Tràn thời gian chuyển đổi ADC12TOV, ADC12.

Khi quá trình chuyển đổi hoàn thành bít ADC12IFGx được set và kết quả chuyển đổi được lưu vào thanh ghi ADC12IFGx. Khi đó một ngắt được tạo ra.

2.1.6.2.3 Các thanh ghi điều khiển ADC12:

Thanh ghi điều khiển ADC12CTL0:

\

2.1.7 Kênh chuyển đổi số sang tương tự DAC12:

Là kênh chuyển đổi 12 bit. Tuy nhiêu nó có thể được cấu hình 8 bit hoặc 12 bit.

Những đặc tính của kênh chuyển đổi DAC12 bao gồm:

+ Có thể sử dụng điện áp tham chiếu nội và điện áp tham chiếu ngoài. + Độ phân giải 8 hoặc 12 bit.

+ Lập trình thời gian và công suất nguồn.

+ Khả năng cập nhật dữ liệu đồng bộ cho nhiều kênh DAC.

2.1.7.1 Hoạt động của kênh chuyển đổi DAC12:

Kênh chuyển đổi số sang tương tự DAC12 có thể cấu hình để hoạt động ở chế độ 8 bit hoặc 12 bit bằng cách sử dụng bit DAC12RESx. Bit DAC12IR lựa chọn điện áp tham chiếu. Bít DAC12 cho phép người sử dụng lựa chọn dữ liệu kiểu nhị phân tiêu chuẩn hay 2s-compliment.

Khi sử dụng kiểu định dạng dữ liệu kiểu nhị phân tiêu chuẩn, điện áp đầu ra được tính như sau:

Trong chế độ 8 bit, giá trị lớn nhất của DAC12_xDAT là 0FFh. Trong chế độ 12 bit giá trị tối đa của DAC12_xDAT là 0FFFh.

2.1.7.2 Điện áp tham chiếu của kênh DAC12:

Có thể lựa chọn điện áp tham chiếu ngoài hoặc điện áp tham chiếu nội với 2 mức điện áp tham chiếu 1.5 V và 2.5 V. Điện áp tham chiếu được lựa chọn bằng bit DAC12SREFx. Khi DAC12SREFx = {0,1} sử dụng điện áp tham chiếu VREF+

DAC12SREFx = {2,3} sử dụng điện áp VeREF+ .

2.1.7.3 Ngắt của DAC12:

Vector ngắt của DAC 12 được chia sẻ với bộ điều khiển DMA, vì vậy để xác định nguyên nhân gây ra ngắt bạn phải kiểm tra cờ ngắt DAC12IFG và DMAIFG.

Bit DAC12IFG được set khi DAC12LSELx > 0 và dữ liệu DAC12 được chốt. Khi DAC12LSELx = 0 Bit DAC12IFG không được set. (adsbygoogle = window.adsbygoogle || []).push({});

Việc set bit DAC12IFG chỉ định rằng DAC12 sẵn sàng cho quá trình chuyển đổi mới. Nếu cả 2 bít DAC12IFG và GIE được set sẽ tạo ra một tín hiệu ngắt. Cờ ngắt DAC12IFG không tự động reset bạn phải đặt lại nó bằng phần mềm.

2.1.7.4 Các thanh ghi DAC12:

a)Thanh ghi điều khiển DAC12_xCTL:

+ DAC12OPS Bit 15 lựa chọn ngõ ra DAC12:

Bit = 0 ngõ ra DAC12_0 là chân P6.6, ngõ ra DAC12_1 là chân P6.7. Bit = 1 ngõ ra DAC12_0 là chân VeREF+, ngõ ra DAC12_1 là chân P6.5.

+ SREFx Bít 14-13: Lựa chọn điện áp tham chiếu: 00 VREF+

01 VREF+

10 VeREF+

10 VeREF+

+ RES Bit 12: Lựa chọn độ phân giải: Bit = 0 : Độ phân giải 12 bit

Bit = 1 : Độ phân giải 8 bit + CALON Bit 9: Bit hiệu chỉnh trên:

Bit = 0: Không hiệu chỉnh Bit = 1: Tiến hành hiệu chỉnh

+ DAC12IR Bit 8: Bit dùng để set điện áp tham chiếu ngõ vào và phạm vi điện áp ra:

Bit = 0: Nhân 3 điện áp tham chiếu

Bit = 1: Giữ nguyên giá trị điện áp tham chiếu

+ DAC12DF Bit4: Định dạng dữ liệu DAC12: Bit = 0 Dữ liệu kiểu nhị phân

Bit = 1 Dữ liệu kiểu bù 2 (2’s complement) + DAC12IE Bit3: Cho phép ngắt DAC12:

Bit = 0 Cấm ngắt Bit = 1 cho phép ngắt

+ DAC12IFG Bit 2: Cờ ngắt DAC12: Bit = 0 Không có ngắt nào chờ Bit = 1 Có ngắt đang chờ phục vụ

+ DAC12ENC Bit 1: Cho phép chuyển đổi DAC12, khi bit DAC12ENC > 0 cho phép chuyển đổi, khi DAC12ENC = 0 không cho phép chuyển đổi. b)Thanh ghi dữ liệu DAC12_xDAT:

+ DAC12_xDAT là thanh ghi 16 bit. Trong đó Bit 15-12 không sử dụng những bit này luôn bằng 0.

2.1.8 Hệ thống xung clock và bộ phát xung:

Hệ thống xung clock của MSP 430f2274 được chia thành nhiều khối khác nhau, mối module sẽ cung cấp xung clock cho các khối ngoại vi ứng dụng tương ứng.

MSP 430 được thiết kế để đáp ứng yêu cầu tiết kiệm năng lượng nên thạch anh ngoài được sử dụng có tần số 32768 HZ. Nhưng chúng ta có thể thay đổi tần số hoạt động bằng bộ điều khiển tần số dao động DCO(DCO_digitally-controlled oscillator).

Trong đó MCLK: Là xung clock sử dụng cho CPU.

SMCLK: Hệ thống xung clock sử dụng cho các module ngoại vi.

2.1.8.1 Thanh ghi điều khiển DCOCTL:

DCOx : Bit 7-5 là bít lựa chọn tần số xung. Có 8 giá trị xung khác nhau được định nghĩa nhơ thanh ghi RSELx <Trang 299_slau144>

MODx : Bit 4-0 BIT lựa chọn bộ điều chế. Những bit này thường được định nghĩa để sử dụng tần số fDCO+1 trong khoảng thời gian là 32 chu kỳ. Khoảng thời gian còn lại (32-MDO) tần số fDCO được sử dụng. Không thể sử dụng các bít này khi DCOx=7.

2.1.8.2 Thanh ghi điều khiển hệ thống xung BCSCTL1: (adsbygoogle = window.adsbygoogle || []).push({});

+ XT2OFF Bit 7: Bit điều khiển bộ phát xung XT2: Bit =0 XT2 on

Bit = 1 XT2 off. Nếu nó không được sử dụng cho MCLK hoặc SMCLK + XTSBit 6: Là bít lựa chọn chế độ:

Bit = 0 lựa chọn chế độ tần số thấp Bit = 1 lựa chọn chế độ tần số cao

+ DIVAx Bit 5-4: Các bít lựa chọn bộ chia cho ACLK 00 /1

01 /2 10 /4 11 /8

+ RSELx Bit 3-0 Lựa chọn dải tần số. Có sẵn 16 dải tần số khác nhau. Giá trị dải tần số thấp nhất được lựa chọn khi RSELx = 0. Bít RSEL3 được bỏ qua khi DCOR=1.

2.1.8.3 Thanh ghi điều khiển BCSCTL2:

+ SELMx Bit 7-6 Bít lựa chọn nguồn xung cho MCLK: 0 DCOCLK

1 DCOCLK

10 2CLK khi bộ phát xung XT2 có sẵn trên chíp. LFXT1CLK hoặc VLOCLK khi bộ phát xung XT2 không có sắn trên chíp. 11 FXT1CLK hoặc VLOCLK

+ DIVMx Bit 5-4 Bít lựa chọn bộ chia cho MCLK: 00 /1

01 /2 10 /4 11 /8

+ SELS Bit3 Bit lựa chọn nguồn SMCLK: Bit =0 DCOCLK

Bit = 1 XT2 khi bộ phát xung XT2 có sẵn trên chíp. LFXT1CLK hoặc VLOCLK khi bộ phát xung XT2 không có sẵn trên chíp

+ DIVSx Bit 2-1 Bít lựa chọn bộ chia cho SMCLK : 00 /1

01 /2 10 /4 11 /8

+ DCOR Bit 0 Bít lựa chọn điện trở DCO: Bit = 0 Điện trở nội

2.1.8.4 Thanh ghi cho phép ngắt IE1:

OFIF BIT 1 Bit =1 Cho phép ngắt

Bit =0 Không cho phép ngắt Các bít còn lại được sử dụng cho module khác.

2.1.8.5 Thanh ghi cờ ngắt:

OFIFG Bit 1 Bit =0 Không có ngắt nào đang được phục phụ Bit =1 Có ngắt đang được phục vụ

2.2 Mođun eZ430-RF2500:

2.2.1 Công cụ phát triển eZ430-RF2500: 2.2.1.1 eZ430-RF2500:

eZ430-RF2500 Là một thẻ giao tiếp USB và truyền nhận dữ liệu không dây. eZ430-RF2500 được phát triển dựa trên MSP 430F2274 kết hợp với chíp CC2500 truyền nhận tín hiệu tần số RF 2.4 GHz, tích hợp sẵn cảm biến nhiệt độ. Do đặc điểm dòng MSP 430 có những ưu thế về năng lượng nên đáp ứng được những nhu cầu trong thiết bị di động. MSP430 dùng nguồn 3.6V nên trong thiết kế này có thể sử dụng pin Lithiun 3.7 V.

Bộ eZ430-RF2500T là một sản phẩm có thể làm việc với đầu cắm USB như một hệ thống độc lập với cảm biến bên ngoài. Hoặc sử dụng thiết kế mở rộng với những module ngoại vi. Với Giao diện gỡ lỗi USB cho phép sản phẩm có thể truyền và nhận dữ liệu từ xa từ máy tính cá nhân sử dụng truyền nhận nhận nối tiếp UART

Đặc tính của eZ430-RF2500: + Giao diện lập trình và gỡ lỗi. + Có sẵn 21 chân.

+ Mật độ tích hợp cao, MSP 430 có nguồn cực thấp siêu tiết kiệm năng lượng.

+ Hai chân xuất/ nhập kết nối với hai led xanh và đỏ cho phép người lập trình mô phỏng trực quan.

+ Một nút nhấn dùng để mô phỏng trực quan. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Những kiến thức cơ bản về MSP 430 (Trang 44 - 175)