풀업 저항에 필요한 값을 어떻게 계산합니까?


98

플로팅 접지를 피하기 위해 스위치와 함께 풀업 또는 풀다운 저항을 사용하는 많은 자습서가 있습니다.

http://www.arduino.cc/en/Tutorial/button

이 프로젝트들 중 다수는 10K 저항을 사용하며 단지 좋은 가치라는 것을 나타냅니다.

특정 회로가 주어지면 풀다운 저항에 적절한 값을 어떻게 결정합니까? 계산할 수 있습니까, 아니면 실험에 의해 가장 잘 결정됩니까?


나는 sparkfun 에서이 자습서를 풀업 및 풀다운 저항에 대한 좋은 소개를 발견했습니다. sparkfun 풀업 저항 과 가장 우수한 게시 된 질문에 제공된 답변이 훌륭합니다.
Richard Chambers

답변:


82

빠른 답변 : 경험과 실험은 적절한 풀업 / 풀다운 값을 계산하는 방법입니다.

긴 응답 : 풀업 / 다운 저항은 RC 타이밍 회로의 R입니다. 신호가 전환되는 속도는 R (저항)과 C (신호의 커패시턴스)에 따라 다릅니다. 종종 C는 트레이스에서 트레이스가 라우팅되는 방법을 포함하여 많은 요소에 의존하기 때문에 정확히 알기가 어렵습니다. C를 모르기 때문에 R이 무엇인지 알 수 없습니다. 그곳에서 경험과 실험이 시작됩니다.

다음은 좋은 풀업 / 다운 저항 값을 추측 할 때 적용되는 몇 가지 규칙입니다.

  • 대부분의 경우 3.3k ~ 10kohm은 정상적으로 작동합니다.
  • 전력 감지 회로의 경우 더 높은 값을 사용하십시오. 50k 또는 100k ohm은 많은 응용 분야에서 작동 할 수 있습니다 (모두는 아님).
  • 속도에 민감한 회로의 경우 더 낮은 값을 사용하십시오. 1k 옴은 일반적이지만 200 옴만큼 낮은 값은 들어 보지 않습니다.
  • 때때로 I2C와 마찬가지로 "표준"은 사용할 특정 값을 지정합니다. 다른 경우에는 칩 애플리케이션 노트가 값을 권장 할 수 있습니다.

10
풀업의 경우 200 옴? 와우, 그것은 많은 대기 전류입니다.
0x6d64

4
@ 0x6d64-정지 상태 일 때 버스가 부족하다고 가정합니다.
코너 울프

3
Texas Instruments에는 I2C 풀업 저항의 값을 계산하는 방법뿐만 아니라 공식이 실제로 도출되는 방법을 설명하는 매우 훌륭한 참조 자료가 있습니다. ti.com/lit/an/slva689/slva689.pdf 에서 I2C 버스 풀업 저항 계산 애플리케이션 보고서를 참조하십시오 .
Jamie 참조

77

10kΩ을 사용하면 좋은 값입니다.

자세한 내용은 풀업의 기능을 확인해야합니다. 마이크로 컨트롤러로 읽고 싶은 푸시 버튼이 있다고 가정 해 봅시다. 푸시 버튼은 순간 SPST (Single Pole Single Throw) 스위치입니다. 연결 여부에 따라 두 개의 연결 지점이 있습니다. 버튼을 누르면 두 지점이 연결됩니다 (스위치가 닫힙니다). 해제되면 연결되지 않습니다 (스위치가 열려 있음). 마이크로 컨트롤러는 본질적으로 연결 또는 분리를 감지하지 않습니다. 그들이 이해하는 것은 전압입니다. 이 스위치에는 두 가지 상태 만 있기 때문에 결국 두 상태 중 하나에 만 있도록 설계된 디지털 입력을 사용하는 것이 좋습니다. 마이크로는 디지털 입력이 어떤 상태인지 직접 감지 할 수 있습니다.

