PIC 마이크로 컨트롤러로 -2V ~ + 2V 아날로그 신호를 어떻게 샘플링합니까?


10

10 비트 ADC와 함께 PIC 마이크로를 사용하여 300Hz 미만의 주파수를 가진 아날로그 신호에서 판독합니다. 그러나 아날로그 신호의 범위는 -2V와 + 2V입니다. 신호를 사용 가능한 범위로 가져 오기 위해 신호를 조정하려면 어떻게해야합니까 (ADC에 대한 입력이 양수 여야한다고 가정) 또한 양의 값이없고 부정적인 전원 공급 장치.





@Kellenjb-연결되는 질문은 입력 전압이 레일을 넘어 양방향으로 전달되는이 특별한 경우에 대한 계산을 다루지 않습니다.
stevenvh 2016 년

다음 질문은이 하나의 중복으로 폐쇄하고 유용한 답변이 있었다 : electronics.stackexchange.com/questions/15985/... , electronics.stackexchange.com/questions/15940/...
케빈 베르메르

답변:


14

중요 사항 :
이 답변은 -20V ~ + 20V 입력 의 문제를 해결하기 위해 게시되었습니다 . 영리한 방법이지만 입력 전압 제한이 레일 사이에 있으면 작동하지 않습니다.

-2.5V ~ + 2.5V 사이의 전압을 얻고 2.5V를 추가 할 수 있도록 저항 분배기로 전압을 스케일링해야합니다. (귀하의 PIC에 5V 전원 공급 장치가 있다고 가정합니다).

다음 계산은 오래 걸리지 만 모든 단계를 자세히 설명하기 때문입니다. 실제로 그것은 당신이 곧 머리에 그것을 할 수 있도록 너무 쉽습니다.

먼저 이것은 :

R1은 V O U T 사이의 저항 이고, R2는 + 5 VV O U T 사이의 저항 이며, R3은 V O U TG N D 사이의 저항 입니다. V나는V영형
+5VV영형
V영형

우리는 몇 명의 미지수를 가지고 있습니까? 세, R1, R2 및 R3. 하나의 값을 자유롭게 선택할 수 있고 다른 두 값은 그 값에 의존합니다. R3 = 1k를 선택합시다. 다른 값을 찾는 수학적 방법은 두 개의 ( , V O U T ) 쌍 에서 두 개의 동시 방정식 세트를 작성 하고 알 수없는 저항 값을 푸는 것입니다. 모든 ( V I N , V O U T ) 쌍은 수행 할 것이지만, 그 쌍을 신중하게 선택함으로써, 즉 극한 값인 ( + 20 V , + 5 V ) 및 ( -V나는V영형V나는V영형+20V+5V , 0 V ). 20V0V

첫 번째 경우 : , V O U T = + 5 V R2의 양쪽 끝이 + 5 V를 참조 하므로 전압 강하가 없으므로 R2를 통한 전류. 즉, I R 1I R 3 (KCL) 과 동일해야합니다 . I R 3 = + 5 V - 0 VVIN=+20VVOUT=+5V
+5VIR1IR3
. 우리는 R1을 통한 전류와 전압을 알고 있으므로 저항을 계산할 수 있습니다.R1=+20V-5VIR3=+5V0V1kΩ=5mA=IR1
. 우리의 첫 미지의 발견! R1=+20V5V5mA=3kΩ

두 번째 경우 : , V O U T = 0 V 이제 R2와 동일한 기능이 R3에서도 발생합니다. 전압 강하가 없으므로 전류가 없습니다. KCL에 따르면, 이제 I R 1 = I R 2 이다. I R 1 = - 20 V - 0 VVIN=20VVOUT=0V
IR1IR2
. 우리는 R2를 통한 전류와 그 전압을 알고 있으므로 저항을 계산할 수 있습니다.R2=+5V0VIR1=20V0V3kΩ=6.67mA=IR2
. 우리의 두 번째 미지의 발견! R2=+5V0V6.67mA=0.75kΩ

