올바른 값 범위가 있지만 해당 범위가 무엇인지 정확하게 설명하기는 어렵습니다. 일반적으로 10k가 작동합니다.
디지털 출력에는 전류를 소싱하거나 싱킹하는 지정된 기능이 있습니다. 출력이 5mA를 싱크 할 수 있고 출력이 5V로 풀업을 통해 연결되고 0으로 설정된 경우 최소 1k 저항이 필요합니다. 1k 미만을 사용하면 출력이 핀을 완전히 0V로 끌어 올릴 수있는 충분한 전류를 싱크 할 수 없습니다. 10k와 같이 더 큰 값을 사용하면 핀은 0.5mA 만 싱크하면되므로 정격보다 훨씬 적습니다.
디지털 입력에는 지정된 누설 전류가 있습니다. 이것은 입력에서 0 또는 1을 "유지"하는 데 걸리는 전류량과 비슷합니다. 풀업 저항이 너무 크면 누설 전류를 극복 할 수 없습니다. 누설 전류를 거의 극복하지 못하면 회로의 노이즈가 입력을 변경하기에 충분할 수 있습니다.
싱크 및 소스 전류가 가능한 디지털 출력 ( "토템 폴 드라이버", "푸시 풀 드라이버")을 사용하는 경우 풀업 또는 풀다운 저항을 사용하지 않을 수 있습니다. 그러나 CMOS 입력이 플로팅되지 않도록하거나 과도한 전류를 끌어낼 수있는 것이 매우 중요합니다 ... 양방향 MCU 핀이 일반적으로 입력으로 나타나는 것을 잊어 버리는 것은 매우 쉽습니다!
I2C 및 기타 프로토콜은 "오픈 드레인"(또는 "오픈 콜렉터") 출력을 사용합니다. 상하로 끌어 당길 수있는 출력을 갖는 대신 오픈 드레인 출력은 끌어 당길 수만 있습니다. 이것이 외부 풀업 저항이 필요한 이유입니다. 풀업 저항 범위에 대한 추가 제한 사항이 있습니다. 풀업 값은 버스 커패시턴스가있는 RC 회로를 형성합니다. 값이 너무 작 으면 다시 출력 드라이버가 핀을 0으로 끌어 당기기에 충분한 전류를 싱킹하는 것을 방지 할 수 있습니다. 그러나 너무 큰 값은 버스 커패시턴스를 충전하는 데 너무 오래 걸립니다.
위반이 허용되지 않는 설정 / 홀드 시간이 있으면 RC 시간 상수를 결정하는 데 도움이됩니다. 버스 커패시턴스는 PCB 레이아웃에 따라 크게 결정되므로 C와 결합 된 R 값을 선택하여 디지털 입력의 설정 / 보류 시간 내에 편안한 값을 제공 할 수 있습니다.