풀업은 스위치의 개방 / 폐쇄 연결을 마이크로 컨트롤러가 감지 할 수있는 저전압 또는 고전압으로 변환하는 데 도움이됩니다. 스위치의 한쪽은 접지에 연결되고 다른 한쪽은 디지털 입력에 연결됩니다. 스위치를 누르면 스위치가 본질적으로 접지로 단락되기 때문에 라인이 강제로 낮아집니다. 그러나 스위치가 해제되면 라인을 특정 전압으로 구동하는 것은 없습니다. 저전압 상태를 유지하거나 용량 성 커플 링으로 주변의 다른 신호를 포착하거나 디지털 입력을 통한 작은 누설 전류로 인해 특정 전압으로 플로팅 될 수 있습니다. 풀업 저항의 역할은 스위치가 열렸을 때 양의 보장 된 높은 레벨을 제공하는 것이지만, 닫힐 때 스위치가 라인을 접지로 안전하게 단락시킬 수 있도록합니다.

풀업 저항의 크기에는 두 가지 주요 경쟁 요구 사항이 있습니다. 라인을 단단히 잡아 당길 수있을 정도로 낮아야하지만 스위치를 닫을 때 너무 많은 전류가 흐르지 않을 정도로 높아야합니다. 둘 다 명백하게 주관적이며 상대적 중요성은 상황에 달려 있습니다. 일반적으로, 스위치를 열었을 때 라인을 낮게 만들 수있는 모든 것을 고려할 때 풀업을 낮게 낮게 설정하십시오.

라인을 끌어 올리는 데 필요한 것이 무엇인지 살펴 보자. DC 요구 사항 만 살펴보면 디지털 입력 라인의 누설 전류가 발견됩니다. 이상적인 디지털 입력에는 무한 임피던스가 있습니다. 물론 실제 회로는 그렇지 않으며, 이상적이지 않은 범위는 일반적으로 핀에서 나오거나 핀에 들어갈 수있는 최대 누설 전류로 표현됩니다. 마이크로가 디지털 입력 핀에서 최대 1µA의 누수로 지정되었다고 가정 해 봅시다. 풀업이 라인을 높게 유지해야하므로 최악의 경우는 핀이 접지에 1µA 전류 싱크처럼 보인다고 가정하는 것입니다. 예를 들어 1MΩ 풀업을 사용하는 경우 1µA는 1MΩ 저항에 대해 1V를 발생시킵니다. 이것이 5V 시스템이라고 가정하면 핀은 최대 4V 만 보장됩니다. 이제 디지털 입력 사양을보고 로직 하이 레벨에 필요한 최소 전압 요구 사항을 확인해야합니다. 일부 마이크로의 경우 Vdd의 80 %가 될 수 있으며이 경우 4V가됩니다. 따라서 1MΩ 풀업이 마진에 맞습니다. DC 고려 사항으로 인해 올바른 동작이 보장 되려면 최소한 이보다 약간 더 적어야합니다.

그러나 다른 고려 사항이 있으며이를 정량화하기가 더 어렵습니다. 모든 노드는 다른 모든 노드에 대한 용량 성 커플 링을 가지고 있지만, 커플 링의 크기는 거리에 따라 떨어져서 가까운 노드 만 관련이 있습니다. 이러한 다른 노드에 신호가 있으면이 신호가 디지털 입력에 연결될 수 있습니다. 풀업 값이 낮을수록 라인의 임피던스가 낮아져서 스트레이 신호의 양이 줄어 듭니다. 또한 누설 전류에 대해 더 높은 최소 보장 DC 레벨을 제공하므로 DC 레벨 사이에 더 많은 공간이 있으며 디지털 입력이 결과를 의도 된 로직 하이 대신 로직 로우로 해석 할 수 있습니다. 그래서 얼마입니까? 이 예에서 1MΩ 풀업은 충분하지 않습니다 (저항이 너무 높음). 근처 신호와의 결합을 추측하는 것은 거의 불가능합니다. 그러나 최소 DC 사례보다 적어도 수십 배의 마진을 원합니다. 즉, 주변에 많은 노이즈가 있으면 더 낮아지기를 원하지만 적어도 100kΩ 풀업을 원합니다.