따라서 솔루션은 입니다. R1=3kΩ,R2=0.75kΩ,R3=1kΩ

내가 말했듯이 그것은 이 값들 사이 의 비율 만 중요하므로 선택할 수도 있습니다 . 다른 ( V I N , V O U T ) 쌍 (예 : ( 0 V , 2.5 V ))에 대해이 솔루션을 확인할 수 있습니다 . R1과 R3은 이제 병렬입니다 (둘 다 + 2.5V-0V를 갖으므로 결합 된 값을 계산할 때 0.75가 나타남)R1=12kΩ,R2=3kΩ,R3=4kΩ
VINVOUT0V2.5V 정확히 R2의 값이 우리가 얻는 데 필요한 값 + 2.5 V를 으로부터 + 5 V ! 따라서 우리의 솔루션은 실제로 정확합니다. [QC 스탬프가 간다]0.75kΩ+2.5V+5V

마지막으로 를 PIC의 ADC 에 연결 해야합니다. ADC는 입력 저항이 다소 낮기 때문에 신중하게 계산 된 평형을 방해 할 수 있습니다. 그러나 걱정할 것은 없지만 R 3 / / R A D C = 1 k Ω이 되도록 R3을 증가시켜야 합니다. R A D C = 5 k Ω 이라고 가정 한 다음 1VOUTR3//RADC=1kΩRADC=5kΩ 이에서 우리가 찾을R3=1.25케이Ω을. 11kΩ=1R3+1RADC=1R3+15kΩR3=1.25kΩ


편집
내가 그렇게 자신을 말할 경우에도 영리하고 아주 간단 OK. ;-) 그러나 입력 전압이 레일 사이에 머무르면 왜 작동하지 않습니까? 위의 상황에서 우리는 항상 전류가 흐르지 않는 저항을 가지고 있었기 때문에 KCL 후에는 하나의 저항을 통해 노드 로 들어오는 전류가 다른 저항을 통해 빠져 나옵니다 . 즉, 한 전압은 V O U T 보다 높아야하고 다른 전압은 낮아야했습니다. 두 전압이 모두 낮 으면 해당 노드에서 전류가 흐르기 때문에 KCL이이를 금지합니다.VOUTVOUT


-20V 입력은 0V 미만으로 약간 떨어집니다.
Olin Lathrop 2016 년

(그리고 아마도 Olin Lathrop) : 나는 당신이 7k 저항의 값을 찾는 방법을 찾으려고 노력했습니다. 입력 전압이 2.5V 일 때 전압 차이가 없기 때문에 저항 값에 관계없이 노드에 전류가 흐르지 않습니다. 그러나 2.5V 입력은 중간 범위 가 아니며 2.5V 출력도 중간 범위 가 아닙니다 . 분배기가 두 개의 다른 저항을 가져야한다는 것을 의미하지 않습니까? 무슨 말인지 알면
Federico Russo

어쩌면 @Olin Lathrop의 의견도 설명되어 있습니다.
Federico Russo

@Frederico : 예, 완전히 대칭 적이지는 않습니다. 나는 이것을 내 대답으로 토론합니다. -20 ~ +20 볼트에서 0 ~ 5 볼트로 매핑하도록 세 개의 저항을 조정할 수 있지만 Steven과 나는 둘 다 작은 아 시메트리를 얻는 더 간단한 경우를 보여주었습니다.
Olin Lathrop 2016 년

6

가장 쉬운 방법은 "저항 분배기"를 사용하는 것입니다.

이 PIC가 어떤 전압에서 작동하는지에 대해서는 말하지 않았으므로 A / D 입력 범위는 5V를 예로 들어 보겠습니다. 입력 전압 범위는 40V이고 출력은 5V이므로 최소 8만큼 감쇠하는 것이 필요합니다. 또한 결과는 1 / 2Vdd (2.5V)에 집중해야하지만 입력 전압은 0V에 집중해야합니다 .

