
📕 Tutorial #5: Improving Your PCB Layout and Manufacturing Your Board 영상을 참고하여 정리 및 실습한 글입니다. - 참고
PCB에서 개선하고 싶은 첫 번째는 바로 이 영역입니다. 특히 바닥 레이어에 있습니다. 서로 매우 가깝게 라우팅된 트랙이 많이 있습니다.
제가 개선하고 싶은 것은 이 I2C 신호와 이 PWM 신호(LED_R,B,G_R) 사이의 거리입니다. 아마도 우리는 그것들을 너무 가깝게 라우팅하고 싶지 않을 것입니다. 이 PWM 신호가 노이즈가 많을 수 있기 때문입니다.

Tip) 선 경로 수정 시 노드(점)이 필요한 경우, 선에다가 마우스 클릭을 몇 번 시도해세요. 그러면 노드가 생길겁니다.
🤔 노이즈를 받는지 확실하지 않은데 굳이 개선해야 할까요?
I2C와 PWM은 왜 떨어뜨리라고 할까요? PWM 신호(빠른 스위칭, 10kHz~)는 빠르게 변하며 강한 노이즈를 만들어내는 신호이기 때문에, 근처에 있는 민감한 I2C 신호를 간섭할 가능성이 있습니다. 특히 긴 라우팅을 할 경우 더 커집니다.
반드시 떨어뜨려야 할까요? 꼭 그런 건 아닙니다. 상황에 따라 다릅니다. 어쨌거나 개선하면 I2C 통신 오류 확률이 줄어들고요(특히 ACK 미수신, NACK 발생 등). EMI 테스트에서 통과 가능성이 높아집니다. 디버깅 시 예측 가능한 동작을 확보할 수 있습니다.
지금 꼭 수정해야 할까에 대해서는 노이즈가 발생할 가능성이 높지만, 실제 문제가 없다면 OK. 하지만 여유 있으면 피하는 게 좋다는 의견입니다. 지금 라우팅으로도 문제 없을 수 있어요. 하지만 PCB 공간 여유가 있다면 분리해두는 게 장기적으로 유리합니다. 나중에 생산 수량이 많아질 때, EMI나 신뢰성 이슈가 생기면 비용이 더 커지기 때문이에요. (이것 참 어렵네요...)
그래서 우리가 개선할 수 있는 매우 간단한 방법은 이 비아를 아래로 옮기고 이 트랙을 옮길 수 있습니다. I2C1_SDA와 LED_G_R 신호 사이에 훨씬 더 큰 여유 공간이나 거리가 생겼습니다.
우리는 이 인터럽트(INT) 신호 주변에 더 많은 공간을 만들고 싶습니다. 아시다시피 인터럽트 신호에는 노이즈가 없어야 합니다. 그렇지 않으면 소프트웨어가 실제로 발생하지 않은 임의의 인터럽트를 선택합니다.
그래서 이 트랙을 다른 신호로부터 멀리 배치하면 노이즈가 다른 신호에서 감지되는 것을 방지할 수 있습니다. 그래서 저는 그것을 이 버튼 신호에서 멀리 옮길 것입니다.

INT, I2C 신호는 노이즈에 민감하니 다른 신호로부터 가능한 멀리 배치해주세요.
트랙을 조금 더 넓게 라우팅하는 방법을 배워봅시다. 트랙의 너비를 변경하는 방법은 여러 가지가 있습니다. 현재 기본 폭은 0.3mm 입니다. 기존 선을 선택 후 width 속성을 0.5mm로 변경할 수 있습니다.
아니면 기존 선을 삭제한 다음 선 추가 시 tab을 클릭하면 폭을 설정할 수 있습니다.

다른 방법으로는 선 추가 시 Shift + W를 누르면 표가 나타나고 여기서 너비를 선택할 수 있습니다.

🤔 근데 왜 멀쩡히 있던 선을 늘려주는 걸까요? 오히려 좁으면 서로 간격 조정할 때 편하지 않나요?
선 너비를 넓히는 이유는 "전류 용량과 발열 문제" 때문입니다. 예를 들어, LED는 생각보다 전류를 많이 먹어요. 그런데 PCB의 트레이스는 저항이 있기 때문에, 트레이스가 좁으면 전류가 흐를 때 전압 강하(전압 손실) 발생하고, 트레이스가 과열될 수 있어요. EMI(전자파 간섭)도 증가 가능합니다.
그러면 얼마나 넓어야 할까요? 일반적으로 사용하는 기준 (1oz copper 기준), 100mA는 0.2mm, 500mA는 0.5mm 이상, 1A 이상은 1.0mm 이상 입니다.
KiCad, Altium 같은 툴에는 "Track Width Calculator"가 있어서 전류 0.5A, 구리 두께 1oz (35µm), 허용 온도 상승: 10°C 이면 자동으로 최소 0.4~0.5mm 정도 폭을 추천해줍니다.
그래서 트랜지스터를 통해 LED 전류가 흐르는 부분에 대한 선 너비를 0.5mm로 변경해준거고요. 마이크로컨트롤러에서 트랜지스터로 흐르는 선에 대해서는 변경하지 않아도 됩니다.

