새로운 보드를 어떻게 공격합니까?


24

제조업체에서 PCB를 다시 가져옵니다. 그것은 새로운 디자인이며, 물론 모든 주요 부품을 브레드 보드로 만들었지 만 문제가 발생할 것임을 알고 있습니다. 문제를 일으킬 수있는 것들이 너무 많습니다. 예 :

  • 회로도의 오류
  • ERC / DRC에서 찾을 수없는 레이아웃 오류
  • 납땜 중 부품이 잘못됨
  • 납땜시의 쇼트 등
  • 위의 조합

최근에 두 개의 비교적 복잡한 보드가있어서 기본적으로 오류를 찾기 위해 어셈블리 후 전체 보드를 채워야했습니다. 오류를 찾았지만 보드는 폐기되었습니다.

나는 최소한의 부품과 손으로 납땜 할 수없는 부품으로 시작하려고했습니다 (페이스트, 스텐실 및 토스터를 사용하고 있습니다). 일반적으로 이것은 MCU, JTAG 커넥터 및 몇 개의 커패시터입니다. 그런 다음 다른 영역을 점진적으로 채우면서 문제를 확인하고 있습니다.

이 방법은 효과가 있지만 실제로 느립니다. 또한 특정 하드웨어가 있다고 가정하는 코드에서 주석을 달거나 주석 처리해야합니다.

새로 설계된 PCB에 접근하는 방법에 대한 팁 / 제안이 있습니까?

편집 : 나는 주로 숨겨진 파워 레일 반바지 또는 MCU를 차단하는 것과 같이 보드를 죽이게하는 문제에 대해 생각하고 있습니다.


2
벌크 및 바이 패스 캡을 포함하여 전원 공급 장치 및 분배 장치를 채우고 보드에 입력 전원을 공급하는 것이 좋습니다. 탄탈륨 캡이 거꾸로되어 있으면 서둘러 알게됩니다. 그런 다음 해당 장치를 채우기 위해 계속 진행하기 전에 MCU 등의 오른쪽 핀에 올바른 공급 전압이 있는지 확인하십시오.
JustJeff

1
부수적 의견으로, 코드를 '모듈 식'으로 유지하는 것이 좋습니다 (주변 장치의 기능 제거). 나는 항상 주변 장치를 무시하지만 주변 장치가 올바르게 디버깅 될 때까지 프로그램 논리를 통해 실행되는 '데모'모드에서 작동하도록 코드를 작성합니다. 그런 다음 프로그램이 실행되어 프로그래밍되었는지 알 수 있습니다.
AngryEE

2
입력 전원을 공급할 때는 낮은 전류 제한으로 시작하십시오.
starblue

1
커뮤니티 위키 여야합니다.
Brian Carlton

1
@ Morten-아, 말이됩니다. 당신이 맞아, 모자는 문제를 일으킬 가능성이 거의 없습니다.
케빈 베르메르

답변:


10

부품의 성능 측면에서 측정해야하는 부분이 없다면 미리 브레드 보드를 만드는 것은 시간 낭비라고 판단했습니다.

심지어 보드를 조각으로 만드는 것은 시간 낭비라고 생각합니다. 초기 하드웨어 디버그에는 하루나 이틀이 걸립니다. 어쨌든 소프트웨어 통합까지는 미묘한 문제가 나타나지 않습니다. 차라리 회로의 몇 가지 임시 축소보다 하나의 회로 (전체 회로)를 디버그하고 싶습니다.

그냥 물건을 만드십시오! 전체 보드를 조립하고 전원을 켭니다. 공급 전압을보십시오. 얼마나 많은 mA를 소비합니까? 어느 부분이 뜨겁습니까? 어느 부분이 따뜻한가요? 그런 다음 보드에있는 모든 마이크로 컨트롤러에 펌웨어를 굽습니다. 그런 다음 펌웨어 작성을 시작하십시오. 시계가 가고 핀을 토글하십시오. 직렬 (또는 무엇이든) 통신을 시작하십시오. 이제 각 주변 장치에 대한 테스트 프로그램을 작성하십시오. 그런 다음 프로덕션 테스트 픽스처를 빌드하고 "실제"펌웨어 작성을 시작하십시오.


편집하다:

걸린 레일을 찾는 중

공급 레일이 접지에 붙어 있으면 (저항계로 0 옴 측정) 벤치 전원으로 전원을 켜십시오. 전압을 정상적으로 설정하고 전류 제한을 수백 mA로 설정하십시오. 종이에 PCB 디자인을 인쇄하고 마이크로 볼트를 측정하는 DMM을 찾으십시오. 공급 단자에서 시작하여 마이크로 볼트를 측정하고 PCB 출력에서 ​​전압 강하를 기록합니다. 마이크로 볼트 차이를 살펴보면 PCB를 제거하거나 잘라 내지 않고도 전류가 어디로 가는지 정확하게 추적 할 수 있습니다. 이 기술은 회로를 통해 많은 양의 전류를 펌핑 할 수 있기 때문에 저항계를 사용하는 것보다 낫습니다.