이것은 3 개의 저항으로 달성 할 수 있습니다. 세 저항 모두의 한쪽 끝이 함께 연결되어 PIC A / D 입력 핀에 연결됩니다. R1의 다른 쪽 끝은 입력 신호로, R2는 Vdd로, R3은 접지로갑니다. 저항 분배기는 R1과 R2와 R3의 병렬 조합으로 구성됩니다. 결과 범위를 2.5V로 중앙에 맞추기 위해 R2와 R3을 조정할 수 있지만, 이것을 간단하게 설명하기 위해 약간의 아 시메트리를 적용하고 조금 더 감쇠시켜 양쪽 끝이 Vss-Vdd 범위로 제한되도록합니다.

PIC가 아날로그 신호의 임피던스가 10kΩ 이하가 되길 원한다고 가정 해 봅시다. 단순화를 위해 다시 R2와 R3을 20kΩ으로 만들어 봅시다. PIC를 공급하는 임피던스는 10kΩ 인 병렬 조합보다 크지 않습니다. 8의 감쇠를 얻으려면 R1이 R2 // R3의 7 배인 70kΩ이어야합니다. 그러나 결과가 정확히 대칭 적이 지 않으므로 -20V가 PIC에 0V 미만이되지 않도록 조금 더 감쇠해야합니다. 실제로 9의 감쇠가 필요하므로 R1은 80kΩ 인 R2 // R3의 8 배 이상이어야합니다. 82kΩ의 표준 값은 약간의 기울기와 마진을 허용하지만 원래 신호를 측정하기 위해 대부분의 A / D 범위를 얻습니다.

추가 :

다음 은 비슷한 문제에 대한 정확한 해결책을 찾는 예입니다. 이것은 비대칭 성이 없으며 특정 출력 임피던스를 갖습니다. 이 형태의 솔루션은 A / D 범위가 전체적으로 입력 전압 범위 내에있을 때 항상 사용할 수 있습니다.


+1은 부품 수에 관계없이 필요한 것을 만드는 가장 쉬운 방법입니다. 일부 참고 사항 : uC 코드의 비대칭을 처리 할 수 ​​있으며 GND로가는 저항에 병렬로 하나의 커패시터를 추가하면 신호를 부드럽게 할 수 있습니다 (로우 패스 필터). 코너 주파수. 는 1 / (2 * pi R C)이며, 여기서 R은 3 개의 모든 저항의 병렬 값이고 C는 추가 된 캡의 값입니다 (ADC는 캡이 필요합니다!). 모든 공차 (R, +/- 최대 LSB의 ADC 오류, 참조 오류 등)를 고려하여이 설정의 정확도를 계산하십시오. 예상보다 나쁠 수 있습니다.
zebonaut

@zebonaut-계산을 다시 수행하고 업데이트 된 답변에 모든 단계를 자세히 설명했습니다 (매우 복잡하지 않습니다!). (-20V .. + 20V)와 (0V .. + 5V)의 정확한 매핑을 제공합니다.
stevenvh

@zebonaut : 커패시터는 앤티 앨리어싱 필터로 유용 할 수 있지만 아 시메트리에 대해서는 아무 것도하지 않습니다. 작은 아 시메트리가 큰 문제라고 생각하지 않았습니다. 말씀 드린대로 펌웨어를 쉽게 처리 할 수 ​​있습니다.
Olin Lathrop 2016 년

