회로는 브레드 보드에서 작동하지만 PCB에서는 작동하지 않습니다.


9

브레드 보드에서 완벽하게 작동하는 상당히 간단한 회로가 있지만 PCB로 전송하는 데 많은 문제가 있습니다. 나는 현재의 경험을 벗어난 매우 이상한 행동을보고 있습니다. 그래서 조언을 얻고 싶습니다.

회로는 Wi-Fi 모션 센서를 구현하지만 RF 부분 또는 다이어그램의 uC 부분에 도달하기 전에 문제가 발생합니다. 여기에 이미지 설명을 입력하십시오

문제가있는 부분에 동그라미를 표시했습니다.

R3은 풀다운 저항으로, b / c AMN42121은 모션이 감지되면 출력을 HIGH로 구동하지만 모션이 없으면 정지 상태로 유지되므로 풀다운이 필요합니다.

나는 C1을 사용하여 움직임과 움직임 없음 사이의 전환을 부드럽게했습니다. C1은 출력 레벨을 천천히 부드럽게 부드럽게하므로 몇 초간 움직이지 않으면 "동작 없음"상태가됩니다.

인버터가 b / c attiny의 외부 인터럽트가 LOW 레벨에 의해 트리거되므로 로직을 반전시켜야합니다. 불행히도 하나의 인버터에 큰 DIP 패키지를 사용해야했지만 다른 것을 찾을 수 없었습니다.

이 회로를 위해 양면 PCB를 만들었습니다. 여기에 이미지 설명을 입력하십시오

다시 말하지만, 지금까지 원형 영역 만 조립했습니다.

S1, R3 및 C1을 납땜 한 후 센서 출력에서 ​​다음 신호를 얻습니다. 여기에 이미지 설명을 입력하십시오

이것은 내가보고 싶은 것이므로이 시점까지 모든 것이 잘됩니다.

다음으로 IC2 용 소켓을 납땜하고 인버터를 연결했습니다. 이곳에서 미스터리가 시작됩니다. 처음에는 모든 것이 좋았지 만 잠시 동안 보드를 망쳐 놓으면 회로가 갑자기 작동을 멈췄습니다. 위에서 본 좋은 신호 대신 센서 출력에 프로브를 배치하면 다음 두 가지 예에서 변형이 나타납니다.

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

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

첫 번째 예제와는 달리 두 번째 예제의 신호는 모션에 의해 생성되지 않습니다. 톱니 모양은 나에게 어떤 동작도없이 자체적으로 나타납니다.

많은 테스트를 거친 후 다음을 확인할 수있었습니다.

  1. 소켓에서 인버터를 분리하면 센서가 다시 올바르게 작동합니다.
  2. 전원이 연결된 상태에서 인버터 전원을 차단하면 센서가 작동합니다.
  3. 다른 인버터를 사용해도 효과가 없습니다.
  4. 플럭스 리무버 또는 아세톤으로 보드를 사용하고 브러시로 문지르면 센서가 다시 작동하지만 아주 짧습니다. 어느 시점에서 나는 칫솔로 적극적으로 문질러 신호를 다음과 같이 만들 수있었습니다. 여기에 이미지 설명을 입력하십시오

이 마지막 그림에서도 신호가 LOW 레벨로 되돌아 가지 않습니다. 칫솔질을 멈추자 마자 효과가 사라졌습니다.

지금까지 이것은 실제로 문제를 볼 수 없다는 점을 제외하고 약간의 납땜 결함을 나타냅니다. 나는 강력한 배율로 조심스럽게 보드를 살펴보고 연속성을 생각할 수있는 모든 지점을 테스트했습니다. 모든 것이 체크 아웃되었습니다. 다음은 IC 소켓 및 센서의 납땜 작업에 대한 근접 촬영입니다. 여기에 이미지 설명을 입력하십시오

나는 이제 아이디어가 없어서 조언을 많이 주시면 감사하겠습니다. 감사합니다.

편집하다:

방금 흥미로운 것을 발견했습니다. 예제 # 2 (톱니 모양 신호)를 자세히 살펴보면 하향 경사가 예상 C1 방전 곡선의 세그먼트임을 알 수 있습니다. 전압 레벨이 인버터의 임계 값에 가까워지고 너무 많은 시간을 소비하면 인버터가 혼란스러워하는 것 같습니다! 노이즈가 거의 발생하지 않고 입력을 다시 HIGH로 되돌 리거나 센서 출력이 다시 모션의 b / c에 도달 할 때까지 "불확정 한"노이즈 상태에서 무한정 행 아웃합니다 (예 # 1).

