ICSP ou microcontrolador pré-programado

11

Eu projetei um PCB para produção em pequena escala; Atualmente, estou soldando à mão em lotes de 20 por vez. Este PCB usa um microcontrolador ATMEGA168 que eu programo antes de soldar à placa - este método funciona bem para mim no momento.

Estou pensando em ter um lote de 200 placas fabricadas e montadas para mim, pois o produto que eu projetei parece bastante popular. Seria uma boa prática incluir um cabeçalho ICSP no quadro ou continuar pré-programando os ICs pessoalmente? A reprogramação da placa após a fabricação ou montagem não é um recurso pretendido ou necessário.

Não tenho certeza de como isso é feito em um ambiente de produção em maior escala? Adicionar um cabeçalho ICSP aumentaria um pouco o custo de fabricação. A pré-programação é uma prática padrão?

edcs
fonte

Respostas:

18

Eu sugeriria sempre incluir um cabeçalho nesse tipo de quantidade (pequena). Se você chegar a quantidades maiores, considere almofadas para pinos de pogo (seria necessário montar um dispositivo para manter a PCB alinhada) ou, em quantidades, você poderia usar um dos cabos Tag Connect que exigem apenas orifícios e não preenchidos almofadas (elas se encaixam no quadro).

insira a descrição da imagem aqui

Além de permitir que você se recupere da necessidade de uma atualização de programação, isso permitirá que uma assembléia preencha as placas antes da programação, o que poderia melhorar a logística.

A pré-programação é certamente uma opção, mesmo em quantidades de produção (é possível que o distribuidor faça isso por você), mas parece ser usada principalmente nas aplicações mais simples. Geralmente os chips nas placas são programados (ou podem ser programados) após a montagem.

Spehro Pefhany
fonte
Parece uma boa solução - obrigado por sua ajuda, esses cabos parecem bastante úteis!
EDCs
1
O Tag-Connect funciona bem para isso. Você também pode obter versões sem os pinos de travamento (o plástico preto à direita da imagem), que dependem da pressão ou de uma placa traseira que captura os pinos. Observe que o cabo na foto custa cerca de US $ 50. No lado positivo, os contatos do PCB são cerca de US $ 0.
Ben Jackson
20

Se você tem espaço para um cabeçalho, essa provavelmente é a melhor opção, e os pinos levemente escalonados que Majenko recomenda são uma boa maneira de manter um conector no lugar sem aumentar a complexidade.

Mas aqui está uma abordagem alternativa, para placas onde você não tem espaço para caber em um cabeçalho, ou o cabeçalho padrão não realiza todas as suas tarefas de programação / configuração / teste de placa.

Dado um pequeno PCB de fator de forma como aqui (33 mm de diâmetro) insira a descrição da imagem aqui

você pode colocá-lo com pontos de teste (rotulados na parte de trás) insira a descrição da imagem aqui

e crie um dispositivo de teste para ele (usando Pogo Pins ) insira a descrição da imagem aqui

Isso requer alguma capacidade de usinagem e pelo menos uma broca de pilar (porque os pinos do pogo devem estar exatamente na vertical). No entanto, se você estiver disposto a arriscar um protótipo de uma placa de circuito impresso, prenda-a em uma folha de material e "localize" através dos orifícios do ponto de teste para colocar os pinos do pogo exatamente no lugar certo. (Recebo 10 PCBs por um preço ridiculamente baixo da Itead, então perder um não é grande coisa).

Com um torno e um moinho, fabricar pilares e grampos para localizar a PCB exatamente no lugar certo é uma bobagem, mas não é muito difícil com ferramentas mais simples.

Depois, basta encaixar cada PCB, programar e testá-lo. O conector solto normalmente vai para os pinos do cabeçalho em uma TI Launchpad, usado para programar este MPU (TI MSP430) por meio da interface SBW, mas o mesmo princípio se aplica ao JTAG ou a outras interfaces. (O cabo marrom na parte superior é um cabo coaxial que transmite um sinal de calibração para um contador de frequência). insira a descrição da imagem aqui

A base de mogno polido é opcional; Por acaso prefiro um estilo steampunk para os meus jogos de teste.