소프트웨어에서 비대칭 성을 보정하려면 정확한 전달 함수를 계산해야합니다. 어쨌든이 작업을 수행해야하는 경우, 처음에 올바른 저항 값을 사용하지 않는 이유는 무엇입니까 (첫 번째 (오답) 답변의 값이
아님

@stevenvh : "올바른"저항 값을 사용하는 데 아무런 문제가 없습니다. 나는 정확한 매핑이 가능하다는 것을 깨달았지만 (내 대답에서 언급했듯이) 계산의 복잡성에 들어 가지 않고 작은 비대칭 성을 초래하는 개념적으로 더 간단한 경우에 대답하지 않기로 결정했습니다. 어쨌든 슬로프를 설명하기 위해 조금 더 감쇠해야하며 어쨌든 펌웨어를 교정해야합니다.
Olin Lathrop

2

이것이 표준 회로입니다. 필요한 임피던스에 대한 저항 값을 스케일링해야합니다.


소스 임피던스를 사용하는 경우 소스 임피던스가 상대적으로 낮아야합니까?
Nick T

Leon, 왜 1k 저항 대신 커패시터를 사용하지 않습니까?
stevenvh

DC 커플 링 솔루션입니다. 올바른 작동을 위해서는 직렬 저항이 필요합니다.
Leon Heller

3
@Leon Heller : 저항에 적합한 값을 찾는 방법을 설명하면 더 나은 답변이라고 생각합니다.
Federico Russo

2

신호가 DC가 아니거나 DC 기준이 중요하지 않은 경우 신호는 용량 성으로 ADC의 입력에 연결될 수 있습니다.

또는 PIC의 접지가 부동 상태 인 경우 신호 접지를 PIC의 1/2 VDD에 연결할 수 있습니다.


용량 성 커플 링을 사용하는 경우 DC 구성 요소를 제거하지만 Leon 회로와 같이 저항 분배기에 의해 입력 핀에 바이어스를 제공하지 않는 한 신호의 음극 부분은 여전히 ​​접지 아래로 내려갑니다.
stevenvh

공급 전압이 지정되지 않았습니다. 5V ADC와 함께 작동합니다. 더 작은 Vdd를 사용하는 경우 입력을 조정해야합니다. 그 시점에서 커패시터가있는 Leon의 회로로 바뀔 것입니다.
W5VO

2

다음 회로가 작업을 수행해야합니다.

3.3V
 +
 |
 \
 / 1k
 \
 |
 +-- ADC input
 |
 \
 /  1k
 \
 |
 +-- Signal input (-2V to +2V)

잠재적 인 분배기입니다. -2V에서 출력은 0.65V입니다. + 2V, 2.65V에서

3.3V 레일의 모든 노이즈는 입력으로 전달되므로이 문제를 줄이려면 올바른 전압 레퍼런스를 사용하십시오.

이것은 다른 소모품과도 작동하지만 오프셋이 이동합니다.


예, 작동하지만 전체 ADC 범위를 사용하는 것이 좋습니다 :-)
stevenvh

@stevenh 회로를 사용할 수도 있지만 0.65V 및 2.65V 레퍼런스를 사용하여 그렇게 할 수 있습니다.
Thomas O

V아르 자형이자형에프+V아르 자형이자형에프 .
stevenvh

@stevenh PIC24, dsPIC 및 PIC32에는 Vref-가 있습니다. 나는 18F도 그렇게 생각합니다.
Thomas O

그래, 알다시피, 나는 그들 모두를 모른다 ( 많은 것들이 있다). OP는 자신이 사용하는 부분을 말하지 않고 사라진 것 같으므로 물어 보지 않아도됩니다.
stevenvh

1

두 개의 동일한 저항을 갖는 Thomas의 전압 가산기는 실제로 간단하지만 ADC의 입력 범위가 감소한다는 단점이 있는데, 이는 잡음이 더 큰 영향을 미치게된다는 것을 의미합니다. 또한 하한값은 0.65V입니다. 마이크로 컨트롤러에V아르 자형이자형에프입력 범위의 일부는 사용되지 않은 상태로 유지됩니다.
이것은 쉽게 고칠 수 있습니다 : 저항 비율을 선택하여V입력이 -2V이면 0V가됩니다. 대한V5V는 입력 저항이 풀업 저항의 2/5이어야 함을 의미합니다. 2V 입력에서V2.86V입니다. 세트V아르 자형이자형에프+ -2V ~ + 2V는 전체 ADC 범위를 포괄합니다.

당신의 경우 V = 3.3V 입력 저항은 61 % (2V3.3V)를 표시합니다. + 2V에서V 2.49V입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.