Hãy tìm hiểu về ADC trong LPC2148 ARM7 Microcontroller. Vi điều khiển là rất hữu ích đặc biệt là khi nói đến giao tiếp với các thiết bị khác, chẳng hạn như cảm biến, động cơ, thiết bị chuyển mạch, bộ nhớ và thậm chí cả vi điều khiển khác. Như chúng ta đều biết nhiều phương thức giao diện đã được phát triển qua nhiều năm để giải quyết vấn đề phức tạp về cân bằng nhu cầu về tính năng, chi phí, kích thước, mức tiêu thụ điện năng, độ tin cậy vv nhưng bộ chuyển đổi ADC Analog-to-Digital vẫn nổi tiếng. Interfacing cảm biến analog sử dụng ADC là kỹ thuật đơn giản và hiệu quả để đọc dữ liệu từ cảm biến. Chúng ta hãy xem xét những điều cơ bản và sau đó chúng ta sẽ xem xét dự án ví dụ thế giới thực.
ADC & Nghị quyết của nó là gì?
Analog to Digital Converter (ADC) được sử dụng để chuyển đổi tín hiệu analog / điện áp thành số tương đương của nó để vi điều khiển có thể xử lý các số đó và làm cho nó có thể đọc được. ADC đặc trưng bởi độ phân giải. Độ phân giải của ADC cho biết số lượng các giá trị số. Chúng ta hãy lấy ví dụ: Trong LPC2148 vi điều khiển chúng ta có trong xây dựng 10-bit ADC. Vì vậy, đối với độ phân giải 10-bit ADC là 10-bit và giá trị tối đa sẽ là 2 10 = 1024 . Điều này có nghĩa là giá trị số hoặc mức rời rạc của chúng tôi nằm trong khoảng từ 0 đến 1023 . Có một thuật ngữ quan trọng hơn để hiểu trong khi giao dịch với ADC và nó là kích thước bước. Cỡ bước chânlà sự thay đổi tối thiểu trong điện áp đầu vào có thể được giải quyết bằng ADC. Khái niệm về kích thước bước được liên kết chặt chẽ với độ phân giải của ADC.
Vì vậy, trong trường hợp này chúng ta có thể đo tối thiểu 2,23 mV (xấp xỉ) với vi điều khiển của chúng tôi. Đây là cách kích thước bước xác định độ chính xác của mạch ADC.
Giới thiệu: ADC trong LPC2148 vi điều khiển ARM7
Các ADC trong LPC2148 ARM7 Vi điều khiển là 10-bit xấp xỉ kế analog để chuyển đổi kỹ thuật số . Các tính năng được liệt kê dưới dạng:
- LPC2148 có hai mô đun ADC sẵn có , được đặt tên là ADC0 & ADC1 .
- ADC0 có 6 kênh (AD0.1-AD0.6) .
- ADC1 có 8 kênh (AD1.0-AD1.7) .
- Tần số hoạt động của ADC là 4,5 MHz (cực đại) , tần số hoạt động quyết định thời gian chuyển đổi.
- Hỗ trợ chế độ tắt nguồn.
- Chế độ chuyển đổi Burst cho một hoặc nhiều đầu vào.
Có một số thanh ghi liên kết với tính năng ADC nhưng chúng tôi sẽ chủ yếu thảo luận về Đăng ký điều khiển ADC (ADCR) và đăng ký dữ liệu toàn cầu của ADC (ADGDR) . Để biết thêm chi tiết về mô tả đăng ký, hãy giữ bảng dữ liệu trong tay UM10130, Chương 19 .
Hãy xem bảng minh họa các kênh và chân liên quan đến ADC:
Đăng ký ADC trong Bộ vi điều khiển LPC2148
Có một số thanh ghi sẽ được sử dụng để thiết lập và cấu hình tính năng ADC trong LPC2148. Hai thanh ghi chúng ta sẽ liên quan đến: ADCR (A / D Control Register) và ADGDR (A / D Global Data register).
Tên đăng ký | Chức năng |
ADCR | A / D Control Register : Đăng ký ADCR phải được ghi để chọn chế độ hoạt động trước khi chuyển đổi A / D có thể xảy ra. |
ADGDR | A / D Đăng ký dữ liệu toàn cầu: Thanh ghi này chứabit DONE của ADCvà kết quả của chuyển đổi A / D gần đây nhất. |
ADSTAT | Đăng ký trạng thái A / D: Thanh ghi này chứa cờ DONE và OVERRUN cho tất cả các kênh A / D, cũng như cờ ngắt A / D. |
ADGSR | A / D Đăng ký Bắt đầu Toàn cầu: Địa chỉ này có thể được viết (trong dải địa chỉ AD0) để bắt đầu chuyển đổi trong cả hai trình chuyển đổi A / D cùng một lúc. |
ADINTEN | A / D Interrupt Enable Register: Thanh ghi này chứa các bit kích hoạt cho phép cờ DONE của mỗi kênh A / D được bao gồm hoặc loại trừ khỏi việc đóng góp cho việc tạo ra ngắt A / D. |
ADDRx | Kênh A / D x Dữ liệu: 'x' thay đổi từ 0 đến 7 |
Các bước lập trình: ADC trong LPC2148 vi điều khiển ARM7
- Định cấu hình pin đầu vào làm chân đầu vào tương tự cho khối ADC
- Chọn kênh chúng tôi muốn sử dụng trong chuyển đổi của mình
- Chọn đồng hồ để chuyển đổi và bắt đầu chuyển đổi
- Đợi chuyển đổi hoàn tất
- Đọc kết quả chuyển đổi 10 bit
- Chuyển đổi kết quả này, tức là đầu ra ADC thành số thập phân
- Hiển thị đọc trên trình mô phỏng nối tiếp hoặc thiết bị hiển thị
Dự án ví dụ: Trong dự án ví dụ này, chúng tôi sẽ sử dụng POT 10K để cung cấp đầu vào tương tự tại ADC Channel 0 tức là Pin P0.28 của Bộ vi điều khiển LPC2148. Để đọc số ADC từ POT, chúng ta sẽ cấu hình UART0 của LPC2148 và đọc dữ liệu trên trình mô phỏng đầu cuối (PuTTY). Khi chúng ta thay đổi sức đề kháng của POT, sự thay đổi về số lượng ADC sẽ phản ánh trên thiết bị đầu cuối PuTTY trong thời gian thực. Kết nối mạch được hiển thị dưới dạng:
CƠ BẢN CIRCUIT: ADC trong LPC2148 vi điều khiển ARM7
Mã nguồn: ADC trong LPC2148 vi điều khiển ARM7
Dự án được kiểm tra và hoạt động đầy đủ. Chúng tôi chỉ phải biên dịch và tải về hex tập tin vào LPC2148 Vi điều khiển. Để xem đầu ra trên máy tính, chúng ta sẽ phải cấu hình PuTTY để thiết lập giao tiếp nối tiếp để đọc kết quả ADC trên PuTTY.
QUAN TRỌNG: Sau khi tải tập tin .hex, Hãy chắc chắn rằng bạn không vào chế độ ISP. Chúng tôi sẽ sử dụng cùng một UART0 cho lập trình cũng như để nhận kết quả ADC. Trong trường hợp nếu bạn đang sử dụng STK2148-UltraLite Board thì tắt SW7 switch để đọc dữ liệu ADC trên PuTTY.
Khi chúng tôi đã thực hiện xong tất cả các cài đặt, chỉ cần mở bảng điều khiển. Và chúng tôi sẽ bắt đầu nhận kết quả ADC trên PuTTY, được gửi bởi LPC2148 Microcontroller. Đây là một đầu ra từ dự án của chúng tôi:
Đây là cách chúng ta có thể lập trình ADC nội bộ trong LPC2148 ARM7 Microcontroller để đọc đầu vào tương tự từ bất kỳ thiết bị nào. Trong bài sau, chúng ta sẽ khám phá các chủ đề như nhiều ADC và ADC bên ngoài interfacing vv. Chúng tôi hy vọng bài viết này sẽ giúp bạn có được ADC của bạn lên chạy
Không có nhận xét nào:
Đăng nhận xét