풀업을 낮추는 또 다른 고려 사항이 있으며 이는 상승 시간입니다. 이 선은 접지에 대한 약간의 정전 용량을 가지므로 즉각적으로가는 대신 공급 값쪽으로 기하 급수적으로 감소합니다. 모든 부유 용량이 최대 20 pF를 추가한다고 가정 해 봅시다. 그 때의 100kΩ 풀업은 2µs입니다. 정착 값의 95 %,이 경우 6µs에 도달하려면 3 개의 시간 상수가 필요합니다. 그것은 인간의 시간에는 아무런 영향을 미치지 않으므로이 예제에서는 중요하지 않지만, 이것이 디지털 버스 라인이라면 200 kHz 데이터 속도로 실행하려고한다면 작동하지 않을 것입니다.

이제 다른 경쟁 고려 사항을 살펴 보겠습니다. 스위치를 누를 때 낭비되는 전류입니다. 이 장치에 라인 전원이 부족하거나 상당한 전력을 처리하는 경우 몇 mA는 중요하지 않습니다. 5V에서는 1mA를 끌어 오는 데 5kΩ이 필요합니다. 어떤 경우에는 실제로 "많은"전류이며, 다른 고려 사항으로 인해 필요한 것보다 훨씬 많습니다. 이것이 배터리로 구동되는 장치이고 스위치가 상당 시간 동안 켜져있을 수 있다면, 모든 µA가 중요 할 수 있으며이를 신중하게 고려해야합니다. 경우에 따라 스위치를 주기적으로 샘플링하고 샘플 주위에서 짧은 시간 동안 만 풀업을 켜서 전류 소모를 최소화 할 수 있습니다.

배터리 작동과 같은 특별한 고려 사항 외에도 100kΩ은 잡음을 포착하는 데 신경을 쓸만큼 충분한 임피던스입니다. 스위치가 켜질 때 낭비되는 1mA의 전류는 불필요하게 커 보입니다. 따라서 500 µA는 10 kΩ 임피던스가 거의 맞다는 것을 의미합니다.

내가 말했듯이 10kΩ을 사용하십시오. 좋은 가치입니다.


1
또한 추가 요구 사항은 일반적인 'tact'유형 스위치와 같은 일부 스위치가 1mA와 같이 매우 낮은 전류에 대해서만 지정되어야한다는 것입니다. 10k (5V 이하)는이 요구 사항을 충족하지만 더 낮은 저항 값을 고려할 때 명심해야합니다.
Wouter van Ooijen

1
@Wouter-내가 좋아하는 택트 스위치 는 최대 50mA (1mA는 나에게 낮은 것 같습니다)뿐만 아니라 최소도 있습니다. 접점을 깨끗하게 유지하기 위해 스위치와 병렬로 커패시터를 배치합니다. 이는 스위칭시 단락 전류 피크가 접점을 깨끗하게 유지한다는 아이디어입니다. 테스트에는 수명이 10 만 사이클로 지정되어 있지만 2 만 사이클로 사용하는 데 아무런 문제가 없었습니다.
stevenvh

@stevenvh 스위치와 병렬로 커패시터에 대해 더 자세히 설명해 주시겠습니까? 초기 단락 전류를 높게하면 접점이 깨끗하게 유지되는 방법은 무엇입니까?
abdullah kahraman

