
📕 Tutorial #4: How To Do PCB Layout (Step by Step) 영상을 참고하여 정리 및 실습한 글입니다. - 참고
트랙을 그리기 전에 두 가지를 할 겁니다. 먼저, 스택업을 설정할 겁니다. 그리고 두 번째로, 규칙을 살펴볼 겁니다.
먼저 스택업 설정입니다. 이 보드에는 4층 PCB를 사용할 겁니다. 물론, 2층으로도 연결할 수 있고, 그러면 더 저렴합니다. 제 생각에도 이 PCB는 2층 PCB로도 연결할 수 있습니다. 하지만 2층 PCB를 제대로 설계하는 것은 그렇게 간단하지는 않습니다.
만약 4층 PCB를 사용하면, 레이아웃이 훨씬 더 좋아질 겁니다. 예를 들어, 4층 PCB에서는 멋진 솔리드 그라운드 플레인을 사용할 수 있습니다. 또한 파워 플레인도 만들 수 있죠.
그리고 사실 이 튜토리얼에서 4층 PCB를 사용하기로 결정한 데에는 더 많은 이유가 있습니다. 단순히 2층 PCB보다 좋기 때문만이 아니라, 여러분이 더 많이 배울 수 있기 때문입니다.
우리가 이 4층 PCB를 만드는 방식과 매우 유사한 방식으로, 여러분은 6층, 10층, 12층 또는 그 이상의 PCB도 만들게 될 겁니다. 그래서 더 복잡한 PCB를 설계하는 방법을 배우게 될 겁니다. 또한, 4층 PCB를 사용하면, 레이아웃이 더 깔끔해지고, 더 좋아지고, 더 간단해지며, 더 빨라질 겁니다. 4층 PCB는 2층 PCB보다 조금 더 비싸겠지만, 그래도 괜찮을 겁니다.
우리 PCB에서 이 스택업을 설정하는 것은 사실 매우 간단합니다. 여기 'Tools'(도구), 'Layer Manager'(레이어 관리자)로 갑니다. 그리고 여기서 그냥 4를 선택하면 그걸로 끝입니다.

이제 우리 보드는 TopLayer, BottomLayer, Inner1, Inner2 를 갖게 됐습니다. 이 모든 레이어가 'Signal'(신호)로 설정되었는지 확인하고, 'Setting'(설정) 버튼을 클릭해주세요.
이제, 규칙을 설정해야 합니다. 먼저, JLCPCB 웹사이트로 가서 PCB 제조업체의 사양(capabilities)을 우리 보드의 규칙과 비교해 볼 겁니다. 규칙을 보려면 'Design'(설계) > 'Design Rule'(설계 규칙)으로 갑니다.
그리고 이것들이 기본 규칙입니다. 이것들은 기본적으로 우리가 PCB를 생성할 때 설정된 값들입니다. 이 기본 값들을 사용해도 됩니다.

우리는 JLCPCB가 이 값들을 기반으로 우리 PCB를 제조할 수 있는지 다시 한번 확인해야 합니다. JLCPCB 웹사이트로 가서 'Capabilities'(사양)를 클릭하고, 아래로 스크롤해서 이 'Drill/Hole Size'(드릴/홀 크기)를 클릭하세요.
우리가 확인할 첫 번째 규칙은 "최소 비아 드릴 직경(Via Drill Diameter)" 입니다. 우리 보드에서는 0.3mm로 설정되어 있습니다. 그리고 우리는 이 숫자가 JLCPCB가 제조할 수 있는 것보다 큰지 확인해야 합니다.
JLCPCB 웹사이트에 가서, 'Minimum Via hole size'(최소 비아 홀 크기)를 보면 다음과 같습니다.

