Suporte para Engenharia Reversa de PCBs
Num relance
- Aprenda a importar dados ODB++, Gerber e NC Drill e a verificar os tipos de camada, a ordem física das camadas e os conjuntos de furação.
- Entenda como extrair a conectividade e usar uma netlist IPC-D-356 para restaurar os nomes das redes e comparar netlists.
- Descubra os requisitos para contornos fechados da placa e planos divididos, além das opções para exportar polígonos.
Após importar os dados CAM para um documento CAM, você perceberá que a opção Export to PCB fica desabilitada, independentemente do modo atual do Editor CAM (CAM ou NC). Esse comando permite fazer a engenharia reversa de um layout de PCB diretamente a partir de arquivos CAM. Isso não segue um processo convencional de exportação/importação, mas carrega os dados diretamente no Editor de PCB.
As seções a seguir detalham as etapas necessárias para fazer a engenharia reversa de um projeto de PCB a partir dos dados CAM, desde a importação inicial para um documento CAM, passando pela preparação necessária antes da exportação, até a exportação dos dados do projeto para o Editor de PCB.
Importar dados
A caixa de diálogo Preferences
O ponto de partida de todo o processo é carregar arquivos ODB++ ou arquivos Gerber e NC Drill em um novo documento CAM. Se você tiver uma netlist IPC, também deverá importá-la ao importar os dados Gerber e NC Drill. Ao importar ODB++, importe um arquivo IPC somente se a netlist não estiver no diretório ODB++. A netlist IPC permitirá atualizar as redes extraídas com seus nomes originais e diferenciar as vias passantes dos pads livres que não pertencem a componentes.
Todos os comandos do submenu File » Import procuram arquivos com determinadas extensões em uma pasta específica. Ao importar arquivos de furação, por exemplo, o diretório especificado filtrará todos os arquivos, exceto aqueles com as extensões .DR*, .ROU, .RTE, *.NC* e *.TX* . Se você receber arquivos de furação com extensões diferentes dessas, poderá ampliar essa lista na página Editor CAM - Diversos da caixa de diálogo Preferences. Nessa página, você também pode alterar qualquer uma das listas de extensões padrão associadas aos arquivos Gerber, de abertura, HPGL e de netlist.
A caixa de diálogo Preferences
A página Editor CAM - Importação/Exportação da caixa de diálogo Preferences permite alterar as configurações padrão de importação e exportação de arquivos Gerber. Por exemplo, se você recebe regularmente dados CAM gerados no P-CAD, pode considerar alterar o formato de precisão das coordenadas de 2:3 (padrão do Altium Designer) para 4:4 (padrão do P-CAD). Caso não faça isso, ainda terá a oportunidade de alterar essas configurações padrão sempre que importar um trabalho.
Atribuições de tipos de camada
A caixa de diálogo Layer Table Detection Template
Os arquivos Gerber e de furação são atribuídos individualmente a camadas distintas. Além disso, o Editor CAM analisa seus nomes durante a importação e tenta atribuir um tipo de camada a cada um. Ele faz isso de acordo com as informações da caixa de diálogo Layer Types Detection Template, acessada selecionando Tables » Layer Type Detection no menu principal. Essa caixa de diálogo é totalmente personalizável e contém fragmentos de nomes de arquivos (extensões, palavras-chave ou ambos) que identificam arquivos individuais como tipos de camada, como camadas de sinal, plano negativo, contorno, furação e temporárias (mecânicas).
O Editor de PCB do Altium Designer, por exemplo, diferencia as camadas Gerber por suas extensões, como .gtl para a camada superior e .gbl para a inferior. Outras ferramentas de projeto podem exportar um arquivo .top para a camada superior e um arquivo .sol para a camada inferior (de solda). Algumas dessas ferramentas, como o P-CAD, permitem que os próprios usuários especifiquem os nomes dos arquivos de saída Gerber.
Após importar qualquer grupo de arquivos CAM, você pode abrir a caixa de diálogo Layers Table e revisar as atribuições de tipo feitas automaticamente. Você pode abrir a lista suspensa de tipos e modificar qualquer atribuição. Por exemplo, você perceberá que todos os arquivos de furação são automaticamente definidos como do tipo Furação superior. Neste momento, talvez você queira diferenciar os conjuntos de furação superiores, inferiores e internos. No entanto, isso não é obrigatório.
A caixa de diálogo Layer Table
Se você costuma receber arquivos Gerber ou de furação que não são atribuídos automaticamente ao tipo de camada correto, analise o nome do arquivo em busca de características distintivas pelas quais o CAM Editor possa identificá-los e adicione-as à caixa de diálogo Layer Types Detection Template. O ODB++ não precisa usar a caixa de diálogo Layer Types Detection Template, pois todas as informações necessárias para identificar cada camada são armazenadas no arquivo de matriz. No entanto, é uma boa prática verificar as atribuições de tipos de camada após o término do carregamento.
Empilhamento da placa e conjuntos de furação
A caixa de diálogo Create/Update Layers Order
As camadas atribuídas como tipos de sinal (superior, inferior ou interno) ou planos agora aparecerão na caixa de diálogo Create/Update Layers Order, acessada selecionando Tables » Layers Order no menu principal. Na maioria dos casos, o CAM Editor conseguirá determinar o empilhamento a partir dos dados CAM fornecidos, mas, em alguns casos, apenas a ordem lógica será fornecida (a ordem em que as camadas foram importadas). É recomendável garantir que as informações na coluna Layer Physical Order estejam corretas, com o número um correspondendo à camada superior. Tome cuidado para não atribuir o mesmo número de ordem a camadas diferentes. Depois que você especificar um empilhamento válido, a coluna de ordem física terá precedência sobre a lista lógica quando essa caixa de diálogo for reaberta, e as camadas serão listadas na ordem do empilhamento proposto.
Essa mesma ordem física será refletida na caixa de diálogo Create/Update Layers Sets, acessada selecionando Tables » Layers Sets no menu principal, na qual você associa os arquivos de furação aos conjuntos de camadas. Considere uma placa de 6 camadas (quatro de sinal e duas de plano) com vias cegas e enterradas. O projeto pode conter quatro arquivos de furação separados:
- um para o par Top-Bottom (furos passantes)
- um para o par Top-InternalPlane1
- um para o par MidLayer1-MidLayer2
- um para o par Bottom-InternalPlane2.
Extração da netlist
Esta etapa, acessada selecionando Tools » Netlist » Extract no menu principal, depende da precisão das etapas anteriores. Você só poderá executá-la se houver um tipo de camada atribuído a cada camada da placa (as camadas mecânicas devem ser definidas como Temporárias). Após iniciar o comando, as informações da netlist serão extraídas, e uma lista de redes aparecerá na aba Nets do painel CAMtastic . Cada rede é listada com seu comprimento total. Clicar em qualquer entrada de rede no painel fará com que a rede seja selecionada e ampliada na área de projeto.
O Editor CAM rastreará a conectividade de uma camada para outra, consultando os arquivos de furação NC para estabelecer as conexões entre camadas. Por esse motivo, o empilhamento de camadas definido na caixa de diálogo Create/Update Layers Order e os pares de furação selecionados na caixa de diálogo Create/Update Layers Sets são pré-requisitos essenciais para extrair uma netlist precisa dos dados CAM.
Se você incluiu um arquivo de netlist IPC-D-356 com os arquivos Gerber e NC Drill importados, poderá restaurar os nomes originais (e significativos) das redes selecionando Tools » Netlist » Rename Nets no menu principal. Após executar o comando, as redes serão comparadas e aquelas extraídas do documento atual serão renomeadas usando os nomes de rede do arquivo de netlist IPC. Os nomes atualizados aparecerão na aba Nets do painel CAMtastic .
Embora as informações da netlist IPC-D-356 não sejam essenciais para a exportação, sua presença é desejável. Elas ajudarão o Editor CAMtastic a distinguir os pads das vias e, assim, permitirão a criação correta de vias em vez de pads para quaisquer vias cegas ou enterradas no projeto. Mais importante ainda, uma netlist IPC fornece uma referência com a qual a netlist extraída pode ser comparada ao selecionar Tools » Netlist » Compare no menu principal. Após executar o comando, a comparação será realizada e um relatório, Netlist-Compare.rpt, será gerado e aberto como documento ativo na janela principal de projeto. O relatório lista cada uma das redes encontradas na netlist importada, mas ausentes na netlist extraída.
Se a netlist IPC tiver sido importada corretamente, você verá duas camadas adicionadas à lista de camadas no painel CAMtastic : <fabrication_testpoint_report_for_DesignName>.ipc_t e <fabrication_testpoint_report_for_DesignName>.ipc_b, que representam as informações da netlist para as camadas de sinal superior e inferior. (Uma terceira camada, <fabrication_testpoint_report_for_DesignName>.ipc_in, aparecerá se houver camadas de sinal internas no seu projeto de PCB. A menos que existam vias cegas e/ou enterradas envolvendo essas camadas, essa terceira camada estará vazia e poderá ser mantida ou excluída da lista de camadas).
Para netlists IPC geradas pelo Editor de PCB, você notará que a função de comparação do Editor CAM geralmente encontrará uma série de "redes ausentes" sem nome. Isso ocorre porque o formato IPC do Editor de PCB inclui redes de um único pino. O Editor CAM, por outro lado, desconsidera pads sem nenhuma conexão de cobre no que diz respeito à netlist. De fato, seu DRC tem uma opção para remover pads não funcionais.
Contornos e planos
Quando o CAM Editor exporta um arquivo de PCB para o Editor de PCB, um contorno de placa é gerado automaticamente. Para fazer isso de forma inteligente, é necessário que exista uma polilinha fechada em uma camada do tipo Border. Se nenhuma polilinha fechada for encontrada nessa camada, ou se várias camadas tiverem sido designadas como contornos na caixa de diálogo Layers Table, você provavelmente não obterá o formato de placa desejado.
Quaisquer divisões nos planos internos também devem ser definidas por polilinhas fechadas. Para determinar se uma polilinha está fechada, consulte suas propriedades (atalho Q). Verifique se toda a polilinha fica destacada e se ela é indicada como uma polilinha fechada na aba Info do painel CAM. Caso contrário, você poderá converter os elementos existentes em uma polilinha fechada com o comando Join no submenu Edit » Objects.
As seções de planos divididos podem exigir algum trabalho adicional, pois cada divisão precisa de seu próprio contorno fechado, como uma "bolha". Embora os planos em ilha possam ser unidos conforme descrito acima, os planos divididos que compartilham seus contornos com outras divisões ou com a polilinha do contorno da placa precisam ser redesenhados. Para desenhar sua própria polilinha fechada, clique com o botão direito após selecionar seu último vértice e escolha Close.
Planos aninhados (ilhas dentro de planos divididos) não são compatíveis no momento.
Exportação de polígonos
A página CAM Editor - Import/Export da caixa de diálogo Preferences oferece opções adicionais para controlar como os polígonos do documento CAM são exportados para o documento PCB. Se os polígonos tiverem formato retangular, eles poderão ser criados como preenchimentos no documento PCB. Para polígonos não retangulares, você pode criar preenchimentos de polígono hachurados ou sólidos no Editor de PCB. É possível acessar caixas de diálogo de opções para esses dois tipos de preenchimento de polígono, proporcionando maior controle sobre como os polígonos exportados serão tratados no PCB.
Ao habilitar a opção Create Hatched Polygons, o CAM Editor usará um único tamanho de grade e uma única largura de trilha para preencher todos os polígonos do arquivo. Se os dados CAM incluírem polígonos muito pequenos, certifique-se de que as opções de exportação estejam ajustadas para esse nível de detalhe.
A caixa de diálogo Polygon Options, acessada ao clicar no botão Hatched Polygon Options correspondente, permite modificar o tamanho da grade, a largura da trilha e o comprimento mínimo das primitivas dos polígonos. Se você quiser que os polígonos sejam completamente preenchidos com alta precisão, todos esses valores deverão ser mantidos em uma faixa estreita em torno dos menores requisitos da placa. Caso contrário, poderá haver espaços vazios dentro dos polígonos, padrões hachurados em vez de preenchimentos completos ou até mesmo polígonos inteiros omitidos na exportação.
A caixa de diálogo Polygon Options
Por outro lado, esses valores serão aplicados a todos os polígonos exportados, portanto valores muito pequenos aumentarão o tamanho do arquivo exportado e as dificuldades relacionadas ao seu gerenciamento (como a velocidade de redesenho). Por isso, é melhor usar os maiores valores possíveis que ainda forneçam a precisão necessária para todos os polígonos da placa.
Ao habilitar a opção Create Solid Polygons, cada polígono será preenchido com uma ou mais regiões de cobre sólido. O número de regiões de cobre usadas depende do número de áreas individuais criadas dentro do polígono pelos objetos de rede existentes, como trilhas e pads.
A caixa de diálogo Solid Polygon Options
A caixa de diálogo Solid Polygon Options, acessada ao clicar no botão Solid Polygon Options correspondente, permite determinar como as ilhas de cobre e as conexões estreitas de cobre são tratadas, além do comportamento do preenchimento ao ser aplicado sobre objetos pertencentes à mesma rede que o preenchimento de cobre:
-
Pour Over All Same Net Objects - escolha esta opção se quiser que um preenchimento de polígono se conecte automaticamente a todos os objetos da mesma rede que o preenchimento
-
Pour Over Same Net Polygons Only - escolha esta opção (padrão) se quiser que o preenchimento de polígono se conecte automaticamente apenas aos objetos de preenchimento de polígono dentro de seus limites que estejam associados à mesma rede
-
Don't Pour Over Same Net Objects - escolha esta opção se você especificamente não quiser que o preenchimento de polígono se conecte a quaisquer outros objetos de rede. Se uma das duas primeiras opções for escolhida e o preenchimento de polígono estiver atribuído a No Net, ele contornará todos os objetos, independentemente das redes às quais estejam atribuídos.
Exportar para PCB
Depois que uma netlist for extraída dos seus dados CAM, o comando File » Export » Export to PCB será habilitado. Executar esse comando após realizar todas as etapas necessárias criará um documento PCB contendo um projeto de placa muito semelhante ao original.
Após executar o comando, um novo documento PCB será gerado (<CAMDocumentName>.PcbDoc) e aberto como o documento ativo na área de projeto. A sequência real de eventos na transferência de informações entre o documento CAM e o documento PCB é a seguinte:
-
O documento PCB é criado com um contorno de placa baseado no tamanho atual da placa no documento CAM.
-
Os objetos de rede são criados no documento PCB usando as informações de rede extraídas do documento CAM.
-
O empilhamento de camadas é gerado com base na ordem das camadas físicas definida no documento CAM (caixa de diálogo Create/Update Layers Order, acessada por meio de Tables » Layers Order).
-
As redes são atribuídas a todos os planos internos.
-
As redes são atribuídas a todos os planos divididos existentes. Estes podem ser
-
São criadas regras de projeto de folga, largura e estilo de conexão ao plano de alimentação. São criadas conexões de alívio térmico para cada rede de plano.
-
Os padstacks são construídos a partir dos dados CAM (usando pads nas camadas de sinal/plano na ordem física, seguidos por furação, máscara, pasta etc.). Os padstacks são carregados na PCB e o estilo necessário é definido (padstack simples ou completo).
-
As trilhas da PCB são criadas.
-
Uma verificação DRC é realizada em toda a placa.
).