수명이 더 긴 회로 설계


11

나는 한동안 pic 마이크로 컨트롤러에 대해 배웠고 디지털 전자 기기 취급에 대한 합리적인 지식을 가지고있다. 기본 전자 프로젝트를 수행했으며 이제는 일부 상용 응용 프로그램에서 작업해야합니다.

내 질문은 안정적이고 오래 지속되는 회로를 설계하고 구축하는 방법에 관한 것입니다. LDR에서 입력을 받아 아날로그 판독 값을 7 개의 세그먼트 패널에 표시하는 자동 조명 컨트롤러 회로를 만들었습니다. 그런 다음 일부 계산을 수행하고 릴레이를 통해 조명을 제어합니다. 이 회로는 하루 24 시간 영구적으로 켜야합니다. 처음 몇 개월 동안 회로는 완벽하게 작동했지만 약 6 개월 후에는 오작동이 시작되었습니다. 7 세그먼트 디스플레이 (숫자 일부만 표시)에서 의미없는 것을 보여준 다음 표시기 LED의 전구를 켤 수 있지만 릴레이가 켜지지 않습니다. 문제는 항상 그런 식으로 작동하지는 않습니다. 때로는 완벽하게 작동합니다. 그런 다음 다시 오작동하기 시작합니다. 정확한 순서는 없습니다.

이제 내 질문은 왜이 회로들이 이런 식으로 행동 하는가입니다. 나는 이것이 간격없이 하루 종일 작동하기 때문일 수 있다고 가정합니다.이 종류의 응용 프로그램은 하루 종일 작동해야합니다. 나는 사진에 대해서만 알고 있기 때문에 PIC를 사용합니다. 그림보다 atmal이 더 안정적입니까? (나는 atmal이 대부분의 자동화 응용 프로그램에서 사용되기 때문에 물었습니다. 그림보다 더 자주 사용됩니다) 디지털 전자 전문가의 조언이 필요합니다. 이런 종류의 산업 응용 프로그램은 어떻게 구축됩니까? 따라야 할 특별한 규칙이 있습니까? 보다 안정적인 회로를 설계하는 방법은 무엇입니까? 전문가의 조언이나 지침은 높이 평가됩니다. 감사합니다...

편집하다

답변에서 제안한대로 디자인의 버그를 파악하는 데 도움이되는 추가 리소스를 제공하여 답변을 편집하겠습니다.

아래는 회로가 만들어진 후 회로가 어떻게 보이는지 설명하는 이미지입니다. 회로에 전원을 공급하는 12V 센터 탭 트랜스포머로 반파 정류기를 사용하여 정류 한 다음 7805 IC를 사용하여 조정합니다.

여기에 이미지 설명을 입력하십시오

아래는 회로도 설계입니다.

여기에 이미지 설명을 입력하십시오

추가 정보가 필요한 경우 필요한 모든 것을 제공합니다. 프로그램이 필요한 경우 추가하겠습니다. 프로그램이 다소 길며 인터럽트를 사용합니다.


6
지정된 정격 내에서 IC를 사용하는 경우 (데이터 시트 참조) 거의 모든 제조업체에서 10 년의 수명을 보장합니다. 그리고 그것은 고온입니다. 구성 요소를 비난 할 수 있지만 문제는 디자인에 예기치 않은 일이 있다는 것입니다. 또는 칩 중 하나가 ESD 방전으로 어려움을 겪고 있으며 지금은 표면 만 나오고 있습니다. 유용한 조언을하기 전에 먼저 결함있는 구성 요소를 찾아야합니다.
Bimpelrekkie

2
FakeMoustache가 말한 것 외에도 PIC가 실패의 원인이라고 의심합니다. 개별 부품이거나 회로 설계와 관련이있을 가능성이 높습니다.
DigitalNinja

1
많은 거친 장소에서 PIC가 항상 작동하고 있습니다. 문제 없습니다. 내가 가진 문제는 플러그의 부식과 핀이 깨진 물리적 강제 전기 TFT 커패시터였습니다.
Szidor

1
그리고 BTW 나는 당신이 "atmal"대신 Atmel을 의미한다고 생각합니다. 또한 PIC는 MicroChip의 MicroC입니다 (MicroChip에서 제공). Atmel은 또한 microC 제조업체이며 Atmega microController를 만듭니다. 둘 다 유사한 제조 공정에서 제조되고 유사한 신뢰성을 갖는 단순한 디지털 IC입니다. 하나가 다른 것보다 다소 신뢰할 만하다면 아무도 (그들과 비슷한 가격으로) 그들을 사지 않을 것입니다.
Bimpelrekkie

