Neste artigo, aprenderemos como usar o Altium Designer® para implementar funcionalidades extras que não estão disponíveis por padrão. Descobriremos um aspecto poderoso do Altium Designer que, quando dominado, pode elevar suas habilidades de design a um nível superior. Neste artigo, discutiremos como implementar um script para realizar a verificação de design por você.
Vamos aprender:
Hoje em dia, os designs são muito complexos. Em geral, os clientes têm expectativas de seus projetistas de PCBs de que suas placas funcionarão na primeira tentativa. Para que isso seja alcançado, a atenção aos detalhes é crítica.
Neste exemplo, vamos ver como criar um script que pode ser usado em um design real. Considere o seguinte problema de design:
Precisamos projetar uma placa ADC de alta resolução usando um conversor ADC de 16 bits. O conversor ADC tem uma impedância de entrada de 1 kΩ. “Qual é a máxima impedância de traço entre o driver e o ADC para alcançar um erro abaixo de 1 LSB?“ “Podemos projetar um Script que possa nos ajudar?“
Figura 1 projeta um traço de um ADC de Alta Resolução
Para responder a esta pergunta, precisamos calcular a resistividade do traço e verificar se a queda de tensão no traço é maior que 1 LSB.
Para calcular a resistividade do traço, podemos usar a seguinte fórmula:
Por exemplo:
Vamos assumir que nosso traço tem as seguintes dimensões: L = 10 cm, h = 0,035mm, w = 0,381mm. Usando a [1], e assumindo que a temperatura ambiente é de 25 °C, a impedância do traço em DC é de 129 mΩ, isso produzirá um erro de tensão de 0,013%., bem acima de 1 LSB (0,0015%) de um ADC de 16 bits. Então, o traço acima nos dará um erro de deslocamento de quase 9 LSB!
É possível pedir ao Altium Designer para fazer todas as verificações acima para nós? Possivelmente em tempo real?
A resposta é obviamente sim.
Vamos projetar um script que nos dê essas informações.
Queremos ser capazes de clicar em um traço, e queremos que o Altium Designer faça algumas verificações para nós, como calcular a resistência do traço, calcular a queda de tensão, etc.
Figura 2 exemplo de informações do nosso script de demonstração
O Altium Designer aceita scripts em algumas linguagens, durante minha carreira usei muitas linguagens, mas uma das primeiras linguagens que usei na minha vida profissional foi Delphi, por isso decidi escrever este script em Pascal. No entanto, você pode usar outras linguagens de script como Visual Basic se preferir.
Vamos ver como projetar um script no Altium Designer que resolve o problema acima.
No nosso script, queremos:
1. CARREGAR NOSSA PLACA DE PCB
A primeira instrução que queremos executar é carregar nosso projeto de PCB e salvar em uma variável chamada Board. Podemos fazer isso com a seguinte instrução:
2. CARREGAR O EMPILHAMENTO DE CAMADAS
Uma vez que a Board esteja carregada, queremos carregar o Empilhamento de Camadas e salvar em uma variável chamada Stackup:
3. CARREGAR O TRAÇO SELECIONADO PELO USUÁRIO COM O MOUSE
Agora podemos usar o método GetObjectAtCursor() para obter o traço selecionado e salvá-lo em uma variável chamada Trace.
4. CALCULAR A RESISTÊNCIA DO TRAÇO USANDO A FÓRMULA [1]
Uma vez que o usuário seleciona um traço com o mouse, queremos calcular a largura, comprimento e altura do traço, e salvá-los em 3 variáveis chamadas TraceThickness, TraceWidth e TraceLength:
Finalmente, podemos calcular o resistor do traço Res usando a [1], calcular a queda de tensão (assumindo que o ADC tem um Vref de 1V).
5. EXIBIR O ERRO DO TRAÇO E O ERRO DO ADC
Uma vez que todos os cálculos estejam feitos, podemos exibir na tela. Uma maneira fácil de fazer isso é usando as janelas MessageDlg().
OutputString := 'Espessura do Traço = ' + FloatToStrF(TraceThickness,0,5,4) + ' mm' + #13#10; OutputString := OutputString + 'Largura do Traço = ' + FloatToStrF(TraceWidth,0,5,4) + ' mm' + #13#10; OutputString := OutputString + 'Comprimento do Traço = ' + FloatToStrF(TraceLength,0,5,4) + ' mm' + #13#10#13#10#13#10; OutputString := OutputString + 'Resistência do Traço = ' + FloatToStrF(Res,0,5,4) + ' mohm' + #13#10; OutputString := OutputString + 'Queda de Tensão no Traço = ' + FloatToStrF(VoltageDrop,0,2,2) + ' %' + #13#10; OutputString := OutputString + 'LSB do ADC = ' + FloatToStrF(ADCLSB,0,2,2) + ' %'; MessageDlg(OutputString,mtInformation,4,0);
Como Executar o Script
Para testar o script, a partir do seu Documento PCB clique em Arquivo->ExecutarScript…
Então selecione seu script:
Você deverá ver agora uma grande cruz:
Clique no traço que deseja analisar.
Agora você deve ver as janelas de mensagem com os cálculos:
É possível estender este script e adicionar uma verificação mais sofisticada, por exemplo, para estender as trilhas até um arco e adicionar o efeito da temperatura, etc. Deixarei isso como um exercício para você.
Vimos que o Altium Designer, uma vez dominado, pode ser usado para realizar ações complexas por nós. Neste exemplo, vimos como é possível medir a impedância de trilha DC com apenas um clique e como estimar o erro de tensão em um design de ADC de alta resolução.
Este script de demonstração tem muitas limitações, mas pode ser usado como base para suas próprias extensões do Altium Designer.
Tem mais perguntas? Ligue para um especialista na Altium ou descubra mais sobre as melhores funcionalidades do software de design de PCB e o calculador de impedância de trilha no Altium Designer.