단면인 경우 0.3mm, 양면 및 다층 PCB의 경우 0.2mm 로 되어있습니다. 여전히 우리가 설정한 값보다는 작습니다. 그래서 우리가 설정한 0.3mm은 JLCPCB가 문제 없이 제조할 수 있습니다.
다음 규칙은 "비아 직경(Via Diameter)" 입니다. 위에서 말한 "비아 드릴 직경"은 실제 구멍 크기를 말하고, "비아 직경"은 구멍 둘레에 있는 패드까지 포함한 전체 크기를 말합니다. 우리가 설정한 최소 비아 직경은 0.61mm 입니다.

웹사이트에서 확인해보니 최소 비아 직경 0.15mm 또는, 단면 및 양면 PCB의 경우 0.3mm을 제조할 수 있음을 볼 수 있습니다. 이것도 문제 없어보입니다.
다음으로, 이 최소 트랙 폭(Track Width) 입니다. 0.25mm 로 설정되어있습니다. 아래로 스크롤하면 'Minimum trace width and spacing'(최소 트랙 폭 및 간격) 에서 찾을 수 있습니다.

그리고 마지막으로 확인할 숫자는 최소 이격 거리(clearance)입니다. 이것은 PCB 상의 객체들 사이의 최소 공간 또는 최소 거리입니다. 예를 들어, 두 트랙 사이의 최소 공간은 0.15mm 입니다. spacing을 확인하면 됩니다. 간격이란 의미죠.
그래서 우리가 설정한 이 모든 숫자들은 괜찮습니다. 우리가 이 규칙에 따라 설계한다면 JLCPCB는 우리 보드를 제조할 수 있습니다.
✍️ 우리는 가장 기본적인 규칙들만 설정했다는 점을 말하고 싶습니다. 여러분은 이 JLCPCB 웹사이트에 가서 홀과 홀 사이의 이격 거리나, 솔더 마스크 규칙 등 다른 규칙들도 살펴보는 것이 좋습니다. PCB 제조업체가 여러분의 PCB를 쉽게 제조할 수 있도록 하려면 이 권장 사항들을 따르는 것이 정말 좋습니다. 여기에 있는 이 규칙들을 따르는지 확인해야 합니다.
이제 PCB로 돌아가서 레이아웃을 시작할 수 있습니다. 특정 레이어에 그리려면 여기에 있는 이 패널을 사용할 수 있습니다.

예를 들어, 하단 레이어에서 레이아웃을 하고 싶다면 이 파란색을 왼쪽 클릭하세요. 연필은 어떤 레이어가 활성화되어 있는지 알려줍니다. 우리는 상단 레이어에서 레이아웃을 시작하고 싶습니다. 그러니 이 빨간색을 클릭하세요.
트랙을 그리려면 여기 있는 이 버튼을 사용하거나, 키보드의 W를 사용할 수 있습니다.

연결하고 싶은 패드 위로 커서를 가져가세요. 그리고 한번 연결해보세요.

지금은 이 연결들이 어떻게 보이는지에 대해 걱정하지 마세요. 지금은 그냥 모든 것을 연결하는 데 초점을 맞추겠습니다. 모든 비아와 모든 트랙을 위한 공간이 충분한지 확인하고 싶기 때문이죠. 결국 나중에 옮겨야 할 가능성이 매우 높은데, 지금 단계에서 이 트랙들을 예쁘게 만드느라 시간을 낭비하고 싶지는 않을 겁니다.
지금은 가능한 한 빨리 모든 것을 연결하고, 나중에 개선할 겁니다. 꿀팁으로 제가 스페이스바를 누르면 어떻게 되는지 보세요. 추천 경로가 알아서 약간씩 조정됩니다.
우리가 사용하는 배선 폭이 0.3mm로 설정되어 있는지 확인하세요.

만약 실수를 했다면, 그냥 백스페이스를 누르고 트랙을 다시 그릴 수 있습니다. 또는 Esc를 누르고 Ctrl+Z를 누른 다음 다시 그리면 됩니다.
보시다시피, 우리가 배치를 잘 했기 때문에, 이 영역의 핀들을 연결하는 것은 사실 꽤 쉽습니다. 그냥 상단 레이어를 사용해서 거의 직접 연결할 수 있습니다.
우리는 비아를 사용할 겁니다. 레이아웃에 비아를 배치하는 방법과, PCB의 하단 레이어에서 배선하는 방법을 배울 겁니다. 비아를 배치하려면 여기 있는 이 버튼을 사용하거나, 키보드에서 V 키를 누를 수 있습니다.