3
회로도를 게시하고 이상적으로 문제가 발생한 시스템의 그림을 게시해야합니다. 또한 귀하의 문제가 "수명 기대"라고 의심하지만, 전원 공급 장치 청결도 또는 EMI와 같은 기본 사항이 누락되었습니다.
Techydude

답변:


17

전환에 대해 생각하기 전에 견고한 디자인을 갖추어야합니다. 디자인에 문제가있을 수있는 모든 방법에 대해 생각하기 시작해야합니다. 이 작업을 수행하는 좋은 방법은 마이크로 프로세서에 대한 코드를 "마술 상자"라고 생각하지 말고 지시 한 내용을 게이트 레벨 및 시스템 레벨에서 어떻게 작동하는지 생각하는 것입니다. 마이크로 프로세서를 행복하게 유지해야합니다.

  1. 전원-마이크로 프로세서 전원이 깨끗하지 않으면 올바르게 작동하지 않습니다. 즉, PCB 설계를 살펴보고 전원 공급 장치의 인덕턴스 경로가 낮고 칩에 적절한 전원 캡이 있어야합니다. 오실로스코프와 전압계에서 작동하지 않는 설계의 전력을 모니터링하고 측정하십시오. 전력입니까? 전력이 급상승하거나 급강하 할 때 문제가 발생합니까? Vcc 라인에 스파이크 나 딥이 보입니까?
  2. Code \ Clock-코드에 올바르게 작동하지 않는 결함이 있습니까? 간헐적 인 단위로 코드를 살펴 보셨습니까? 현재 가지고있는 코드를 확인 (일치)합니까? 플래시 성능이 저하됩니까? 시계는 어때? 전력은 실제로 시간이 지남에 따라 클럭을 저하시킬 수 있습니다 . 시계가 필요한 것입니까? 클럭을 느리게하면 코드 작동이 중지됩니까?
  3. 환경 보호. 마이크로 프로세서가 설계된 사양으로 마이크로 프로세서를 작동하고 있습니까? 고장난 단위로 온도가 일정합니까? 먼지, EMI, ESD 또는 온도와 같은 환경 적 요인으로 고장의 원인이 될 수있는 지역에 있습니까? 사람들이 입력을 외부 세계에 보호하고 있습니까? 열은 시간이 지남에 따라 전자 제품에 나쁜 영향을 미칩니다. 열 화상 카메라로 모든 것이 정상인지 확인하십시오

실제로해야 할 일은 실패 메커니즘을 찾는 것입니다. 실패 이유를 알아야합니다. 왜 실패했는지 알면 문제를 해결할 수 있습니다. 찾을 수 없으면 문제가 발생하지 않도록 디자인을 무적 상태로 만들어야합니다. 그렇지 않으면 마이크로 프로세서를 전환 할 수 있지만 여전히 동일한 문제가 있습니다. 스위치를 원한다면 ST는 산업용 애플리케이션에 더 적합한 훌륭한 마이크로 프로세서를 만듭니다.


2
환경 요인 목록에 방사선을 추가합니다. 대부분의 종류 (원자, 광자 등)의 이온화 방사선으로 인해 전자 장치에서 SEU 또는 단일 이벤트가 발생하여 출력이 깨질 수 있습니다.
rdtsc

제안한대로 추가 리소스를 추가하여 답변을 업데이트했습니다. 회로도 및 회로도 이미지. 디자인의 버그를 알아낼 수 있습니다.
danial weaber

고마워 보다 안정적인 회로를 설계하는 데 대한 아이디어와 지식을 얻었습니다. 상용 응용 프로그램을 만들기 전에 자세한 내용을 알아야합니다. 고마워 답으로 받아 들여졌습니다.
danial weaber

나는 방사선이 요인이 아니라고 가정하지만, 원자력 발전소 또는 다른 방사선원 (또는 우주에서) 옆에서 이러한 일을 실행하면 일주일에 SEU가 몇 개인 상용 MCU의 경우 심각한 문제가됩니다. 하드 프로세서는 SEU를 갖습니다). 일반 MCU에는 SEU가있을 수 있지만 정상적인 환경에서는 그 가능성에 따라 수년이 걸릴 것이라고 생각합니다.
전압 스파이크