Brian Drummond
fonte
Esta é uma ótima resposta e obrigado por reservar um tempo para fornecer uma resposta detalhada tão útil! Não marquei como resposta porque, no meu caso, tenho espaço para caber em um cabeçalho ICSP, mas é algo que terei em mente se precisar criar algo minúsculo.
EDCs
2
Isso é muito bonito (ou é um acessório?). Existe alguma coisa para digitar a PCB em ângulo ou é apenas alinhada a olho nu?
Spehro Pefhany
Olho os pinos do pogo através dos orifícios visíveis do ponto de teste antes de empurrar para baixo e girar os grampos. Bruto, mas funciona. Em uma placa de circuito impresso maior, recomendo dois pinos de localização, por exemplo, nos orifícios de montagem da placa de circuito impresso.
Brian Drummond
13

Eu sempre adiciono espaço para um cabeçalho ICSP, mesmo que não seja preenchido. Eu tenho três maneiras de fazer isso no momento, dependendo da situação.

Um de meus projetos possui um cabeçalho de passo muito fino para o qual eu construí um adaptador (o fio sólido de 0,6 mm é perfeito para ele):

insira a descrição da imagem aqui

Eu uso esse conector quando o espaço está em um prêmio absoluto. (Desculpe, está borrado, a câmera do meu telefone está naff).

O segundo arranjo que costumo usar é incorporar o ICSP em outro cabeçalho. Se os pinos ICSP também podem ser usados ​​como pinos GPIO e você pode usá-los com uma conexão destacável, é simples o suficiente incluir quaisquer outras conexões ICSP necessárias (MCLR, por exemplo) a um custo mínimo. Em seguida, basta conectar seu programador nesse cabeçalho com um adaptador que deve ser simples o suficiente para fazer.

A terceira maneira é fornecer uma pegada de cabeçalho "escalonada" ou "deslocada" para o ICSP. Uso isso principalmente em placas de desenvolvimento em que o usuário final pode querer fazer o ICSP, mas não quer arruinar sua placa soldando um cabeçalho permanentemente. Essa pegada permite que um cabeçalho padrão se encaixe por pressão e faça um bom contato sólido sem solda:

insira a descrição da imagem aqui

Quando você começa a lidar com quantidades muito maiores, certamente pode ser mais econômico obter o fabricante do chip para pré-programar os chips para você com seu firmware. Eu acho que todos os principais fabricantes fornecem essa instalação.

Majenko
fonte
Obrigado pela resposta detalhada - informações definitivamente úteis aqui! Não aceitei sua resposta porque vou usar o cabo Tag Connect sugerido, embora o método de pinos escalonados funcione da mesma forma.
EDCs
Atmel definitivamente fornece isso como uma opção.
Ignacio Vazquez-Abrams
2
A pegada escalonada do cabeçalho é pura genialidade. 1
Vladimir Cravero
5

Se alguém estiver usando um processador que pode ser reprogramado em circuito, eu recomendo que as placas sejam projetadas de forma a permitir seu uso, mesmo que o uso do recurso exija a construção de um equipamento para esse fim específico e planeja ter que construir um. Se um problema de firmware for descoberto após a fabricação de um grande lote de placas, a construção de um equipamento que possa reprogramar essas placas pode ser muito mais barato do que precisar retrabalhá-las ou reconstruí-las.

Em alguns casos, uma boa abordagem pode ser selecionar o layout de E / S de uma placa para que os pinos do controlador necessários para a reprogramação no circuito sejam fornecidos para finalidades que "naturalmente" resultem na exposição a pontos de contato de fácil acesso. Por exemplo, uma placa projetada para uso com contatos de domo de metal pode ter os próprios contatos conectados aos pinos de programação em circuito. Esse projeto não exigiria dedicar nenhum espaço no layout para um conector de programação, mas - especialmente se o contato da bateria também fosse geralmente de tamanho, permita que um conector de programação se familiarize com contatos simples com mola.

Observe que não importa necessariamente se o código parece ter sido bem testado; alterações de um lote de chips para o próximo ainda podem causar problemas inesperados. Por exemplo, eu projetei um produto que deveria se desligar sob controle do processador, deixando o processador "alto" em um pino quando deveria estar "ligado". No primeiro lote de 10.000 unidades, tudo funcionou bem, mas em um lote posterior o processador começou a funcionar mal quando sua tensão atingisse cerca de 2 volts e poderia mudar esse pino de volta para "alto"; a saída de "alta" de 2 volts mal foi suficiente para ligar a unidade novamente. Como o processador foi especificado para permanecer no modo de suspensão até o IIRC 1,6 volts, foi possível corrigir o problema reprogramando as unidades para que entrassem no modo de suspensão ao ativar o estado de desligamento. Se tal reprogramação não tivesse sido possível, seria necessário um retrabalho muito mais caro (ou então demolição e reconstrução).

supercat
fonte