STM32 (ARM Cortex M3)에서 사용하지 않는 핀의 기본 설정에 대한 권장 사항-풀업 / 풀다운?


13

우리는 현재 다양한 STM32 마이크로 컨트롤러 제품군을 사용하고 있습니다. 다음을 알고 싶습니다.

  1. 풀업 또는 풀다운을 모두 선택할 수있는 옵션이있는 경우 일반적으로 마이크로 컨트롤러 핀에 권장되는 기본 설정은 무엇입니까? 하나 또는 다른 것과 함께 갈 때의 장단점은 무엇입니까? (기본적으로 입력으로 설정한다고 가정)

  2. 특히 STM32 마이크로 컨트롤러 제품군에 사용되지 않는 핀으로 무엇을해야하는지 알고 싶습니다. 우리는 핀을 떠 다니지 말아야한다는 것이 분명합니다 (데이터 시트에 :()라고 나와 있지만 풀업 또는 풀다운으로 입력하도록 입력해야합니까? 특히, 싶습니다. ESD에 가장 취약한 설정을 선택하고 가능한 경우 가장 적은 전력을 소비합니다.

  3. 중요 핀의 경우 핀을 올바른 기본 상태로 올바르게 설정하려면 펌웨어를 사용해야합니까, 아니면 외부 하드웨어 (외부 풀업 또는 풀다운 연결)에 책임이 있습니까? 외부 저항에 대해 선택된 값이 내부 풀업 또는 풀다운보다 큰 경우 펌웨어 설정은 중요하지 않습니다.

위의 작업을 위해 볼 수있는 전문가는 어떤 이유로 든 (하드웨어 등의 결함으로 인해) 마이크로가 제대로 초기화되지 않으면 핀을 올바르게 설정하기 위해 펌웨어에 의존하지 않는다는 것입니다.

내가 보는 단점은 하드웨어를 만드는 데 더 많은 비용이 든다는 것입니다.

위의 빛을 비추어 주시면 감사하겠습니다.

감사..


사용하지 않는 핀을 출력으로 설정하지 않는 이유는 무엇입니까? 그러면 풀업 대 풀다운 문제가 제거됩니다.
코너 울프

주의 : "모든 리셋 이벤트에서 모든 GPIO는 플로팅 입력입니다. 이는 비상시 GPIO가 실수로 손상되는 것을 방지합니다." embedded-lab.com/blog/stm32-gpio-ports-insights
cp.engr

답변:


10

이 답변은 STM32에만 국한된 것이 아니라 수년에 걸친 경험과 그러한 많은 토론에 근거합니다. 다른 사람들은 이것에 추가 할 수 있습니다-그것은 요점을 포괄하지만 완전하지 않을 수도 있습니다.

누군가가이 간단하지만 근본적인 질문을하고 그러한 "작은 것들"이 실제 생활에서 어떻게 '거칠게 보일'수 있는지에 대한 인식을 보이는 것은 고무적인 일입니다.

즉, "마이크로가 제대로 초기화되지 않으면 ..."가 실제로 "... 마이크로가 제대로 초기화되지 않을 때 ..."라고 읽습니다.-)-이 사실을 깨달았습니다.