참고로, 아래와 같은 실수를 했는데요. 여태까지 비아랑 선이 간격이 너무 짧다길래 계속 조정해도 오류가 사라지지 않더군요. 알고보니 inner2 연결 선을 완전히 깜빡하고 있었습니다. 이래서 오류 내용을 잘 읽어봐야 하고요. 선 이름을 꼭 확인하기 바랍니다.

드디어 DRC 오류 클리어. 비아랑 선 간격 문제가 대부분이었습니다.

이 가속도 칩 폭이 0.28mm 입니다. 따라서 선 폭도 패드 너비와 동일하게 맞춰주도록 하겠습니다.

접지면 구리도금영역 재설정도 변경사항이 생기면 해줘야 합니다. 그래야 제대로 적용됩니다.

전원과 접지 연결을 더 넓게 만들겠습니다. 전원(VCC)과 접지(GND) 라인을 가능한 한 넓게 만드는 것은 보통 매우 좋은 설계 습관입니다.
다만 무조건 넓히는 게 좋은 건 아니고요. 클리어런스(간격) 유지가 필요합니다. 즉 다른 신호선, 비아 등과 너무 가까우면 DRC 오류, 단락 가능성이 있습니다. 그리고 신호선과 겹치면 별로 안좋습니다. 예를 들어, I2C나 SPI 등의 고속 신호 밑에 GND나 VCC가 겹치면 신호 무결성 문제가 생길 수 있습니다.

위에처럼 전원, 접지 라인은 가능한 넓게 만들어주세요.
사실 이 LDO에서 나오는 전류는 높지 않을 것입니다. 여러 개의 비아는 필요하지 않을수 있지만 좋은 연습이 됩니다. 전원 공급 장치의 레이아웃을 하고 있을 때, 여러 개의 비아를 사용하고 싶을 수 있습니다.

✅ 왜 전력 신호에는 여러 개의 VIA를 사용하는가?
일반 비아 기준으로 비아당 전류 허용치 약 0.3~0.5A 정도. LDO 출력 전류가 100mA 수준이면 비아 1개도 충분합니다.
PCB 설계에서 "Copper Area"(또는 Polygon, 구리 영역)는 특정 영역을 구리로 넓게 채운 부분을 말합니다. 전원이나 GND처럼 넓은 전류 통로가 필요한 신호에 주로 사용됩니다.
copper areas 설정하기. +3V3 설정.


넓은 전류 통로로 좁은 선(트레이스)보다 저항이 훨씬 작습니다. 발열 부품 주변에 copper area를 두면 열이 잘 퍼집니다.

이런식으로 전원, 접지 Copper Area 설정해주었습니다.

현재 전원 공급 선이 이렇게 되어있는 부분을 개선할 겁니다. Copper Area(구리 영역) 설정을 통해 개선해봅시다.

먼저, 우선순위가 높은 +VIN에 대한 영역을 그린다음에,

그 외 나머지 영역에 대해서는 +3V3으로 설정해주면 됩니다. 사각형으로 그려주면 됩니다. 오. 편하군요.

만약 우선순위를 바꾸고 싶으면 Tools > Copper Area Manager라는걸 선택해서 순서를 바꿔주면 됩니다.

만약 이런 애매하게 붙어있지 않은 공간이 있으면 좀 아쉽습니다. PCB 제조업체는 세밀하지 못합니다. 따라서 더 크게 공간이 생길거에요. 완벽하게 제어하고 싶다면 이 부분을 수정하는게 좋습니다. 간단하게는 비아를 조금 옮겨주면 되겠죠?

아예 좀 붙이거나, 아예 띄우거나 둘 중 하나를 하면 좋습니다. (좀 애매한게 문제인거지요)
아 근데 비아를 좀 움직이니까 구리도금 영역을 여러개 있으면 전부 업데이트해줘야 하는게 번거롭네요. 여기서 꿀팁은 Copper Area Manager에서 적용 버튼을 누르면 된답니다. 오른쪽 마우스 클릭하면 여기서도 재생성 가능합니다.