다른 방법으로 채워진 보드에서 단락 된 트레이스를 찾는 데 유사한 기술이 작동합니다. 범위 내에서 전압 범위에있는 "디지털"트레이스를 찾으려면 스코프를 사용하십시오.


나는 같은 접근법을 사용했다. 그것은 일반적으로 작동하지만 몇 번 나에게 오히려 심하게 물린 돌아왔다. 지난 번에는 제조 과정에서 도금되고 접지 및 전원 평면을 단락시킨 커넥터 아래의 겉보기에 무해한 슬롯이었습니다. 내 잘못은 전적으로 실패했지만 찾기 힘들고 찾기 힘든 오류였습니다.
morten

1
"Just build the thing"접근 방식을 사용하려면 하나 이상의 PCB를 주문해야한다고 생각합니다.
morten

나는 비슷한 목적으로 사용되는 "squeaker"프로브를 보았습니다. 슬프게도 제품에 대한 링크를 찾을 수 없습니다.
Toybuilder


20

처음에는 보드를 최소로 채우고 전원 공급 장치를 먼저 작동시킨 다음 MCU를 한 번에 하나씩 여러 하위 시스템을 추가 한 다음 계속하기 전에 테스트하고 필요에 따라 테스트 소프트웨어를 작성하여 테스트합니다. 프로세스가 전혀 느리지 않습니다.

복잡한 보드 테스트를 거친 보드가 있습니다. 추가 비용이 들지만 그만한 가치가 있습니다.


3
훨씬 빠른 속도를 위해이 방법으로 발견 된 하나의 주요 버그만 필요합니다
Kortuk

11

나는 아주 작은 회로를 브레드 보드 만합니다. 그런 다음 작은 회로를 프로토 보드에 납땜합니다. SMD 칩으로 작업하는 경우 SMD-> 스루 홀 어댑터를 얻는 데 도움이됩니다.

이것은 기본적으로 "빌딩 블록"을 제공합니다. 그런 다음이 회로 블록을 개발 키트 또는 사용하려는 MCU가있는 오래된 PCB에 납땜합니다. 4 ~ 5 개의 서로 다른 소형 PCB가 더 큰 PCB에 매달려있어 끔찍한 것처럼 보이지만 작동합니다.

개발 보드에서 작업하는 빌딩 블록이 있으면 PCB로 이동합니다. PCB를 만드는 동안 회로도가 전혀 바뀌지 않으면 돌아가서 빌딩 블록을 다시 작업하여 개발자 보드에서 다시 테스트합니다.


참고로, 코드를 주석 처리하는 대신 #define 및 #ifdef 전 처리기 지시문을 사용해야합니다. MCU에서 기능적인 코드 블록을 추가하고 제거하기가 훨씬 쉽습니다.


내가 생각하는 방식은 디자인을 발전시키는 매우 좋은 방법입니다. 또한 나중에 부품을 재사용 할 수 있습니다.
Trygve Laugstøl

9

복잡한 보드의 경우 보드 자체를 개발하는 것만 큼 테스트 계획을 개발하는 것이 거의 중요합니다. 보드를 설계 할 때조차도 구현이 아직 존재하지 않더라도 테스트 할 대상을 아는 것이 좋습니다. 그들이 말하는대로 "테스트를위한 디자인". 키 포인트를 테스트 포인트 패드로 가져와야합니다. 개별 서브 시스템을 독립적으로 또는 최대한 독립적으로 가져올 수 있도록 디자인을 분할하십시오.


흠, 좋은 제안! 어떤 이유로 나는 실제로이 맥락에서 "테스트를위한 디자인"에 대해 생각하지 않았다.
morten

2
자체 테스트 기능을 설계하여 다음 단계로 발전시킬 수 있습니다. 보드의 복잡성을 더해 주지만 설계 검증이 쉬워지고 현장 제품에 파워 온자가 테스트를 포함 할 수있는 옵션도 제공합니다.
JustJeff

8

한 가지 중요한 질문은 다음과 같습니다. 프로덕션에 보드를 출시하기 전에 비행 전 점검표 란 무엇입니까? 내 비행 전 목록은 다음과 같습니다.

  1. 회로도 설계 검토
    1. 네트 이름 및 시트 외 포트
    2. 전원 핀 연결
  2. 회로도 DRC
  3. 발자국 스크럽
    1. 완전한 제조업체 부품 번호
    2. PCB의 풋 프린트 및 회로도의 핀아웃과 일치하는 부품 번호
    3. 발자국 핀 번호가 "오른쪽 위로"정확
    4. 발자국 크기는 구멍 크기, 간격, 유격 등을 이중으로 확인했습니다.
    5. 결합 커넥터의 방향이 올바르게되어 있습니다. 핀 1 대 1, 2 대 2 등
  4. PCB 치수 및 구멍
  5. PCB DRC
  6. Fab Drawings에는 모든 레이어와 콜 아웃이 있습니다.

이 답변은 wiki'd 커뮤니티입니다.