그래서:

  • 잘 정의 된 결과를 얻는 데 정말로 관심이있는 사람들에게는 외부 풀업 또는 풀다운 사용이 필수적입니다. 나머지는 모두 보너스입니다. 즉, 내부 pullxxx를 사용하여 입력으로 설정하면 거의 항상 작동하는 절충안이됩니다.
    그러나 "거의 항상"이 디자인에 충분하지 않은 경우 외부 풀 xxx가 필요합니다.

  • 풀업 또는 다운은 압도적으로 더 나은 결과를 보이지는 않습니다. 데이터 시트에서 결정될 수있는 IC마다 다를 수 있습니다. 장치 외부 전류로의 누설이 적을 가능성이 있으므로 풀다운을 선호합니다. 그러나 이것은 컨 포멀 코팅 된 PCB 및 / 또는 양성 환경에서는 최소화 될 수 있습니다.

  • 당신이 정말로 관심이 있다면 시작 조치를보고 싶을 수도 있습니다. 예를 들어 풀업 핀은 어느 단계에서 낮게 시작하여 높은 통과를합니다. 풀다운 핀은 아마도 전체적으로 낮게 유지 될 것입니다. 이것은 중요하지 않지만 완전성에 대해 언급됩니다.

  • ESD 감수성은 장치에 따라 다르며 대칭 일 가능성이 높으며 평균적으로 많은 프로세서에 비해 드라이버가 비대칭 인 경우 소스보다 드라이버가 더 잘 싱크되는 경향이 있으므로 풀다운을 선호합니다. ESD에 대해 많은 관심을 가지고 있다면 낮은 임피던스 경로는 아마도 더 나은 ESD 보호 기능을 제공하기 때문에 풀다운으로 낮은 출력을 사용하는 것이 좋습니다. 그러나 ESD에 대해 많은 관심이 있다면 다른 방식으로 ESD를 설계하고 IC를 주요 보호 수단으로 사용하지 않아야합니다.

  • 질문 3-외부 pullxxxs가 바람직하지만 적절한 디자인의 제한이 높은 값을 사용하고 원하는 경우 내부 xxx를 병렬로 사용하는 것이 안전 해 보입니다. 그러나 내부 풀 xxx는 종종 2 : 1 R 효능을 가지므로 외부 만 사용하여 최대 R과 최소 전류를 얻을 수 있습니다. 물론 피하고 싶은 것은 외부 풀업과 내부 풀다운 또는 그 반대입니다.하지만 문제가되지는 않습니다.

  • "적절한 디자인의 하이 엔드를 제한하는 중 ..."이라고 말하면 "제한을 지나치지 않습니다 ..."라는 의미입니다. 즉, 핀은 지정된 저항 값을 가지므로 최악의 경우 Vin 스펙을 충족 할 수 있습니다. 더 큰 저항은 저항에서 전류를 덜 소비 할 수 있지만 내부 스위치를 약간 켜기 시작할 수 있습니다. 즉, 내부 드라이버가 누설 전류 (극도로 작을 것임)가 dirver로 전류를 증가시키고 매우 약간 속삭이는 것을보기 시작함에 따라 Rpulldown_current 대 최저 전체 전류 트레이드 오프가있을 수 있습니다.

  • 예를 들어 풀다운을 사용하는 경우 핀을 출력으로 설정하고 낮게 구동하는 데 더 낮은 전력을 찾을 수 있지만 이는 당연히 결정될 수있는 옵션입니다.

  • 거의 제쳐두고-보호 다이오드가 작동 중 어느 단계에서나 "임의의 모든 전류"를 처리하지 않도록하십시오. 그렇게하면 완전히 설명 할 수없는 프로세서 동작으로 이어질 수 있습니다. 전류가 적을수록 문제가 발생할 확률이 낮아집니다.


1
매우 통찰력있는 답변. 대단히 감사합니다. "ESD에 대해 많은 관심이 있다면 낮은 임피던스 경로가 (아마도) 더 나은 ESD 보호를 제공 할 것이므로 풀다운과 함께 낮은 출력을 사용하고 싶을 수 있습니까?" 출력으로 설정하는 경우 기본적으로 드레인을 열거 나 풀 풀 (높음 / 낮음)을 사용 하시겠습니까?
IntelliChick

@IntelliChick 출력 설정의 요점은 낮은 임피던스에서 알려진 상태로 구동하는 것입니다. 즉, 오픈 드레인, 특히 임피던스가 높기 때문에 HI 출력으로 오픈 드레인으로 설정하지 않는 것이 가장 확실합니다.
DKNguyen

2

무엇을 최적화하고 있습니까? 비용 최적화는 사용하지 않는 핀을 출력으로 설정하도록 지시합니다. 안정성 최적화는 펌웨어가 사용하지 않는 핀을 적절한 것으로 설정할 수있는 짧은 시간에도 모든 핀 레벨이 정의되도록 지시합니다.

한 번 프로세서 보드의 신뢰성 계산을 확인해야했습니다. 그것은 모든 곳의 디커플링 캡과 모든 I / O 핀의 풀-투-무슨 저항으로 잘 설계되었습니다. 신뢰성 엔지니어는 핸드북을 꺼내고 관련된 모든 구성 요소의 고장률을 추가했으며 수동 부품의 고장률이 지배하는 수치로 끝났습니다. 이 수치는 요구 사항보다 높았으므로 문제가있었습니다. 그 저항기를 제거하면 그림이 정상입니다. 그러나 그 제안에서 전기 엔지니어들은 분노로 소리를 내기 시작했습니다 (바로 IMO). 나는 그 이야기가 어떻게 끝났는지를 기억하지 못한다. 나는 고객에게 가서 저항이 큰 전류를 가지고 있지 않다는 이유로 계산에서 저항의 고장률을 생략하기 위해 분배를 요구했다고 생각합니다.


1

사용하지 않는 핀을 출력으로 구성하고 낮게 설정했습니다.


일반적으로 푸시-풀 또는 오픈 드레인으로 설정 하시겠습니까? 두 경우 모두 낮게 설정 하시겠습니까? 왜 당신이 다른 것을 선택할 것인지 말해 주실 수 있습니까?
IntelliChick

@Leon Heller- "통상 작동"테스트를 충족하지만 "micrprocessor가 제대로 초기화되지 않거나 Murphy가 가끔씩 반 비트로 무작위로 뒤집을 때"실패합니다. , 작동합니다.
러셀 맥마흔
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.