과도 용량 성 커플 링이 풀업 저항 값에 영향을 미치는 것을 볼 수있는 상황입니다. 미친 것 같지만 그렇지 않습니다. 나는 ADC로 읽고있는 독창적 인 3 상태 출력을 가지고 있습니다. 하나의 보드, 220k 풀업으로 충분하므로 ADC가 모든 3 상태를 읽을 수 있습니다. 다른 (더 단단히 배치 된 보드)에서는 100k 풀업이 필요합니다. 내가 아침 내내 이걸 쫓는 미친 약에 있다고 생각했다.
Leroy105

23

첫째, 이런 종류의 튜토리얼은 쓸모가 없으며 전자 제품을 가르치지 않습니다. 회로도 를 그리는 방법을 배워야 하며 배선은 나중에 이루어집니다.
따라서 회로도가 부족하여 배선 다이어그램에서 직접 도출해야했습니다. 좋습니다. 그렇게 어렵지는 않았지만 회로도를 그릴 때 무언가 빠진 것을 볼 수 있습니다. 택 스위치는 무엇에 연결됩니까? 당신은 당신의 질문에 대답하기 위해 그것을 알아야합니다. 나는 그것이 마이크로 컨트롤러의 디지털 입력이라고 생각하지만 알 방법이 없습니다.

택트 스위치 열림과 스위치 닫힘의 두 가지 상황이 있습니다.

닫힌 상태에서 마이크로 컨트롤러의 입력은 접지에 연결되므로 낮은 레벨을 보게됩니다. 저항을 통해 전류가 흐릅니다. 좋은 회로도는 저항의 한쪽 끝이 + 5V에 연결되어 있고, 촉각 스위치는 다른 쪽 끝이 접지에 연결되어 있음을 알려줍니다. 10k 저항이 작동 하는지 봅시다 . 그런 다음 저항을 통과하는 전류는 = 500 A와 같습니다. 스위치가 열려있을 때도 괜찮은지 봅시다. 5 VΩ μ5V10kΩμ

스위치 개방 상태에서는 무시할 수 있으며 V +와 마이크로 컨트롤러의 입력 사이에 저항 만있는 것으로 가정합니다. 우리는 데이터 시트에서 그것을 보았다 때문에 우리는 당신이 마이크로 컨트롤러 입력에 전압을인가하는 경우에만 종종 미만, 매우 작은 전류가 흐르는 것, 더 나은 경험을 알고, 또는 A.이의 그것이 하나의 가정 해 봅시다 그러면 저항의 전압 강하는 1 A 10k = 10mV가됩니다. 입력 전압은 4.99V가됩니다. 아마 괜찮겠지 만, 우리 일을 제대로 해보자. 만약 당신이 회로도를 가지고 있다면 (지금까지 그것을 가지고 있다고 생각하지 않습니까?) 마이크로 컨트롤러가 어떤 유형인지 알 것입니다. Arduino가 AVR이라는 것을 알고 있습니다.μ μ × Ω × V D Dμμμ×Ω무작위 AVR 데이터 시트 . 전기적 특성에 따르면 높은 입력 레벨은 0.6 이상이어야합니다 (320 페이지). 3V이므로 4.99V가 안전합니다. × VDD

다른 저항 값을 선택한 경우 어떻게됩니까? 값이 낮을수록 전압 강하가 줄어들고 입력 전압이 4.99V보다 훨씬 높습니다. 그러나 스위치가 닫히면 저항에 더 많은 전류가 흐르기 때문에 원하지 않는 것입니다.
스위치가 닫히면 전류가 적기 때문에 더 높은 저항 값은 정상이지만 마이크로 컨트롤러의 입력 전압은 4.99V보다 낮습니다. 여기에 헤드 룸이 있으므로 다소 높은 값이 좋습니다.

결론

  1. 스위치 열기 및 닫기 상황 모두에서 10k 가 정상입니다.Ω
  2. 회로도 그리기 및 데이터 시트 읽기 학습

7
Fritzing으로 만든 배선 다이어그램은 아마도 Arduino와 관련하여 회로도보다 일반적 일 것입니다. 청중을 고려해야합니다.
Dave Newton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.