Tôi có thể điều khiển một đầu ra điện áp từ một vi điều khiển không?


8

Tôi phải tạo ra các giá trị trong khoảng từ 0 V đến 0,8 V cho một mạch và lấy giá trị của đầu ra điện áp từ hệ thống và phân tích dữ liệu. Tôi có thể tự động tạo giá trị điện áp bằng vi điều khiển không? (Ví dụ: 0,05 V, 0,1 V, 0,15 V ...)

Nếu câu trả lời là có, tôi nên sử dụng vi điều khiển nào và bạn muốn giới thiệu những kỹ thuật nào?

Nếu câu trả lời là không, bạn có thể đề xuất phương tiện nào khác không?

Câu trả lời:


8

Có, tất cả các bộ vi điều khiển có một số cách để tạo ra tín hiệu điện áp được điều khiển bởi phần sụn. Phương pháp vũ lực dành cho vi mô bao gồm bộ chuyển đổi kỹ thuật số sang tương tự (D / A). Phần sụn ghi một số vào D / A và nó tạo ra điện áp tỷ lệ với số đó.

Một thông số quan trọng của D / As là số lượng có bao nhiêu bit. Điều này xác định độ phân giải của nó. D / A có thể tạo ra 2 N giá trị khác nhau khi có N bit trong số. Ví dụ, D / A 8 bit có thể tạo ra 256 mức điện áp khác nhau. Lưu ý rằng pin đầu ra kỹ thuật số thông thường có thể được coi là D / A 1 bit. Số có hai trạng thái 0 và 1 và điện áp đầu ra cao hoặc thấp.

Hầu hết các micros không đi kèm với D / Nhiều bit được tích hợp bởi vì có rất ít nhu cầu cho việc này. Thông thường chúng ta cố gắng chuyển đổi các giá trị tương tự sang kỹ thuật số càng sớm trong quá trình càng tốt, thực hiện các thao tác kỹ thuật số, sau đó kiểm soát mọi thứ bằng các xung. Thật bất thường khi muốn một micro tạo ra một điện áp tương tự. Ngay cả trong các ứng dụng như âm thanh mà bạn có thể nghĩ là vốn có về tín hiệu tương tự, mọi thứ thường được xử lý kỹ thuật số hoặc xung ở cuối. Về cơ bản đó là những gì một bộ khuếch đại lớp D.

Nếu bạn không muốn sử dụng một trong các nhóm micros có giới hạn có D / A tích hợp, bạn có thể thêm một bên ngoài. Ví dụ, có rất nhiều D / Như micro có thể lái xe buýt SPI.

Tuy nhiên, trừ khi bạn cần đầu ra tốc độ cao, thông thấp lọc đầu ra PWM của một kết quả vi mô trong một tín hiệu tương tự đẹp. Micros rất giỏi trong việc tạo ra các chuỗi được kiểm soát tốt và nhiều phần cứng được tích hợp cho mục đích này. Ví dụ, hãy xem xét một đầu ra kỹ thuật số có thể thay đổi sau mỗi 1 sóng (ở tốc độ 1 MHz). Giả sử bạn đã nhóm các lát cắt thời gian 1 nhóm thành các khối 1023. Đối với mỗi khối, bạn có thể có bất kỳ vị trí nào từ 0 đến 1023 trong số các lát cắt ở mức cao. Nếu bạn tính trung bình mức này, bạn sẽ nhận được một giá trị tương tự với 1024 mức có thể, đó là những gì bạn nhận được từ D / A 10 bit. Tín hiệu thô sẽ chứa giá trị trung bình bạn muốn, cộng với tần số cao bắt đầu từ 1 MHz / 1023 = 980 Hz. Bằng cách áp dụng một vài cực của bộ lọc thông thấp (một điện trở và tụ điện trên mỗi cực),

Loại A / D này có một số tính chất tốt ở chỗ nó rất tuyến tính, đơn điệu và không có sức mạnh của hai đầu ra trục trặc. Hạn chế duy nhất thường là băng thông. Đối với một vài điện trở và tụ điện đơn giản hình thành bộ lọc thông thấp, có lẽ bạn không thể nhận được tín hiệu tương tự nhanh hơn sau đó vài 10 Hz.

