Đo điện áp VDD-in của PIC với ADC


8
  • Bộ xử lý: PIC18F66K22
  • Trình biên dịch: C18 (XC8 cũng tốt)

Tôi vừa tạo mã (và thử nghiệm thành công) để đo điện áp trên chân analog AN4.

Bây giờ tôi muốn thử một cái gì đó khác, không chắc chắn về mặt lý thuyết là có thể.

Bảng thử nghiệm của tôi có bộ xử lý PIC, với VDD, AVVD được kết nối với nguồn cung cấp (từ 0 (nếu pin hết / ngắt kết nối) đến 4.2 (pin đầy).

Tôi có thể sử dụng ADC để đo VDD (-in) của hội đồng quản trị của mình không?

Tại sao không?:

  • Đó không phải là chân ANx, không biết làm thế nào để đo ADC? (Kênh?)
  • Nếu điện áp trên VDD (-in) giảm, điện áp tham chiếu ADC của tôi cũng giảm? (Vì vậy, khi PIC của tôi chỉ nhận được 3,3V, ADC vẫn sẽ nói là 100% (như điện áp tối đa trên chip, cũng là tham chiếu là 3,3V).

Tại sao / bạn hỏi gì?:

  • Tôi chỉ có thể đo Kênh 30 (VDDCORE)?
  • Tôi có thể đặt Vref của mình thành Vdd và đo tham chiếu điện áp chính xác bằng bộ chuyển đổi A / D. (Không biết làm thế nào)
  • Hoặc tôi có thể thêm một dây từ VDD-in vào chân ANx?

  • VREF + nội bộ (4.096V) sẽ ở mức 4 + V khi VDD-in khoảng 3,4V? Có một số loại biến đổi làm cho nó như vậy?

  • VREF + bên trong (4.096V) thấp hơn một chút so với mức tối đa của pin (4.2V), điều này có nghĩa là tôi có thể làm hỏng ADC? Hoặc chỉ là kết quả sẽ tối đa khi pin đầy. (4.2V trong số 4.096V)

Xin lưu ý rằng kiến ​​thức về Điện tử của tôi là "thấp". Tôi đã học được nhiều hơn về phần mềm trong giáo dục của mình, nhưng tôi muốn biết nhiều hơn về Điện tử (nhúng) vì đây là một phần quan trọng trong Kỹ thuật nhúng. (Thật buồn khi trường tôi không thấy điều này.)

Câu trả lời:


14

PIC đó có tham chiếu băng tần 1.024V bên trong, được chọn bằng cách đặt các bit Chọn kênh thành 11111.
Vì vậy, nếu bạn đặt tham chiếu mô-đun ADC của mình thành Vdd và sau đó yêu cầu nó đo độ tôn kính 1.024V, bạn có thể suy luận lại về Vdd của bạn thực sự Là.

Thông thường, bạn sẽ tìm ra điện áp trên một pin mà bạn đã có A2D với một cái gì đó như:
Vin = (ADCval / ADCrange) * Vref

Nhưng trong trường hợp này là Vin mà bạn biết (1.024v) và bạn muốn giải quyết cho Vref (Vdd của bạn), vì vậy:
Vref = (Vin * ADCrange) / ADCval
hoặc cụ thể hơn cho trường hợp của bạn:
Vdd = (1.024 * 4096) / ADCval


Tôi sẽ thử cái này! ((ngày mai) và đặt câu hỏi này làm câu trả lời nếu nó hoạt động) Một collegua khác chỉ ra rằng nó có "tham chiếu Bandgap" Cảm ơn bạn đã hiểu rõ về tính toán cho 'thang đo', không biết điều đó!
Paul

Hoàn hảo! Cảm ơn lý thuyết kết hợp với các chi tiết cụ thể, điều này đã được khắc phục trong vài phút, suy nghĩ & kiểm tra mất nhiều thời gian hơn khi phát triển thực tế (sau câu trả lời của bạn).
Paul
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.