이 이론을 테스트하기 위해 C1을 10 배 더 작은 캡으로 대체하여 방전 곡선을 훨씬 더 가파르게 만들었습니다. -인버터가 더 이상 혼동되지 않고 회로가 작동합니다!

물론 이것은 내가 원하는만큼 지연을 제공하지 않기 때문에 C1의 목적을 상실합니다. 브레드 보드의 인버터에서 왜이 문제가 발생했는지 잘 모르겠지만이 문제를 해결할 수있는 매우 쉬운 수정이있을 수 있습니다. 브레드 보드에 큰 "스트레이"커패시턴스가 있다는 것을 읽었으므로 어딘가에 전략적으로 커패시터를 더 추가해야합니까? 어떤 아이디어?

편집 2 : 일부 주석 작성자가 요청한 이후 상위 뷰 제공 여기에 이미지 설명을 입력하십시오


이런 바나나는 땜납 조인트가 끔찍해 보인다 . 거기에는 약간의 흐름이 절실히 필요합니다.
코너 울프

@Connor Wolf : 연결되지 않은 IC 핀을 언급하고 있습니까? 그것들은 전혀 납땜되지 않았으며, b / c 납땜 할 이유가 없었습니다. 아니면 다른 솔더 조인트에 대해 이야기하고 있습니까?
Val Blant

왜 인버터를 전혀 사용하지 않습니까? 220-470 옴의 직렬 저항을 사용하여 센서의 출력을 PB2에 연결하면 괜찮습니다. 풀다운 저항을 추가 할 수 있지만 10Meg가 너무 높습니다. 10k로 변경하십시오. 또한 C1을 연결할 필요가 없습니다. 간단한 지연 루틴으로 소프트웨어에서 필터링을 수행 할 수 있습니다. 또한 C1은 센서에 부하를 추가하여 인버터 IC가 연결될 때 부하가 너무 커서 센서가 구동 할 수없는 것일 수 있습니다.
abdullah kahraman

나는 지금 확인했고 센서는 최대 100uA의 출력을 줄 수 있습니다! 인버터는 약 1mA의 입력 전류를 요구합니다! 따라서 제가 제안한 위의 풀다운 저항 (10k)이 너무 큽니다. 330k 또는 470k로 변경
abdullah kahraman

@abdullah kahraman : 죄송합니다-당신의 생각을 이해하지 못합니다. atinty의 INT0은 LOW로 전환 될 때 트리거되므로 "no motion"은 HIGH 입력으로 표시되어야합니다. 그렇지 않습니까? 아이디어를 좀 더 자세히 설명해 주시겠습니까?
Val Blant

답변:


7

편집-회로의 잘못된 해석으로 인해 센서의 출력에 초점을 맞추기 위해 답변을 편집하고 있습니다. 아날로그 출력을 사용하여 인버터에 공급하고 있습니까? 74HC14와 같은 슈미트 트리거를 사용해보십시오.


1
@ValBlant 나는 ATtiny 친구에 대한 전문가가 아닙니다-당신이 그것을 설정했다면 그보다 극성이어야합니다-인버터의 입력 신호 레벨은 무엇입니까? 74HC14와 같은 슈미트 트리거 인버터?
Andy 일명

1
어쩌면 뚜껑을 제거하고 그 모양을 보는 경우 필요할 경우 ATtiny 코드에서 과도 상태 사이에 회로를 유지하는 무언가를 할 수 있습니까? 이전에 누군가 제안했듯이 인버터에 10n 디 커플러를 설치 했습니까?
Andy 일명

1
Schmitt 트리거 친구가 필요하다고 생각합니다. 느슨하게 아날로그 느린 상승 시간과 하강 시간을 처리 할 수 ​​있습니다. 그들이 의도 한 것입니다. 어쩌면 항상 좋은 이유가 있지만 원래 회로가 우연으로 인해 작동했을 수도 있습니다!
Andy 일명