5

다른 사람들이 말한 것은 모두 유효하지만 내 2 센트 가치를 더하고 싶습니다.

가장 좋은 방법은 실수를하지 않는 것입니다. 이것을 언급하는 것은 어리석은 것처럼 보이지만 너무나 자주 이것은 간과됩니다. 회로도 및 PCB 설계 검토를 수행하십시오. 여러 사람이 초보 엔지니어까지도 설계를 살펴 보도록하십시오. 소프트웨어에서 디자인 규칙 확인을 사용하십시오. 디자인이 좋은지 확인하려면 사용 가능한 모든 리소스를 사용하십시오. 버그를 잡을 확률을 높이기 위해 좋은 엔지니어링 관행을 갖추십시오.

지난 20 년 동안 수십 개의 PCB (일부 14 개의 레이어와 2,000 개의 구성 요소 포함)를 설계 한 결과 첫 프로토 타입에서 사용할 수 없었던 2 개의 pcb 만있었습니다. 물론 버그가 있었지만 두 개의 보드 만 "벽돌"되었습니다.

모든 경우에 프로토 타입은 디버깅을 시작하기 전에 완전히 채워졌습니다. 반바지가 없는지 확인하기 위해 파워 레일을 옴 (ohm)합니다. 그런 다음 현미경을 사용하여 육안 검사를 수행하십시오. 그런 다음 전원을 켜십시오. 그 후 나는 체계적인 테스트 및 디버그 세션을 시작했습니다. 모든 것이 테스트되고 작동 할 때까지 한 번에 작은 회로 섹션에서 작업했습니다. 대부분의 경우 PCB의 다음 개정판으로 몇 가지 사항을 변경하고 대량 생산에 들어갔습니다.

이 중 어느 것도 버그를 미리 줄이기위한 큰 노력 없이는 불가능했을 것입니다.


4pcb와 같은 일부 제조업체는 거버에게 무료 DFM 테스트를 제공하기도합니다. 이러한 무료 테스트는 PCB 도구의 DRC에 추가 된 것입니다.
ajs410

4

완전히 새로운 디자인에서는 일반적으로 분할 정복 방식을 사용합니다.

주요 아키텍처 블록을 분리하고 스위치 / DC 공급 장치 / 전위차계 등을 사용하여 각 섹션의 전원을 독립적으로 켜서 회로를 실행하는 데 필요한 종속성을 시뮬레이션합니다.

이 접근 방식은 일반적으로 전원 공급 장치를 다룰 때 어렵지 않습니다. 대부분의 컨버터는 전환을 시작하기 위해 입력 및 아마도 몇 개의 논리 신호 만 필요합니다 ( 마법의 실패의 연기를 방출 하지 않기를 바랍니다 ).

두 번째 / 세 번째 스핀 (정리) 보드는 일반적으로 그러한 근면이 필요하지 않습니다. 변경 한 회로의 일부만 분리하여 독립적으로 테스트하고 나머지 회로의 올인 전원 공급 테스트를 저장하지 않아도됩니다.

개인 보호 장비를 잊지 마십시오. 안전 고글 (및 때로는 귀마개)없이 노출 된 구성 요소로 전원을 공급하는 것은 매우 불편합니다.


1
눈 / 귀 보호를 위해 +1! 한 번 실험실 전체에서 폭발적인 DAC를 들었습니다.
Toybuilder

3

단락 된 그물이 처음에 발생하는 것을 방지하기위한 첫 번째 단계 중 하나는 보드 소프트웨어에서 설계 규칙 점검을 잘 활용하는 것입니다. 그물이해서는 안될 때 실수로 그물이 묶이지 않도록하기위한 회로도 수준. 네트 사이에 충분한 간격을 확보하기 위해 PCB 레벨에서.

하나의 보드에서 완전히 새로운 디자인을 다루지 않고 테스트되지 않은 디자인 요소가있는 경우 고급 프로토 타입 PCB (고급 회로의 BareBonesPCB 서비스-2)와 같은 개념 증명 및 성능 증명 테스트 보드를 구축하려고합니다. 땜납 마스크가없는 레이어, 24 시간 동안 약 $ 80).

완전한 보드를 만들 때에도 1 세대 보드에는 많은 헤더를 넣는 것이 좋습니다. 경우에 따라 두 개의 동일한 PCB를 "안정된"부분으로 채우고 헤더 핀이 상단으로 나갈 수 있습니다. 하단 테스트 핀 리셉터클이있는 "테스트"부분이있는 또 하나. 모든 것이 정상적으로 테스트되면 두 보드 채우기를 완료 할 수 있습니다. 또는 교체 할 수있는 새 버전의 "테스트"회로를 회전시킬 수 있습니다.


헤더는 특히 재 작업하거나 나중에 기능을 추가해야하거나 즉각 디버깅 출력이 필요한 경우 유용합니다. 또한 작은 PROTOS를위한 베어 본을하는의 생각처럼 그냥 ... 할 수있는 그 자신
ajs410
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.