근데 via(비아)란 무엇인가요? via(비아)는 다층(멀티레이어) PCB에서 한 레이어의 신호(트레이스)를 다른 레이어로 연결해 주는 "도금된 구멍"입니다.
PCB는 보통 여러 층(Layer)이 됩니다. 예를 들어, Top layer, Bottom layer 등이 있죠. 층이 여러 개인 이유는 모든 회로를 하나의 층에만 배치하기 어렵기 때문입니다. 그렇다 보니 다른 층끼리 연결이 필요한 경우도 있는데, 이때 via를 사용합니다. 쉽게 말해서, via는 층 사이를 연결하는 "엘리베이터" 같은 거예요.
예를 들어 , Top Layer에 IC가 있고, Bottom Layer에 GND Plane이 있으면 GND 연결을 위해 via를 사용할 수 있고요. 혹은 좁은 공간에서 트레이스를 꺾을 수 없을 때 내부 Layer로 트레이스를 보내기 위해 via를 사용할 수 있습니다.
W를 눌러 트랙 그리기를 시작합니다. V를 눌러 비아를 배치합니다. 비아를 이동하고 싶다면 비아 위로 커서를 가져가서, 왼쪽 버튼을 누른 채로 있으면 비아를 이동할 수 있습니다. 연결부와 함께 움직이는 것을 볼 수 있습니다.
오류도 잘 보세요. 만약 이 비아를 이 패드에 가깝게 놓으면, 노란색 십자가가 생기죠, 이건 오류가 있다는 뜻입니다. 비아가 이 패드에 너무 가깝게 배치되었다는 거죠.

주의하세요. 왜냐하면 다른 트랙에 너무 가깝게 배치하면, 이 오류가 보이지 않기 때문입니다. 왜 그런지는 모르겠어요. 하지만 우리가 나중에 'Design Check DRC'를 실행하면, 모든 오류가 나타날 것이고, 그러면 하나씩 수정해야 합니다. 그러니 레이아웃을 할 때나 비아를 배치할 때, 트랙에 너무 가깝게 배치하지 않도록 조심하세요.
비아를 선택하고 여기 직경이 0.6 정도이고 드릴 직경이 0.3mm인지 확인하세요.

이론적으로는 더 작은 비아를 사용할 수 있습니다. 왜냐하면 JLCPCB는 더 작은 비아를 제조할 수 있기 때문입니다. 근데 굳이 필요하지 않는다면, 제조 가능한 최소값을 사용하지 마세요. PCB가 더 비싸질 수 있기 때문입니다. 때로는 더 얇은 트랙, 더 좁은 간격, 더 작은 홀을 사용하면, 이것이 PCB를 더 비싸게 만들 수 있습니다.
위에 있는 이 숫자들, 즉 여러분의 PCB에서 사용하는 비아의 직경과 홀이 'Design'(설계), 'Design Rules'(설계 규칙)에서 설정한 숫자보다 크거나 같아야 합니다. 다시 말해, 규칙에 있는 이 숫자들은, 여러분이 보드에서 사용하는 비아의 치수보다 작거나 같아야 합니다. 그렇지 않으면 오류가 발생할 겁니다.
PCB의 하단 레이어로 넘어가기 전에, 이 영역의 모든 것이 상단에서 연결이 잘 되었는지 확인하고 싶습니다. 그리고 여기 있는 이 그라운드들을 연결하고 싶은데, 이것들을 USB 커넥터의 이 스루홀 패드에 연결할 수 있습니다.

그리고 이 커패시터의 이 그라운드 부분을 연결하기 위해, 더 나은 연결을 위해 별도의 비아를 사용할 수 있습니다. V 눌러 비아 배치. 그리고 이 그라운드를 여기에 연결할 수 있겠네요.