1
@ValBlant TC74HC04 데이터 시트의 "입력 상승 및 하강 시간"사양에 유의하십시오. 권장되는 가장 느린 입력 신호를 지정합니다 (Vcc = 4.5V에서 500ns 상승 / 하강 시간). 특히 Toshiba 데이터 시트에서 명시 적으로이를 최대 값으로 지정하지 않기 때문에 놓치기 쉬운 사양입니다.
크리스 존슨

1
슈미트 트리거와 함께 인버터를 사용하면 문제가 해결되었습니다.
Val Blant

11

회로를 자세하게 연구하지 않으면 디커플링 커패시터가 없다는 것이 분명합니다.

각 칩의 전원 핀에서 하나를 납땜하십시오.

또한 '스크러빙이 효과가 있습니다'는 의견은 건조한 관절 또는 간헐적 인 연결이 어딘가에 있음을 나타냅니다. 모든 납땜을주의 깊게 검사하십시오.

DIL 칩이 과도하게 사용되는 경우 트랜지스터를 사용하여 시간 지연을 소프트웨어에 넣을 수 있습니다.


좋아, 디커플링 커패시터가 무엇인지에 대한 독서를했다. 나는 고속 장치가 아닌 인버터에 전원을 공급하기 위해 그런 것이 필요하다는 것에 놀랐지 만 확실히 시도해 볼 것입니다. 대부분의 소스는 IC의 전원 핀에 세라믹 0.1uF 캡을 제안합니다. 해당 범위에 세라믹 캡이 없지만 전해액이 있습니다. 그게 효과가 있습니까, 아니면 이것을 위해 세라믹이 절대적으로 필요합니까?
Val Blant

인버터와 관련하여 실제로 트랜지스터를 처음부터 시작했지만 나중에 트랜지스터 인버터가 열릴 때 너무 많은 전력을 소비한다는 것을 깨달았습니다. 내 회로는 약 60uA (전송하지 않을 때)에서 작동해야하는데, 트랜지스터로는 달성 할 수 없었지만 인버터 IC는 일을하는 것처럼 보였습니다.
Val Blant

디커플링 캡으로 0.1uF 및 1uF 전해를 전혀 변경하지 않고 시도했습니다. 그러나 나는 힌트가 될만한 흥미로운 것을 발견했습니다. 새 정보로 기본 게시물을 업데이트하겠습니다.
Val Blant

3

주된 관심사는 전력 소비를 줄이는 것 같습니다.

AMN42121은 약 50uA를 지속적으로 소비합니다. 74HC04는 약 20uA를 지속적으로 소비합니다. ATTINY85는 깨어 났을 때 간헐적으로 약 300uA를 소비합니다. 라디오는 전송할 때 밀리 암페어를 사용합니다.

센서가 얼마나 자주 트리거됩니까? 배터리 수명을 추정하기 위해 전력 계산을 수행 했습니까?

인버터와 '슬로우 다운'커패시터를 폐기하고 센서 데이터 시트에 따라 10K 풀다운으로 센서를 MCU에 직접 연결하고 MCU에 시간 지연 로직을 작성하는 것이 좋습니다.

[편집] 약간의 문제가 있지만 회로를 한 번에 한 단계 씩 테스트하고 있음을 알게되어 기쁩니다. 완성 된 프로젝트를 잘못 찾는 것보다 훨씬 쉽습니다.


1
인버터가 필요하지 않습니다. AVR에는 INT0 / 1 외에 PCI-핀 변경 인터럽트가 있습니다. PCI는 HIGH 또는 LOW인지에 따라 핀 상태의 변화를 감지합니다. 이를 트리거 한 다음 수신 거부 코드를 추가 할 수 있습니다.
lyndon

74HC04는 그 이상을 많이 소비한다고 생각합니다.
abdullah kahraman

내 배터리에서 코드의 자세한 배터리 수명 계산 및 일부 알고리즘 분석을 수행하면 여러분이 옳다는 것을 알 수 있습니다. 핀 변경 인터럽트 대신 인버터를 사용하여 전혀 승리하지 못했습니다. 다시해야합니까, 당신이 제안한대로하겠습니다. 그러나 현재 회로의 배터리 수명은 최악의 경우 270 일이 될 것이므로 설계를 그대로두고 인버터에서 슈미트 트리거를 사용하고 다음 프로젝트로 넘어갈 것이라고 생각합니다. 모두 감사합니다!
Val Blant
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.