- 연산 증폭기의 기초
- 프로그래밍 가능한 이득 증폭기 작동
- 필요한 구성 요소
- 개략도
- PGA 용 Arduino 코드
- 프로그래밍 가능 이득 증폭기에 대한 계산
- 프로그래밍 가능한 이득 증폭기 회로 테스트
- 프로그래밍 가능한 이득 증폭기의 장단점
- 추가 향상
측정 산업에서 매우 중요한 기능 블록은 PGA (Programmable Gain Amplifier) 입니다. 전자 애호가이거나 대학생이라면 회로에 PGA가 내장되어있어 정밀 측정 프로세스를 지원하는 강력한 ADC가 있기 때문에 매우 작은 전압을 측정하는 멀티 미터 또는 오실로스코프를 보셨을 것입니다.
오늘날, 기성품 PGA 증폭기는 사용자가 프로그래밍 할 수있는 이득 계수가있는 비 반전 증폭기 인 op-amp 기반의 증폭기를 제공합니다. 이 유형의 장치는 매우 높은 입력 임피던스, 넓은 대역폭 및 선택 가능한 입력 전압 레퍼런스가 IC에 내장되어 있습니다. 그러나 이러한 모든 기능에는 비용이 따르며, 제게는 일반 애플리케이션에 그렇게 비싼 칩을 넣을 가치가 없습니다.
따라서 이러한 상황을 극복하기 위해 연산 증폭기, MOSFET 및 Arduino로 구성된 배열을 고안했습니다.이를 통해 연산 증폭기의 이득을 프로그래밍 방식으로 변경할 수있었습니다. 따라서이 튜토리얼에서는 LM358 연산 증폭기 및 MOSFETS로 프로그래밍 가능한 이득 증폭기를 직접 구축하는 방법을 보여 드리고 테스트와 함께 회로의 장단점에 대해 논의 할 것입니다.
연산 증폭기의 기초
이 회로의 작동을 이해하려면 연산 증폭기의 작동 방식을 아는 것이 매우 중요합니다. 이 연산 증폭기 테스터 회로를 따라 연산 증폭기에 대해 자세히 알아보십시오.
위의 그림에서 작동 증폭기를 볼 수 있습니다. 증폭기의 기본 역할은 증폭과 함께 입력 신호를 증폭하는 것입니다. 연산 증폭기는 합산, 미분, 적분 등과 같은 다양한 작업을 수행 할 수도 있습니다. 여기에서 합산 증폭기 및 차동 증폭기에 대해 자세히 알아보십시오.
연산 증폭기에는 단자가 세 개뿐입니다. (+) 기호가있는 터미널을 비 반전 입력이라고하고 (-) 기호가있는 터미널을 반전 입력이라고합니다. 이 두 단자 외에 세 번째 단자는 출력 단자입니다.
연산 증폭기는 두 가지 규칙 만 따릅니다.
- 연산 증폭기 입력에 전류가 흐르지 않습니다.
- 연산 증폭기는 입력을 동일한 전압 레벨로 유지하려고합니다.
따라서이 두 가지 규칙이 정리되면 아래 회로를 분석 할 수 있습니다. 또한 다양한 Op-amp 기반 회로를 통해 Op-amp에 대해 자세히 알아보십시오.
프로그래밍 가능한 이득 증폭기 작동
위의 그림은 내 crud PGA 앰프의 회로 배열에 대한 기본 아이디어를 제공합니다. 이 회로에서 연산 증폭기는 비 반전 증폭기로 구성되며 비 반전 회로 배열로 모두 알고 있듯이 피드백 저항 또는 입력 저항을 변경하여 연산 증폭기의 이득을 변경할 수 있습니다. 위의 회로 배열에서 볼 수 있듯이 연산 증폭기의 이득을 변경하려면 MOSFET을 한 번에 하나씩 전환하면됩니다.
테스트 섹션에서는 MOSFET을 한 번에 하나씩 전환하고 측정 된 값과 실제 값을 비교했습니다. 아래 "회로 테스트"섹션에서 결과를 관찰 할 수 있습니다.
필요한 구성 요소
- Arduino Nano-1
- LM358 IC-1
- LM7805 레귤레이터-1
- BC548 일반 NPN 트랜지스터-2
- BS170 일반 N 채널 MOSFET-2
- 200K 저항-1
- 50K 저항-2
- 24K 저항-2
- 6.8K 저항-1
- 1K 저항-4
- 4.7K 저항-1
- 220R, 1 % 저항기-1
- 촉각 스위치 일반-1
- 황색 LED 3mm-2
- 브레드 보드 일반-1
- 점퍼 와이어 일반-10
- 전원 공급 장치 ± 12V-1
개략도
Programmable Gain Amplifier의 데모를 위해 회로는 회로도를 사용하여 납땜없는 브레드 보드에 구성됩니다. 브레드 보드의 내부 기생 인덕턴스와 커패시턴스를 줄이기 위해 모든 구성 요소를 최대한 가깝게 배치했습니다.
내 브레드 보드에 와이어 클러스터가있는 이유가 궁금하다면? 브레드 보드의 내부 접지 연결이 매우 열악하므로 좋은 접지 연결을 만드는 것이 좋습니다.
여기서 회로의 연산 증폭기는 비 반전 증폭기 로 구성되고 7805 전압 조정기의 입력 전압은 4.99V입니다.
저항 R6의 측정 값은 6.75K이고 R7은 220.8R입니다.이 두 저항은 연산 증폭기에 대한 입력 테스트 전압을 생성하는 데 사용되는 전압 분배기를 형성합니다. 저항기 R8 및 R9는 트랜지스터 T3과 T4의 입력 기준 전류를 제한하기 위해 사용된다. 저항 R10 및 R11는 달리,이 회로에서 발진을 일으킬 수 있고, MOSFET들 T1 및 T2의 스위칭 속도를 제한하기 위해 사용된다.
이 블로그에서는 BJT가 아닌 MOSFET을 사용하는 이유, 따라서 회로 배열을 보여 드리고자합니다.
PGA 용 Arduino 코드
여기에서 Arduino Nano는 트랜지스터의베이스와 MOSFET의 게이트를 제어하는 데 사용되며, Arduino의 내장 ADC가 낮은 측정을 할 때 매우 열악한 작업을 수행하기 때문에 전압 레벨을 표시하는 데 멀티 미터가 사용됩니다. 전압 레벨.
이 프로젝트의 완전한 Arduino 코드는 다음과 같습니다. 이것은 매우 간단한 Arduino 코드이므로 라이브러리를 포함 할 필요가 없습니다. 그러나 코드에 표시된대로 몇 가지 상수와 입력 핀을 정의해야합니다.
무효 설정 ()는 모든 입력 및 출력에 대한 판독 및 기록 동작 요구 사항에 따라 수행되는 주요 기능 블록이다.
#define BS170_WITH_50K_PIN 9 #define BS170_WITH_24K_PIN 8 #define BC548_WITH_24K_PIN 7 #define BC548_WITH_50K_PIN 6 #define BUTTON_PIN 5 #define LED_PIN1 2 #define LED_PIN2 3 #define LED_PIN2 3 #define PRESSED_CONFIDENCE_LEVEL 5000 int 버튼 _define PRESSED_CONFIDENCE int debounce_counter = 0; void setup () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_50K_PIN, OUTPUT); pinMode (LED_PIN1, OUTPUT); pinMode (LED_PIN2, OUTPUT); pinMode (BUTTON_PIN, INPUT); } void loop () {bool val = digitalRead (BUTTON_PIN); // 입력 값 읽기 if (val == LOW) {debounce_counter ++; if (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } if (button_is_pressed == 0) {digitalWrite (BS170_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_24K_PIN, LOW);digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, LOW); } if (button_is_pressed == 2) {digitalWrite (BS170_WITH_24K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, HIGH); } if (button_is_pressed == 3) {digitalWrite (BC548_WITH_24K_PIN, HIGH); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, HIGH); digitalWrite (LED_PIN2, HIGH); } if (button_is_pressed == 1) {digitalWrite (BC548_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (LED_PIN1, HIGH);digitalWrite (LED_PIN2, LOW); } if (button_is_pressed> = 4) {button_is_pressed = 0; }}}
프로그래밍 가능 이득 증폭기에 대한 계산
PGA 증폭기 회로의 측정 값은 다음과 같습니다.
Vin = 4.99V R7 = 220.8 Ω R6 = 6.82KΩ R5 = 199.5K R4 = 50.45K R3 = 23.99K R2 = 23.98K R1 = 50.5K
노트! 측정 된 저항 값으로 이론 값과 실제 값을 면밀히 비교할 수 있기 때문에 저항의 측정 값이 표시됩니다.
이제 전압 분배기 계산기의 계산이 아래에 나와 있습니다.
전압 분배기의 출력은 0.1564V입니다.
4 개의 저항에 대한 비 반전 증폭기의 이득 계산
R1 이 선택된 저항 일 때 Vout
Vout = (1+ (199.5 / 50.5)) * 0.1564 = 0.77425V
R2 가 선택된 저항 일 때 Vout
Vout = (1+ (199.5 / 23.98)) * 0.1564 = 1.45755V
R3 이 선택된 저항 일 때 Vout
Vout = (1+ (199.5 / 23.99)) * 0.1564 = 1.45701V
R4 가 선택된 저항 일 때 Vout
Vout = (1+ (199.5 / 50.45)) * 0.1564 = 0.77486V
나는 이론적 가치와 실제 가치를 최대한 가깝게 비교하기 위해 모든 것을했다.
모든 계산이 완료되면 테스트 섹션으로 이동할 수 있습니다.
프로그래밍 가능한 이득 증폭기 회로 테스트
위의 이미지는 MOSFET T1 이 켜져 있을 때의 출력 전압을 보여 주므로 전류가 저항 R1을 통해 흐르고 있습니다.
위의 이미지는 트랜지스터 T4 가 켜져 있을 때 출력 전압을 보여 주므로 전류가 저항 R4를 통해 흐르고 있습니다.
위의 이미지는 MOSFET T2가 켜져 있을 때의 출력 전압을 보여 주므로 전류가 저항 R2를 통해 흐릅니다 .
위의 이미지는 트랜지스터 T3 이 켜져 있을 때 출력 전압을 보여 주므로 전류가 저항 R3을 통해 흐르고 있습니다.
회로도에서 볼 수 있듯이 T1, T2는 MOSFET이고 T3, T4는 트랜지스터 입니다. 따라서 MOSFET을 사용하면 오류는 1 ~ 5mV 범위에 있지만 트랜지스터를 스위치로 사용하면 10 ~ 50mV 범위에서 오류가 발생합니다.
위의 결과를 통해 MOSFET이 이러한 종류의 애플리케이션에 적합한 솔루션이라는 것이 분명하며 이론적 및 실제적 오류는 연산 증폭기의 오프셋 오류로 인해 발생할 수 있습니다.
노트! 테스트를 위해 두 개의 LED를 추가했으며 실제 회로도에서는 찾을 수 없으며 어떤 핀이 활성 상태인지 보여주는 바이너리 코드를 보여줍니다.
프로그래밍 가능한 이득 증폭기의 장단점
으로 이 회로가 싸고, 쉽고, 간단이며, 그것은 많은 다른 응용 프로그램으로 구현 될 수있다.
여기서 MOSFET은 저항을 통해 모든 전류를 접지로 전달하는 스위치로 사용되므로 온도의 영향이 확실하지 않으며 제한된 도구와 테스트 장비로 온도 변화의 영향을 보여줄 수 없었습니다. 회로.
MOSFET과 함께 BJT를 사용하는 목적은 이러한 종류의 애플리케이션에서 BJT가 얼마나 열악한 지 보여주고 싶기 때문 입니다.
피드백 저항기 및 입력 저항기 의 값은 KΩ 범위에 있어야합니다. 즉, 저항기 값이 낮을수록 더 많은 전류가 MOSFET을 통해 흐르기 때문에 더 많은 전압이 MOSFET에 강하되어 예측할 수없는 결과를 초래하기 때문입니다.
추가 향상
고주파 노이즈를 제거하기 위해 필터를 추가 할 수있는 것처럼 회로를 추가로 수정하여 성능을 향상시킬 수 있습니다.
이 테스트에서는 LM358 젤리 빈 연산 증폭기를 사용하므로 연산 증폭기의 오프셋 오류가 출력 전압에서 중요한 역할을합니다. 따라서 LM358 대신 악기 증폭기를 사용하여 더 개선 할 수 있습니다.
이 회로는 데모 용으로 만 만들어졌습니다. 실제 애플리케이션에서이 회로를 사용하려는 경우 절대 안정성을 달성하기 위해 초퍼 유형 연산 증폭기 및 고정밀 0.1 옴 저항을 사용해야합니다.
이 기사를 좋아하고 새로운 것을 배웠기를 바랍니다. 의심스러운 점이 있으면 아래 의견에 질문하거나 포럼을 사용하여 자세한 토론을 할 수 있습니다.