배치를 예쁘게 수정한 후, 하위 레이어에서 비아에다가 선을 연결해줍니다. 비아를 사용해서 상위 레이어와 하위 레이어를 연결해주네요. 선이 복잡한 경우 매우 유용하겠습니다.

나머지 +5V USB 패드들을 연결하고 싶습니다. PCB의 탑 레이어에 배선된 +5V USB 넷에 연결해야 합니다. 그래서 비아를 사용해야 합니다. 키보드에서 V를 누르고 이미 배선된 이 트랙 위에 비아를 배치합니다.
비아가 자동으로 넷 이름을 가져온 것을 보세요. 이제 자동으로 +5V USB에 연결됩니다. 그러니 항상 비아를 배치할 때 특정 넷에 연결하고 싶다면, 그 넷 위에 비아를 배치하세요.

비아들을 서로 너무 가깝게 배치하지 마세요. 같은 넷에 연결되어 있더라도요. 규칙 중 하나를 보면, JLCPCB 웹사이트로 가보면 동일 넷에 대한 비아 대 비아 간격은 0.254mm입니다.
모든 그라운드 비아와 그라운드 패드를 솔리드 그라운드 플레인에 연결하고 싶습니다. 그래서 Inner 1번 레이어에, 그라운드 넷에 연결될 사각형을 그릴 겁니다.

이게 저희 스택업의 두 번째 레이어입니다. 이 구리 영역을 그리고 싶습니다.


그라운드 넷에 연결하고 싶습니다. 근데 PCB 가장자리부터 구리를 그리고 싶지는 않을 겁니다. 안쪽으로 조금 옮겨서 이렇게 그릴 겁니다.

PCB의 두 번째 레이어에 견고하고 멋진 그라운드 플레인을 만들었고 이제 모든 그라운드 비아와 그라운드 패드들이 2번 레이어의 이 플레인에 자동으로 연결됩니다. (오호~)
그러면 위에서 만든 GND 비아도 전부 여기 Inner 2 레이어에 연결이 되는거네요. 이렇게 만든 레이어는 다른 레이어 작업할 때 보기 어렵기 때문에 비활성화할 수 있습니다.
왜 이 커패시터에 비아를 두 개나 배치했는지 궁금하실 수 있습니다.

음, 아마 이 보드에서는 꼭 필요하지는 않을 겁니다. 하지만 제가 보드를 설계할 때 아주 자주 이런 종류의 커패시터는 여러 개의 비아로 연결합니다. 그래서 이 보드에서도 동일한 기술을 사용해서, 때로는 여러 개의 비아를 사용하고 싶을 수 있다는 점을 알려드리고 싶었습니다. 특히 매우 중요한 전력 공급을 위한 레이아웃을 할 때 그렇습니다.
다음으로, 마이크로컨트롤러를 팬아웃(fan out)할 것입니다. 탑 레이어에 짧은 트랙을 그리고 비아를 배치할 겁니다.

🤔 MCU 핀 아래에 via(비아)를 바로 뚫는 이유는 뭘까요?
그 외에 전기적 성능 향상(임피던스 낮춤, 노이즈 감소), 제조 공정 고려(열 방출) 등을 이유로 들 수 있습니다.
🤔 왜 아래처럼 GND via를 따로 연결하는 거죠? 그냥 GND via 하나만 만들고 같이 연결해서 사용하면 안되나요?