@danial weaber 7805는 보유 한 캡으로 파워 드롭 아웃을 멈추지 않을 것입니다. 5V reg의 전력 소비는 최대 100mA라고 가정합니다 (실제 최대 전류를 측정하면이 계산을 실행할 수 있음). 이는 50Ohm 부하와 같습니다. 캡은 10uf이므로 tau = RC-> tau = 50 * 10uf = 0.5msec입니다. 대략 문제가 발생하는 데 걸리는 시간입니다. 당신은 AC 주 전원에서 약간의 낙하를 견딜 수있는 몇 달러에 싼 중국어 "벽 사마귀"를 구입할 수 있습니다. 또는 더 관대 할 수있는 DC-DC 변환기를 사용할 수 있습니다. PCB의 접지 상태는 어떻습니까?
전압 스파이크

7

당신이 말하지 않기 때문에, 나는 문제의 회로가 어떻게 물리적으로 구성되는지에 의문을 제기합니다-이것은 납땜하지 않은 누군가가 일시적인 "연결하기 위해 밀어 넣기"브레드 보드에 회로를 구성하고 떠날 때 일반적으로 나타나는 문제의 유형처럼 들리기 때문에 들립니다. 몇 달 동안

이것이 귀하의 사건과 유사하다면 문제가있는 것입니다. 그렇지 않다면, 여전히 연결 상태가 불량한 것으로 의심되지만 "납땜 실패"문제보다 "납땜 기술"문제가됩니다.


3
이 부적절한 납땜 기술을 추가하면 기계적 강도가 약한 조인트와 훨씬 짧은 시간 후에 조인트가 파손되는 기타 문제가 발생할 수 있습니다.
crasic

고마워 나는 대답을 업데이트했으며 디자인의 버그를 알아낼 수 있다면 매우 감사 할 것입니다.
danial weaber

납땜은 양호 해 보이지만 납땜에는 영향이 없습니다. 프로그램과 관련된 문제 일 수 있습니다. 그러나 어떻게 한 번에 잘 작동
합니까

... 납땜면의 그림을 제공합니까? 때때로 작동하지만 때로는 작동하지 않는 프로그래밍 문제에 관해서는 다양한 옵션이 이미 질문에 대한 언급에서 언급되었습니다. 그리고 소켓과 IC 핀 사이에 솔더리스 전위 실패 지점으로 IC가있는 소켓이 있습니다. 소켓은 때때로 좋은 생각이지만 문제를 일으킬 수 있습니다. IC를 제거하고 교체 할 때 문제가 한동안 개선되면 문제의 일부일 수 있습니다. ... 또한 전원 공급 장치 필터 커패시터는 브리지와 레귤레이터 입력 사이에 33pF의 작은면이 약간 보입니다. 정말?
Ecnerwal

5

PIC 공급 장치에는 디커플링 커패시터가 없지만 이와 같은 작은 보드에는 아마도 멀리 떨어질 것입니다. 전압이 임계 값 아래로 떨어질 경우 PIC가 재설정되도록 브라운 아웃 보호 기능을 추가 할 수도 있습니다.

그러나 나는 당신의 코드를보고있을 것입니다.

우선 마이크로에서 워치 독을 활성화해야합니다. 코드가 제대로 작동하지 않으면 워치 독이 다시 시작합니다.

그러나 아마도 어딘가에 버그가 있습니다. 전문직의 임베디드 소프트웨어 엔지니어로서, 초보자가 실수를 범하는 경우가 많기 때문에 인터럽트와 관련이 있다고 생각합니다. 초보자는 코드에서 실수를 저지를 수 있기 때문에 처음으로 본 것입니다. (기분 나쁘게하지 마십시오-나는 정말로 더 잘 알고 있어야 할 때를 포함하여 많은 실수를 저질렀습니다. ;-)


고마워 +1 이제 나는 내가 실수를 저지른 것을 이해합니다. 상용 응용 프로그램을 구축하기 전에 더 많은 것을 배워야합니다.
danial weaber

3

나는 당신 이 7805의 양쪽에 멋진 지방 커패시터가 필요하다는 의견에 동의합니다 . 특히 거기에 릴레이가 있습니다. 이것이 근본적인 문제라고 생각합니다. PIC의 전원 공급 라인에 디커플링 커패시터를 추가했습니다.

나는 또한 마른 관절을 찾고있을 것입니다.

또한 프로그램을 철저히 확인하고 감시 시설을 사용하고 있습니다.