현재 상태로도 이 보드가 제대로 작동할 겁니다. 하지만 이 튜토리얼에서 다루고 싶은 몇 가지 주제가 있습니다. 여러분이 더 복잡한 보드를 디자인할 때 도움이 될 것이기 때문입니다.
제가 먼저 하고 이야기하고 싶은 것은 접지면을 다른 층으로 옮기는 것입니다. 왜 접지면을 옮기고 싶어할까요?
PCB 레이아웃은 단순히 핀을 연결하는 것만이 아닙니다. 조금 더 복잡합니다. 많은 트랙이 라우팅되는 신호 레이어가 있는 경우 이웃 레이어로서 접지 평면을 사용하고 싶을 것입니다. 더 자세히 알고 싶으면 아래 영상을 보시길 바랍니다. 신호가 보드를 통해 어떻게 전달되는지 설명하고 있습니다.
영상 참고. What Every PCB Designer Should Know - Return Current Path (with Eric Bogatin)
접지면을 트랙 바로 아래 놓았을 때 PCB에서 어떤 일이 일어나는지 상상할 수 있는 가장 간단한 방법 중 하나는 트랙 주변의 필드가 어떻게 보일지입니다. PCB에 트랙이 있고, 신호가 이 트랙을 통과할 때 트랙 주위에 필드(장)가 발생합니다. 그리고 접지면을 트랙 바로 아래에 놓으면 트랙 주변의 필드는 매우 작아질 겁니다. 접지면을 사용하면 매우 빠르게 "수집"될 것입니다.
경로를 설정하는 트랙에서 접지면을 멀리 옮기면 트랙 주변의 필드가 더 커집니다. 이렇게 큰 필드가 생기면 무슨일이 일어날까요? 예를 들어, 이러한 필드는 보드의 다른 트랙에 의해 수집될 수 있으며 보드의 다른 트랙에 노이즈가 발생할 수 있습니다. 또한, DMC나 EMI 문제가 발생할 수 있습니다.
따라서 우리가 선로 아래에 접지면을 배치하려는 이유 중 하나는 이러한 자기장을 제어하기 위해서입니다.
현재 PCB를 살펴보면 대부분의 트랙이 이 바닥 레이어에 라우팅되어 있습니다. 위 레이어는 구성 요소가 있지만 라우팅된 많은 트랙처럼 많지는 않습니다.

따라서 레이어 3(inner 2)에 이 맨 아래 레이어의 이웃 레이어를 배치하는 것이 좋겠다고 결정했습니다.

따라서 전원 평면을 2계층으로 옮기고 접지면을 3계층으로 옮기겠습니다. (전원 평면 Inner2, 접지면 Inner1로 설정)

이제 Inner2를 비활성화 하면 Inner1 이 보이는 것을 알 수 있습니다. (상위레이어 - Inner1(전원 평면) - Inner2(접지면) - 하위레이어)

기본적으로 우리가 바닥층의 트랙 바로 아래에 접지면을 옮길 때 임피던스라고 불리는 것을 따를 수 있습니다.

하지만 지금 당장은 PCB의 많은 트랙, 특히 디지털 트랙은 50옴 임피던스로 라우링된다는 것만 알아두시면 됩니다. 더욱 복잡한 보드를 디자인할 때 이는 매우 중요할 수 있습니다. 이 간단한 보드에서는 그렇게 중요하지 않습니다.
PCB에서 50옴 임피던스로 트랙을 라우팅하려면 어떤 종류의 트랙 너비가 필요한지 매우 간단하게 확인하는 방법을 보여드리겠습니다.
이 계산기를 사용하면 JLCPCB 회사에서 제조한 PCB에 50옴 임피던스 트랙을 얻기 위한 어떤 종류의 트랙 너비가 필요한지 계산할 수 있습니다. 따라서 기본적으로 각 PCB 제조업체는 자체 계산기를 갖고 있거나 보드에서 50옴 임피던스로 트랙을 라우팅하려는 경우 따라야 할 트랙 폭을 제공합니다. 이 계산기는 JLCPCB 전용입니다.
먼저 임피던스 계산 50옴 입력. 4 레이어 사용하고 있고, PCB 두께는 1.6mm이고, 단일 종단 트랙(Single Ended)이므로 차동이 아닙니다. 단위는 mm로 설정합니다. 이렇게 해서 계산하면 트랙 너비가 나옵니다.
영상에서는 약 0.29mm 로 나오는데요. 영상은 이전 버전이고, 최근에는 사이트가 많이 바뀌어서 좀 다르네요...

이건 JLCPCB의 Impedance Calculator (임피던스 계산기) 화면입니다. PCB 설계에서 특정 임피던스를 갖는 트레이스를 만들기 위해 필요한 정보와 계산값을 알려주는 도구입니다.
고속 신호 (USB, HDMI, 클럭 등)는 전송선으로 동작하며, 일정한 임피던스(예: 50Ω)를 유지해야 신호가 왜곡되지 않습니다. 이 도구는 목표 임피던스에 맞춰 트레이스 폭, 간격, 스택업 구조를 자동 계산하기 위해 사용됩니다.
JLCPCB에서 제공하는 4층 PCB Stackup 종류도 많은데요. 사용된 절연재(Prepreg, Core)가 다르고, 그에 따라 층 두께 / 유전율 / 특성 임피던스 등이 살짝 다릅니다.
일반적인 회로: 7628으로 충분, 고속신호/임피던스 정밀제어: 3313 추천 (스택업 바뀌면 Trace Width 값도 달라져요.)
JLC7682 스택업을 사용하면 스택업에 대한 정확한 치수가 나오므로 이 스택업을 사용하면,