하나의 via로만 GND를 연결하면, 멀리 있는 부품의 GND 경로가 길어질수 있고, 그렇게 되면 전기 저항 및 인덕턴스가 생기고, 노이즈나 전압 강하가 발생할 수 있습니다. 그래서 각 부품 근처에 GND via를 배치해서 짧은 경로로 리턴 전류가 흐르도록 만듭니다.
그리고 노이즈 격리 차원에서 분리가 필요할 수 있어요. 아날로그 회로와 디지털 회로는 GND를 공유해도, 노이즈를 분리해야 하므로 물리적으로 가까이 연결하면 안 됩니다. via 하나에 모두 연결하면, 고속 디지털 신호가 아날로그 회로에 영향을 줄 수 있어요.
그 외에도 전류 용량 분산, 고속 신호일수록 그에 상응하는 GND 경로도 짧아야 합니다. EMI (전자파 간섭) 문제 대응, 열방출(thermal via) 역할도 합니다. 각 부품 근처에서 신호의 return path, 노이즈 차단, 전류 분산, 열 분산을 위해 여러 개의 via를 전략적으로 배치할 필요가 있습니다.
가속도계 주변의 팬아웃을 할 수 있습니다. 그리고 이건 좀 까다로울 겁니다. 가속도계가 매우 작기 때문이죠.

왜 GND는 via로 뚫었는데, +3V3는 (대체로) via 없이 그냥 선(트레이스)으로만 연결했을까요?
GND는 보통 PCB 하단 전체 Plane으로 처리됩니다. 따라서 Top Layer에 있는 GND 패드들을 Bottom GND Plane과 연결하려면 via가 필요합니다. 반대로 +3V3은 Plane으로 처리하지 않고, 트레이스로만 연결하는 경우가 많습니다.
+3V3은 전류 흐름이 크지 않고, 노이즈 민감도가 낮습니다. 많은 회로에서는 +3.3V 전원은 비교적 소전류이고, 지저분해도 문제 안 되는 경우가 많습니다. 특히 센서, MCU, LED 같은 부하에 쓰는 전압은 트레이스 하나로 연결해도 충분합니다.
+3V3 plane이 필요하면 별도 layer에서 처리, 일부 보드에서는 +3.3V를 따로 Power Plane으로 구성하기도 하지만, 이건 고속 회로나 전류 크거나 민감한 회로일 때입니다.
LED 회로 주변에 팬아웃을 할 수 있습니다. 그리고 LED 회로의 핀도 연결할 수 있습니다. 이 연결들은 매우 간단하기 때문입니다.

끝 부분의 PCB를 나중에 주 PCB에서 잘라낼 수 있도록 할 겁니다. 따라서 해당 영역까지 그라운드 플레인을 원하지 않습니다. 혹시 만약 부품 이동으로 GND 플레인 구리 도금이 이상해졌다면 다시 재생성하면 됩니다.

GND 플레인 선택 후 포인트 수정, 커서의 X 위치가 무엇인지 보세요. 대략 52 정도입니다. 폴리곤의 끝을 위치 52으로 변경하세요.

이것이 바로 우리가 원하는 것입니다. (아하. 그러면 끝부분에 LED는 테스트용이고 저 부분을 잘라내고 다른 LED로 연결할 수도 있게 만든거네요)

우리는 PCB 끝에 있는 모든 것을 배선했습니다. 그리고 다음에는 이것을 연결하고 싶을 겁니다. 이미 배선된 네트 위로 커서를 가져가면 됩니다. 또는 패드를 선택하고, 이 패드를 왼쪽 클릭한 다음, 키보드에서 H를 누르세요.

이제 네트를 하이라이트했습니다. 이것은 +VIN 네트입니다. 이것은 전원이고, 우리는 이 전원을 우리 보드의 3번 레이어에 배선하고 싶습니다. 여기에 비아를 배치해야 합니다. 그래서 상단 레이어에서 3번 레이어로 갈 수 있습니다. 우리 PCB에서는 Inner2 레이어라고 불립니다. 활성화시키고, 여기에 왼쪽 클릭하여 이 레이어에 그리도록 합니다.

그리고 불필요한 모든 레이어를 숨겨서 3번 레이어의 빈 공간을 잘 볼 수 있도록 하세요.

그리고 나서 연결해줍니다. 경로를 어떻게 그리는지는 별로 중요하지 않다는 것을 잊지 마세요. 나중에 개선할 것입니다.

