a) Giới thiệu
Bộ ADC là một trong những ngoại vi quan trọng của bộ điều khiển nhúng. Nó tạo ra một giao diện quan trọng giữa bộ điều khiển và thế giới thực. Hầu hết các tín hiệu vật lý nhƣ nhiệt độ, độ ẩm, áp suất, tốc độ, gia tốc là những tín hiệu tƣơng tự nằm trong dải từ Vmin đến Vmax ví dụ 0 đến 3v. Mục đích của bộ ADC là chuyển đổi tín hiệu tƣơng tự sang tín hiệu số .Mối quan hệ giữa điện áp đầu vào tƣơng tự và đầu ra số là:
REF- REF- * (V V ) V 2 1 REF in n D V
VREF+và VREF- là điện áp tham chiếu đƣợc sử dụng để giới hạn dải điện áp tƣơng tự. Bất kỳ điện áp đầu vào nào vƣợt quá điện áp cho phép thì sẽ tạo ra một số digital bão hòa. Trong trƣờng hợp của C28x là 0 đến 3v .Bộ ADC của c28x là 12bit ( n=12 ) do đó
*3.0 4095
in
D V
V
Hầu hết các tín hiệu ứng dụng đòi hỏi không chỉ l tín hiệu tƣơng tự đầu vào để chuyển đổi thành tín hiệu số ,mạch vòng điều khiển thƣờng yêu cầu nhiều hơn một tín hiệu từ các cảm biến khác nhau do đó C28x đƣợc trang bị với 16 chân ADC đầu vào chuyên dụng để đo điện áp tƣơng tự . 16 chân tín hiệu này đƣợc xử lý tuần tự từng kênh hoặc 2 kênh một lúc. Đặc điểm modul ADC của C28x nhƣ sau [6]
- Độ phân giải 12 bit
- 16 kênh đầu vào ( 0-3v) .Hai bộ dồn kênh cho phép lấy mẫu hai kênh một lúc - Chế độ lấy mẫu nối tầng ( cascaded) và Dual Sequencer
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- 16 thanh ghi lƣu trữ kết quả
- Nhiều nguồn kích hoạt chuyển đổi ( kích hoạt bên ngoài, S/W và bộ quản lý sự kiện ) Bộ ADC của C28x sẽ tự động sắp xếp và lấy mẫu 16 kênh. Có nghĩa là bộ ADC tự động chuyển đổi kênh tiếp theo khi kênh trƣớc đó đã thực hiện xong, có thể kích hoạt một ngắt khi chuỗi chuyển đổi này đƣợc thực hiện xong.
Thời gian chuyển đổi nhanh nhất là 80ns cho mỗi mẫu trong trình tự chuyển đổi bắt đầu từ mẫu thứ 2 và 160ns cho mẫu đầu tiên. Việc khởi động chuỗi chuyển đổi có thể bắt đầu từ các nguồn sau - Bằng phần mềm : Đặt bit start lên 1
- Bằng tín hiệu ngoài : “ADCSOC”
- Bằng sự kiện ( chu kỳ,so sánh,tràn dƣới ) của modul quản lý sự kiện A và B. b) ADC trong chế độ nối tầng ( cascaded)
Hình 1. 15 Modul ADC trong chế độ nối tầng
Hình vẽ trên cho thấy sơ đồ khối của bộ ADC ở chế độ tuần tự “Cascaed mode”. Một bộ tự động chuyển mạch sẽ thực hiện lấy mẫu tuần tự. Trƣớc khi bắt đầu thực hiện chuyển đổi cần phải thiết lập thứ tự chuyển đổi (“MAX_CONV1”) và những line đầu vào chuyển đổi (“CHSELxx”). Các kết quả đƣợc đƣa vào các thanh ghi (“RESULTO” đến “RESULT15” ) tƣơng ứng với mỗi kênh.
Chế độ lấy mẫu có thể đƣợc thực hiện đồng thời hay tuần tự . Trong trƣờng hợp lấy mẫu đồng thời cả hai s&hs đƣợc sử dụng song song. Hai line đầu vào cùng với các kênh tƣơng ứng (ví dụ ADCINA3 và ADCINB3) đƣợc chuyển đổi cùng một lúc bởi CHSCL00. Trong chế độ tuần tự “sequentinal mode” các line đầu vào có thể kết nối với tầng bất kỳ của khối auto sequencer. Việc kích hoạt một trình tự chuyển đổi có thể sử dụng phần mềm bằng cách thiết lập một bit cụ thể, hay bằng các sự kiện cụ thể
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
trên phần cứng. Đặc biệt việc kết hợp với bộ định thời làm cho chu kỳ lấy mẫu rất chính xác. Đây là điều kiện rất quan trong trong điều khiển và xử lý tín hiệu số.
c) ADC trong chế độ Dual Sequencer (là chế độ hoạt động thứ 2)
Chế độ Dual Sequencer bộ lấy mẫu tự động đƣợc tách thành 2 tầng (“SEQ1” và “SEQ2”). Trong chế độ này sử dụng EVA để kích hoạt cho SEQ1 và EVB cho SEQ2. Kết quả chuyển đổi đƣợc lƣu trữ trong RESULT0 đến RESULT7 cho SEQ1 và RESULT8 đến RESULT15 cho SEQ2. Trong trƣờng hợp kích hoạt SEQ1 và SEQ2 cùng một lúc thì sự kiện nào có quyền ƣu tiên cao hơn sẽ đƣợc xử lý trƣớc. Ở đây SEQ1 có quyền ƣu tiên cao hơn, việc bắt đầu SEQ2 sẽ đƣợc thực hiện sau SEQ1.
Hình 1. 16 Modul ADC trong chế độ Dual Sequencer
d) Thời gian chuyển đổi ADC
Hình 1. 17 Thiết lập nguồn xung 25MHZ cho modul ADC
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trƣớc tiên các nguồn xung clock cơ bản của ADC là bắt đầu từ HSPCLK mà không thể dử dụng bất kỳ nguồn xung clock nào khác. Xung clock này có nguồn gốc từ bộ dao động bên ngoài, bộ nhân PLLCR và bộ chia HISPCP.
Thứ hai là tần số tối đa cho “FCLK” là đầu vào của các bộ phận trong modul ADC hạn chế ở tần số 25MHZ.
Để điều chỉnh xung clock này cần khởi tạo các bit ADCCLKPS” cho phù hợp. Bit “CPS” để lựa chọn một bộ chia 2.
Xung clock “ADCCL1” là thời gian cơ sở cho các bọ phận xử lý bên trong khối ADC.
Một hạn chế thứ ba là cửa sổ lấy mẫu đƣợc điều khiển bằng các “ACQ_PS”. Nhóm các bit xác định chiều dài cửa sổ đƣợc sử dụng giữa các swich dồn kênh và thời gian lấy mẫu điện áp đầu vào. Thời gian này phụ thuộc vào trở kháng của của tín hiệu vào vì vậy nó phụ thuộc vào phần cứng ngƣời lập trình không thể chỉ định một khoảng thời gian lấy mẫu tối ƣu cho tất cả các ứng dụng.
e) Các thanh ghi điều khiển modul ADC
Ba thanh ghi điều khiển “ADCCTL1 đến 3” đƣợc sử dụng để thiết lập một trong những điều kiện hoạt động của ADC. Thanh ghi “ADCST” thể hiện trạng thái của ADC.
Hình 1. 18 Các thanh ghi modul ADC
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1. 19 Byte cao thanh ghi ADC Control 1
- Bit 14 “ RESET” có thể sử dụng để reset toàn bộ các bộ phận trong modul ADC trở về trạng thái thiết lập, rất tốt trong thực tế để reset lệnh trƣơc khi thiết lập ADC.
- Bit 12 và 13 định nghĩa sự tác động qua lại ADC và lệnh emulator. - 4 bit tiếp theo định nghĩa độ dài cửa sổ lấy mẫu .
Hình 1. 20 Byte thấp thanh ghi ADC Control 1 - “CPS” đƣợc sử dụng để chia tần số đầu vào cho một hoặc cho 2.
- Bit 6 (“CONT_RUN”) định nghĩa quá trình tự động sắp xếp dãy chuyển từ khi bắt đầu đến khi kết thúc một cách tuần tự ( =0 ) và đợi cho đến khi kích hoạt nếu dãy đƣợc bắt đầu lại ( = 1).
- Bit 5 (“SEQ1_OVRD”) Định nghĩa hai tùy chọn khác nhau cho chế độ chạy liên tục. - 4 bit sau cùng định nghĩa chế độ bộ sắp xếp dãy để 1 tầng (16line) (=1) hay 2 tầng (8line cho mỗi tầng ) (=0).
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nửa trên của thanh ghi ADCTRL2 tác dụng điều khiển các chế độ hoạt động của dãy 1. - Bit 15 “EVB_SOC_SEQ” (bít cờ chỉ đọc) nếu bộ quản lý sự kiện B kích hoạt chuyển đổi.
- Bit 14 “RST_SEQ1” đƣợc sử dụng để reset state machine của SEQ1 về trạng thái ban đầu. Đây là cách để kích hoạt tiếp theo đƣợc bắt đầu lại từ CHSELSEQ1.
- Đặt bit 13 “SOC_SEQ1” lên 1 để kích hoạt chuyển đổi bằng phần mềm.
- Bit 11 và bit 10 định nghĩa các chế độ ngắt của SEQ1, có thể yêu cầu ngắt sau mỗi chuyển đổi hay các chuỗi khác nhau.
- Bit 8 “EVA_SOC_SEQ1” là bit đánh dấu cho phép hay không cho phép bộ quản lý sự kiện A kích hoạt chuyển đổi.
Hình 1. 21 Byte cao thanh ghi ADC Control 2
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Byte thấp của ADCTRL2 để điều khiển dãy SEQ2. Bit 7 là cờ chỉ ra sự kiện trên chân “ADCSOC” là nguyên nhân gây ra chuyển đổi, các bit còn lại giống với nửa trên. ADC control Register 3
Hình 1. 23 Thanh ghi ADC control Register 3 ADC MAXCONV Register
Hình 1. 24 Thanh ghi ADC MAXCONV
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1. 25 Thanh ghi ADC Input Channel Select Sequencing Control Register