그러나 다음은 귀하의 질문에서 흥미로운 몇 가지 내용입니다.

그것은 7 세그먼트 디스플레이에서 의미없는 것을 보여 주었다 (숫자의 일부만 보여 주었다).

일어난 일을 해결하려고 노력하고 있습니다. 예를 들어 PIC가 추락 했습니까?

이제 회로도를 올바르게 읽으면 7 세그먼트 디스플레이 각각에 무언가 가 나타나고 적어도 두 개에 대해 일정하고 일정하게 표시되도록하려면 각각 Q1, Q2 및 Q3이 계속 켜져 있어야합니다. 순서대로 켜지고 세그먼트에 대한 출력이 정확해야합니다. 이것은 PIC가 여전히 최소한 일부 코드를 실행하고 있지만 어떻게 든 숫자 출력이 스크램블되었음을 알려줍니다. 예를 들어, 표시 할 숫자 0-9가 제공되지 않지만 17 또는 이와 유사한 숫자 (임의의 메모리 위치에서 숫자 레이아웃을 얻음)가 제공 될 수 있습니다.

당신은 말합니다 :

인디케이터 LED에 전구가 켜지지 만 릴레이가 켜지지 않습니다.

회로도를 살펴보면 PIC 출력이 맥동하거나 타이머 출력 포트이기 때문에 불가능하지 않은 이상이 아니면 전기 고장 (예 : 건식 조인트), PSU 문제 (위의 커패시터 참조) 중 하나 여야합니다. 또는 Q4 트랜지스터가 완전히 포화되지 않았을 수 있습니다. PIC 데이터 시트를 읽지 못했지만 BC547의 최대 I C 는 100mA (릴레이와 LED를 구동하기에 충분 함)와 hFE는 120의 레벨에서 약 1mA가 필요합니다. 따라서 10k는 약간 많을 수 있습니다. 3k3을 시도 할 수 있습니다.

또한 유용한 디버깅 수단이 없습니다. 디스플레이가 항상 켜져 있기 때문에 최종 소수점 도트를 초당 한 번 깜박이거나 유사하게 만들 수 있습니다.

어두운 곳에서 거친 찌르기를해야한다면, 특히 릴레이가 켜져있을 때 회로에 상당한 전류가 흐르고 있다고 생각합니다. 때문에 AC 전압이 제로 교차 7805의 입력 측에 큰 용량의 부족으로, 7805은 출력 전류가 제공되지 않을 것이다 (실제로, 커패시터 자체가 배출 될 수있다) - 7805의 데이터 시트에서 '는 입력 전압은 입력 리플 전압의 낮은 지점에서도 출력 전압보다 일반적으로 2.0V 이상으로 유지되어야합니다 . 따라서 PIC의 전압이 떨어질 수 있습니다. PIC 옆에 5V 라인의 범위를 설정하고 멋진 5V 라인 이외의 것이 보이지 않으면 문제가있는 것입니다.


고마워 +1 이 대답은 회로를 설계하는 방법과 내가 저지른 실수에 대한 좋은 아이디어를 주었다. 검사 한 결과 capasitor를 추가하고 결과를 알려줍니다.
danial weaber

3

마이크로 프로세서에서 비정상적인 동작이 발생할 때마다 두 가지 주요 원인 이 있습니다. 1) "바이 패스"커패시터 누락 또는 불충분, 2) "플로팅"마이크로 프로세서 핀.
모든 "칩"에는 Vcc (+ 5v)에 연결된 칩 핀에 바이 패스 캡이 있어야합니다.
사용되지 않은 모든 핀이 있어야 높거나 낮은 동점,하지만 결코 남겨 "부동."

Q4 "충분히 열심히"운전하고 있지 않다는 데 동의합니다. R12에는 1K를 권장합니다.


답변에 +1 감사합니다. 바이 패스 Capasitor를 추가해보십시오. 디자인에 사용하지 않는 핀에 값을 할당하는 것이 좋습니까?
danial weaber

올바른 단어는 "바이 패스"가 아니라 "디커플링"커패시터입니다. 또한 부동 핀은 재미있는 일을 할 수 있다는 데 동의했습니다. 나는 세 번째 주요 소스 인 브라운 아웃 또는 유사한 회피 재설정 조건을 추가합니다. 그러나 그때 조차도이 경우 인터럽트로 복잡한 작업을하는 초보자가 있으면 내 돈은 항상 소프트웨어에 있습니다.
Graham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.