하이라이트된 네트를 해제하려면 그냥 키보드에서 H를 다시 누르면 됩니다. 완벽합니다. 다음으로 연결할 네트는 무엇일까요?

그리고 이 모든 표준 신호들은 하단 레이어에 배선할 것입니다. 그래서 하위 레이어를 활성화하고, 상단과 상단 실크를 숨깁니다. W를 누르고, 이것을 연결합니다.

나머지 LED에 대해서도 아래와 같이 연결해주면 됩니다.

다른 것을 연결하려고 봤더니 너무 빙~ 돌아야 되네요. 이건 연결하기에 가장 좋은 방법은 아닙니다.

레이아웃 작업을 할 때는, 항상 앞을 내다봐야 합니다. 예를 들어, 이 트랙을 여기에 배선하면, 나중에 만약 이 다른 핀들 중 일부를 연결해야 한다면, PCB의 이쪽에서 저쪽으로 연결해야 할 때, 이 트랙 하나가 우리가 배선해야 할 다른 모든 트랙들을 막아버리게 됩니다.
우리가 할 일은 PCB의 바텀 면 대부분을 수평 트랙(가로 선)을 위해 사용할 겁니다. PCB 바텀 면에 수직 트랙(세로 선)을 그리지 않을 겁니다. 수평으로 배선하고, 그리고 여기 어디쯤에서 레이어를 바꾼 다음, 탑 레이어에서 이어서 트랙을 수직으로 배선할 겁니다. 그러면 PCB 바텀 면에 다른 트랙들을 배선할 공간이 많이 생기게 되죠.
일단 저 선은 제거해주겠습니다. 수평으로 선을 쭉 이어줍니다. 그리고 나서 수직 트랙 연결하기 전에 비아를 배치합니다.

이제 탑 레이어로 가서, 인터럽트 핀을 연결합니다. 오 좋다. 완벽하네요.

흠... 이것도 연결하려고 보니까 중간에 막혔네요. 어떻게든 이 두 트랙을 가로질러야 합니다.

아니면 우리가 할 수 있는 것은, 이 두 트랙으로 이 비아들을 돌아서 가는 겁니다. 그러면 여기에 연결하기가 매우 간단해지겠죠. 그리고 그게 바로 우리가 할 일입니다.

이제 여기 아래에 있는 이 트랙으로도 이 비아들을 아주 쉽게 돌아갈 수 있습니다.

탑 레이어에서는 이 I2C 풀업 저항들을 연결할 수 있습니다. 바텀 레이어에서 이어서 이 풀업들을 마이크로컨트롤러에 연결할 수 있습니다.

확대해서 여기 연결되지 않은 넷이 뭔지 한번 보죠. 3.3V네요. 이 전원은 레이어 3에서 연결할 겁니다. Inner 2 레이어를 보이게 하고, 활성화합니다. 탑과 바텀 레이어는 숨기고요.

이 부분도 연결해주기

+3V3 연결해주기

드디어 다 연결했습니다.

우리 PCB의 모든 넷을 연결했습니다. 우리 PCB는 엄청 못생겼고 아직 개선해서 더 보기 좋고 더 좋게 만들어야 합니다.
그 전에 우리가 할 수 있는 건, DRC 체크를 실행해 보는 겁니다.
디자인으로 가서, DRC 체크, 왼쪽 클릭. 26개의 에러!

이 EasyEDA DRC(Design Rule Check) 오류는 트랙 간격(clearance) 문제입니다.
오류 메시지: "need more than DRC(0.152mm)"
현재 트랙들 사이의 간격이 0.14mm~0.16mm 정도인데, DRC 규칙에서 요구하는 최소 간격 0.152mm보다 작음
주로 트랙-트랙, 트랙-패드, 충간홀-구간 사이의 간격 위반
아무래도 최소 간격이 0.15mm 인거 같은데, 따라서 규칙을 완화해서 해결될 문제는 아니고, 레이아웃을 수정해야 될 거 같습니다.
이것에 대해서는 다음 튜토리얼에서 진행하도록 하겠습니다.