Lưu ý rằng sử dụng 1023 lát cho mỗi khối là lựa chọn tùy ý bạn đã thực hiện. Nếu bạn muốn độ phân giải cao hơn, làm cho các khối lớn hơn, nhưng sau đó đầu ra được lọc sẽ phải thay đổi chậm hơn. Tuy nhiên, rất nhiều micros có thể tạo ra phần cứng PWM với tốc độ nhanh hơn nhiều so với tốc độ lát 1 MHz.

Tôi sẽ thử xem liệu phương thức PWM có thể được thực hiện để hoạt động hay không trước khi đi đến một D / A bên ngoài.


Là một người mới hoàn thành, điều này rất hữu ích để xem phổ các bộ lọc có sẵn: analog.com/designtools/en/filterwizard
user391339 16/2/18

3

Những gì bạn đang cố gắng thiết kế là một Hệ thống thu thập dữ liệu

Nếu nó có bộ chuyển đổi Digital-to-Analog (DAC) thì bạn có thể làm điều đó. Nếu không, hãy lấy một bộ vi xử lý bên ngoài và để vi điều khiển giao tiếp với nó thông qua bất cứ thứ gì nó có thể (I2C, SPI, UART, v.v.)

Nhận thấy bạn đã gắn thẻ vi mạch, họ có bộ vi điều khiển với một bộ vi xử lý từ các bộ vi xử lý đơn giản (pic12f752, pic16f753,782) để nâng cấp các bộ vi xử lý (dsPIC33fj16GS504,502,302) và nhiều bộ khác. bạn có thể tìm thấy chúng thông qua đây http://www.microchip.com/maps/microcontler.aspx


Sau đó, tôi có thể sử dụng 12F752, sử dụng CDA của mình để tạo ra điện áp và sử dụng CAD để lấy các giá trị của hệ thống và phân tích, phải không?
dùng26136

@ user26136 nếu CDA = micrcontroll's DA và CAD = vi điều khiển của AD thì có!. Tôi cũng khuyên bạn nên xem xét các ghi chú ứng dụng hiệu chuẩn
Iancovici

Haha, đúng vậy
dùng26136

1

Tùy thuộc vào dòng điện được vẽ bởi hệ thống, bạn có thể thực hiện việc này với thang điện trở dưới dạng DAC: http://en.wikipedia.org/wiki/Resistor_ladder

Nếu bạn muốn một số lượng nhỏ các giá trị điện áp cụ thể, bạn thậm chí có thể thiết kế thang điện trở để phát ra chính xác hơn là hệ thống bình thường gồm 2 ^ n các giá trị cách đều nhau.

Nếu nó rút ra dòng điện không tầm thường, bạn sẽ muốn một op-amp trên đầu ra được cấu hình như một bộ đệm. Đảm bảo op-amp của bạn hoạt động với độ tuyến tính phù hợp gần 0V; bạn có thể cần một nguồn cung cấp năng lượng tiêu cực cho việc này.


1

Ngoài các câu trả lời khác, hầu hết các bộ vi điều khiển đều có chức năng PWM (và nếu không, bạn luôn có thể bit-bang một). Nếu bạn cung cấp PWM vào bộ lọc RC đơn giản, bạn có thể tạo một bộ vi xử lý nguyên thủy mà không cần nhiều thành phần hoặc chi phí bổ sung.


1

Nếu bạn ổn với PWM, thì đầu ra Analog của Arduino sẽ hoạt động tốt. Bạn cũng có thể xem xét thêm bộ lọc thông thấp, vì các xung có thể rất nhiễu.

Nếu bạn cần một giải pháp sạch hơn, hãy tìm các bộ vi điều khiển đi kèm với các mô-đun DAC. Một số bộ vi điều khiển MSP430 có DAC ( xem trang 23 ) mà bạn có thể sử dụng. Bạn cần xem xét datasheets của họ.

Nếu bạn thấy mình bị ràng buộc với một vi điều khiển mà không có DAC, bạn có thể xem xét nhận chip DAC. Chip này có thể được kiểm soát dễ dàng thông qua SPI hoặc I2C, và chúng có giá rẻ. Đây là một bộ xử lý 12 bit có giá hơn một đô la.

Hi vọng điêu nay co ich.

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.