최하층에 연결된 모든 트랙과 3층이 접지면일 때 폭 0.3mm의 최하층에 연결된 모든 트랙의 임피던스는 50옴이 됩니다. 너무 복잡하게 들리더라도 두려워하지 마세요. 더 복잡한 PCB 설계하는 경우에만 이것이 필요합니다. 이 간단한 PCB의 경우 걱정할 필요가 없습니다. 어떤 임피던스로든 배선하면 작동합니다.
하지만 PCB 주문할 때 구체적인 내용을 알려야할 수도 있고, 이런 종류의 스택업을 요청해야 할 수도 있습니다.
다음으로 우리가 하고 싶은 것은 PCB에 텍스트를 추가하는 것입니다. 일반적으로 실크스크린 레이어에 이 텍스트를 추가합니다. 일반적으로 PCB의 흰색입니다. PCB의 윗면에는 공간이 별로 없습니다. 그래서 우리가 할 일은 PCB 아랫면에 텍스트를 추가하는 것입니다.
하위 실크 레이어 활성화하고, 텍스트를 추가해보겠습니다.

텍스트 버튼을 클릭하거나 키보드 S를 클릭 후, 텍스트 입력, 크기 조정(여기서는 높이 조정)하시면 됩니다. 여기서는 배터리 극이 어디인지 알 수 있도록 아래와 같이 추가해줍니다.

텍스트를 선택할 때 줄 너비가 JLCPCB 기능보다 커야 합니다. 웹사이트에 가서 확인해봅시다. 최소 너비는 0.153mm 네요. 우리는 약 0.2mm 를 사용하고 있습니다. 최소 높이는 1.0mm이고 저희가 설정한 1.0mm를 만족하네요.

참고로, 여기서 한가지 개선할 부분이 있는데, GND 플레인을 잘 보면, 저 부분 길목이 좀 좁다고 생각됩니다.

따라서 5V_USB 비아를 조금 옮겨주면 GND 연결 부분이 2갈래가 되기 좀 나을 수 있습니다. (아하)

다음으로 넘어가서, 저 사각형은 잘라낼 수 있는지 알려주는 간단한 표시입니다.

그 외에 I2C 헤더에다가도 표시를 해주고요. 저작권과 이름 또는 회사 이름을 추가하면 좀 더 있어보이겠죠.

현재 우리 보드의 크기는 9x56mm 입니다.

PCB 주문할 때 보니까 PCBA(PCB Assembly) 이란게 있는데요. PCB에 부품 실장(조립)까지 해주는 서비스를 의미합니다. 근데 최소 크기가 10x10mm 라고 합니다. (예전에는 20x20mm이었던거 같음)
여기서는 20x20mm 라고 가정하에, 크기를 조금 더 크게 만들어서 보드를 조립할 수 있게 해야 합니다. 아주 간단한 방법은 Tools > 패널화 클릭. 스탬프 홀에서 행: 2, 열, 행간격 2mm로 설정해줍니다.

그러면 이런식으로 생기고요. 20x56mm PCB가 생성됩니다.

스탬프 홀(Stamp Hole)은 작은 PCB를 여러 개 만들 때 사용하는 분리형 가공 방식 중 하나입니다. 흔히 패널라이징(panelizing)할 때 사용되며, PCB를 쉽게 손으로 떼어낼 수 있도록 구멍을 미리 뚫어 놓는 구조입니다. 마치 우표(Stamp)처럼 쉽게 떼어낼 수 있어서 Stamp Hole이라고 부릅니다.

다른 방법으로는 V-Cut 방식이 있습니다. 구멍 대신 직선으로 칼집을 만들어서 툭 꺾이도록 만듭니다. 상대적으로 깔끔할 수 있습니다.

여기서는 스탬프 홀 방식을 사용합니다. 가능한 한 PCB 주변에 많은 모서리를 남기고 싶기 때문에 이 방법을 선호합니다. 또한 우리는 가장자리에 매우 가까운 곳에 구성 요소와 트랙을 가지고 있습니다. V-CUT을 사용하면 뭔가를 손상시킬 수 있으므로 우리의 경우에는 스탬프 홀이 더 좋습니다.
이제 우리는 20x56mm PCB 생성이 가능합니다. JLCPCB가 이 보드를 제조하고 조립할 수 있다는 뜻입니다. 실제로는 이 패널을 만들면 PCB 하나가 아닌 두개를 얻게 됩니다.