이 기사에서는 기본적으로 제공되지 않는 추가 기능을 Altium Designer®를 사용하여 구현하는 방법을 배워보겠습니다. Altium Designer의 강력한 측면을 발견하고 이를 마스터하면 설계 기술을 한 단계 높일 수 있습니다. 이 기사에서는 설계 검증을 수행하는 스크립트를 구현하는 방법에 대해 논의하겠습니다.
우리는 배울 것입니다:
요즘 설계는 매우 복잡합니다. 일반적으로 고객은 PCB 설계자가 처음부터 보드가 작동하기를 기대합니다. 이를 달성하기 위해서는 세부 사항에 주의를 기울이는 것이 중요합니다.
이 예에서 실제 설계에서 사용할 수 있는 스크립트를 생성하는 방법을 살펴보겠습니다. 다음 설계 문제를 고려해 보십시오:
16비트 ADC 컨버터를 사용하는 고해상도 ADC 보드를 설계해야 합니다. ADC 컨버터의 입력 임피던스는 1 kΩ입니다. "드라이버와 ADC 사이의 최대 트레이스 임피던스는 1 LSB 이하의 오류를 달성하기 위해 얼마인가요?" "우리를 도울 수 있는 스크립트를 설계할 수 있나요?"
그림 1 고해상도 ADC의 트레이스 설계
이 질문에 답하기 위해서는 트레이스의 저항성을 계산하고 트레이스에서의 전압 강하가 1 LSB보다 높은지 확인해야 합니다.
트레이스 저항성을 계산하기 위해 다음 공식을 사용할 수 있습니다:
예를 들어:
트레이스의 크기가 다음과 같다고 가정해 봅시다: L = 10 cm, h = 0.035mm, w = 0.381mm. [1]을 사용하고 주변 온도가 25 °C라고 가정할 때 DC 트레이스 임피던스는 129 mΩ이며, 이는 0.013%의 전압 오류를 발생시킵니다., 16비트 ADC의 1 LSB(0.0015%)보다 훨씬 높습니다. 따라서 위의 트랙은 거의 9 LSB의 오프셋 오류를 줄 것입니다!
Altium Designer에게 위의 모든 검사를 대신 해달라고 요청할 수 있을까요? 가능하다면 실시간으로?
답은 분명히 예입니다.
이 정보를 제공하는 스크립트를 설계해 봅시다.
트레이스를 클릭하고 싶고, Altium Designer에게 트레이스 저항을 계산하고, 전압 강하를 계산하는 등의 검사를 해달라고 하고 싶습니다.
그림 2 우리 데모 스크립트에서의 정보 예시
Altium Designer는 몇 가지 언어로 스크립트를 수용합니다. 제 경력 동안 많은 언어를 사용했지만, 제 전문 생활에서 처음 사용한 언어 중 하나는 Delphi였기 때문에 이 스크립트를 Pascal로 작성하기로 결정했습니다. 하지만, Visual Basic과 같은 다른 스크립팅 언어를 선호한다면 사용할 수 있습니다.
Altium Designer에서 위 문제를 해결하는 스크립트를 디자인하는 방법을 살펴봅시다.
우리의 스크립트에서는 다음을 수행하고자 합니다:
1. PCB 보드를 로드합니다
우리가 실행하고자 하는 첫 번째 지시사항은 PCB 디자인을 로드하고 Board라는 변수에 저장하는 것입니다. 다음 지시사항으로 이 작업을 수행할 수 있습니다:
2. 레이어 스택을 로드합니다
Board가 로드되면, 레이어 스택을 로드하고 Stackup이라는 변수에 저장하고자 합니다:
3. 사용자가 마우스로 선택한 트레이스 로드하기
이제 GetObjectAtCursor() 메소드를 사용하여 선택된 트레이스를 가져와 Trace라는 변수에 저장할 수 있습니다.
4. 공식 [1]을 사용하여 트레이스 저항 계산하기
사용자가 마우스로 트레이스를 선택하면, 트레이스의 너비, 길이, 높이를 계산하여 TraceThickness, TraceWidth, TraceLength라는 3개의 변수에 저장하고자 합니다:
마지막으로 [1]을 사용하여 트레이스 저항 Res를 계산하고, ADC가 1V의 Vref를 가정할 때 전압 강하를 계산할 수 있습니다.
5. 트레이스 오류와 ADC 오류 표시하기
모든 계산이 완료되면 화면에 표시할 수 있습니다. 이를 수행하는 쉬운 방법은 MessageDlg() 윈도우를 사용하는 것입니다.
OutputString := '트레이스 두께 = ' + FloatToStrF(TraceThickness,0,5,4) + ' mm' + #13#10; OutputString := OutputString + '트레이스 너비 = ' + FloatToStrF(TraceWidth,0,5,4) + ' mm' + #13#10; OutputString := OutputString + '트레이스 길이 = ' + FloatToStrF(TraceLength,0,5,4) + ' mm' + #13#10#13#10#13#10; OutputString := OutputString + '트레이스 저항 = ' + FloatToStrF(Res,0,5,4) + ' mohm' + #13#10; OutputString := OutputString + '트레이스 전압 강하 = ' + FloatToStrF(VoltageDrop,0,2,2) + ' %' + #13#10; OutputString := OutputString + 'ADC LSB = ' + FloatToStrF(ADCLSB,0,2,2) + ' %'; MessageDlg(OutputString,mtInformation,4,0);
스크립트 실행 방법
스크립트를 테스트하려면, PCB 문서에서 파일->RunScript…를 클릭하세요.
그런 다음 스크립트를 선택하세요:
이제 큰 십자가를 볼 수 있습니다:
분석하고 싶은 트레이스를 클릭하세요.
이제 계산이 포함된 메시지 창을 볼 수 있어야 합니다.
이 스크립트를 확장하여 더 정교한 검사를 추가할 수 있습니다. 예를 들어, 트랙을 아치로 확장하고 온도의 영향을 추가하는 등입니다. 이 부분은 연습으로 여러분에게 맡기겠습니다.
Altium Designer를 한 번 마스터하면, 복잡한 작업을 대신 수행할 수 있다는 것을 보았습니다. 이 예에서는 단 한 번의 클릭으로 DC 트레이스 임피던스를 측정하는 방법과 고해상도 ADC 설계에서 전압 오류를 추정하는 방법을 보았습니다.
이 데모 스크립트는 많은 제한이 있지만, 여러분 자신의 Altium Designer 확장 기능의 기초로 사용할 수 있습니다.
더 궁금한 점이 있으신가요? Altium의 전문가에게 문의하십시오 또는 Altium Designer의 최고의 PCB 설계 소프트웨어 기능과 트레이스 임피던스 계산기에 대해 더 알아보십시오.