Método para atribuir endereços únicos por placa

18

Estamos projetando placas transmissoras / receptoras para um aplicativo de controle remoto de RF. Para evitar conversas entre pares incompatíveis, queremos endereços únicos por placa. O endereço é especificado para os chips de codificação / decodificação através de 8 pinos de endereço.

Provavelmente montaremos um pequeno lote (cerca de 25) manualmente, mas os PCBs serão fabricados profissionalmente.

Qual é a sua maneira favorita de criar endereços exclusivos por placa em uma situação como essa? Pensei em interruptores DIP, jumpers e traços de corte / jumper. Estou inclinado a cortar traços, mas gostaria de ouvir o que as pessoas mais experientes costumam fazer.

Steven Ourada
fonte
Quão reconfiguráveis ​​seriam esses? e quão fisicamente robusto? é seguro assumir do controle remoto de RF que haverá um ambiente de vibração hostil?
JustJeff
4
Evite interruptores DIP; as pessoas vão mudá-los.
Brian Carlton
@JustJeff, eles não devem ter que ser reconfigurados, a menos que um dos controladores falhe e precise ser substituído, ou algo assim. Não haverá muita vibração.
Steven Ourada
@ Brian, sim, existe essa possibilidade, mas não estou muito preocupado com isso.
Steven Ourada
11
Estou percebendo que minha pergunta provavelmente era muito ampla e opinativa. Gosto das respostas e aprendi coisas boas; Obrigado a todos os que contribuíram.
Steven Ourada

Respostas:

15

Estou surpreso que ninguém tenha mencionado a EEPROM. Tivemos que colocar números únicos em produtos várias vezes e, na maioria das vezes, eles foram para a EEPROM do processador ou, às vezes, para locais reservados da memória do programa. Geralmente, é uma coisa simples a ser realizada como etapa final do processo de teste e calibração da produção. Uma vez que a unidade é considerada funcionando e qualquer calibração foi realizada, o sistema de teste de produção envia um comando ao micro para fornecer seu número de série ou usa a interface de programação para escrever o número de série diretamente no local apropriado. Às vezes, os arquivos HEX programados no micro são modificados de forma única a partir do arquivo HEX do modelo principal, com o número de série exclusivo desse dispositivo, com somas de verificação e possivelmente outras informações modificadas de acordo.

Alguns anos atrás, eu estava trabalhando com uma empresa que produzia centenas de milhares de coisinhas por ano através de um fabricante contratado na China. Enviamos dois sistemas de teste completos para o fabricante chinês. O programa de teste manteria um arquivo de número de série e poderíamos enviar novos arquivos para configurar as unidades para novos intervalos de números de série. Tudo correu bem o suficiente por um tempo, até que um dia obtivemos unidades com números de série duplicados. Acontece que os chineses fizeram algo estúpido com um dos sistemas para que não funcionasse mais. Em vez de nos dizerem, que eles tinham ordens estritas de fazer se algo desse errado, eles fizeram uma cópia completa do disco do sistema em funcionamento para o outro sistema. É claro que isso também copiou os arquivos do número de série e o estado atual; portanto, a partir de então, os dois sistemas distribuíram a mesma sequência de números de série.

Comecei a projetar sistemas de teste mais recentes, para garantir que o intervalo do número de série e o estado atual fossem mantidos em uma EEPROM no hardware do testador e não forneça nenhuma documentação sobre isso ao fabricante. Tínhamos cerca de uma dúzia de placas testadas e designamos cuidadosamente intervalos de números de série separados para cada um. Quando o fabricante precisava ser atualizado com um novo bloco de números de série, enviamos a eles placas de teste atualizadas. Até agora, este sistema funcionou muito bem. Também facilita a produção de unidades ocasionais aqui ou em um local de fabricação diferente. Cada local tem seu próprio testador com seu próprio intervalo de números de série e apenas uma pessoa era a principal responsável pelos números de série e atribuiria novos intervalos aos testadores.

Olin Lathrop
fonte
11
Oi Olin! Brian mencionou a EEPROM em sua resposta, mas não adicionou detalhes. Sua história aponta o ponto fraco da atribuição programada de IDs exclusivos. Existe uma cadeia de produção que envolve algumas etapas logísticas nas quais as coisas podem dar errado. Também aconteceu uma vez quando o serviço de programação da nossa disti esqueceu de aumentar o contador. Cedo ou tarde, essas coisas acontecem. IMO nada bate o SSN (ver minha resposta): nenhuma programação, nenhuma administração, nem nada :-)
stevenvh
15

O meu favorito é o Maxim DS2411 . É uma pequena parte do SOT-23 que contém um SSN (Silicon Serial Number) exclusivo . Não é muito barato por si só, mas pode ser o mais barato em geral , quando você pensa em custos de logística e custos de programação em outras soluções. A solução SSN não requer nenhuma intervenção / operação manual, além do pick-and-place automatizado.
O risco de IDs duplicados é quase zero.
Em um comentário a esta resposta, mikeselecticstuff apontou para essas EEPROMs de endereço MAC . São EEPROMs comuns com um ID exclusivo programado em uma área protegida contra gravação da EEPROM. Eles são mais baratos que o DS2411 e têm algum armazenamento para os dados do usuário.

Ω

insira a descrição da imagem aqui

O operador simplesmente precisa depositar uma gota de solda nas duas metades para "programar" um pouco. Menos da metade do tempo (um ponto de solda em vez de dois e nenhum componente para escolher e colocar) e nenhum componente necessário. Então você economiza duas vezes. E, como Olin diz, com o tamanho e o espaço certos, eles são fáceis de preencher e desmontar.

Se sua placa possui um microcontrolador (que placa não possui atualmente?), Você pode ter um número de série programado pelo serviço de programação. O custo logístico do seu lado é mínimo: basta acompanhar com qual série eles devem começar em cada lote de programação.
O risco de erros resultando em IDs duplicados é baixo, dependendo de quão bem o serviço de programação está organizado, mas eu sei que isso acontece.

Eu sabia sobre o seguinte, mas não me lembrava de como eram chamadas e também pensei que precisava de uma imagem para explicar melhor.

derivação DIP programável
Aparentemente, isso é chamado de desvio DIP programável . Você o usa como um interruptor DIP, mas, em vez de usar interruptores miniatura, ele usa conexões fracas que você pode "programar" quebrando-as com uma caneta ou uma chave de fenda pequena.
Isso tem a mesma grande desvantagem das soluções de soldagem seletiva: o operador deve decidir quais conexões devem ser quebradas e quais devem ser deixadas intactas, e o erro humano nunca está longe. Confiabilidade no que diz respeito à singularidade: baixa.

stevenvh
fonte
2
Eu concordo com os jumpers de solda se um humano tiver que fazer cada um. Tentei algumas coisas diferentes, mas achei duas almofadas de meio círculo para funcionarem melhor. Com o tamanho e espaço certos, eles são fáceis de preencher e desmontar. Você pode ver alguns deles em uma placa em embedinc.com/products/ready02/qprot05_1280.jpg abaixo da extremidade direita do conector DB-9, próximo à parte superior da placa.
Olin Lathrop
7

As EEPROMs I2C são boas e pequenas. Existem chips de número de série de 1 fio.

Brian Carlton
fonte
Hmm, não tinha pensado muito sobre isso, embora eu tivesse que projetar alguma interface para ler isso e apresentar continuamente o endereço ao codificador / decodificador, já que não tenho acesso imediato às partes internas do referido chip. Agora que você mencionou, parece que o fornecedor poderia oferecer isso, uma vez que os codificadores / decodificadores são apenas microcontroladores com algum firmware proprietário. Pode ter que conversar com eles sobre isso.
Steven Ourada
3

Se o endereço tiver que ser definido por alguém com capacidade de solda, você pode definir uma pegada de resistor de montagem em superfície para cada pino e soldar seletivamente em jumpers de 0 ohm.

B Pete
fonte
Sim, esse é um caminho a percorrer. Minha teoria é que é um pouco mais fácil cortar traços do que jumpers de solda, mas eu posso estar errado.
Steven Ourada
5
@Steven - à primeira vista, os traços de corte podem parecer mais simples, pois você não precisa de componentes, mas o corte é confuso e é caro verificar se há uma interrupção adequada. Soldar é mais barato, esp. quando você não precisar dos jumpers (veja minha resposta).
Stevenvh
1

Para um endereçamento simples de 8 bits, eu costumo usar faixas de corte. É mais permanente do que os jumpers / links de solda e dissuade as pessoas de alterá-lo. É assim que costumo fazer no quadro:

insira a descrição da imagem aqui

Cada link é um bloco (mas isso é uma limitação do meu software - eu preferiria que não fosse estanhado), para que não receba máscara de solda e apenas 5 mils (em oposição aos 10 mils para o resto da faixa) que facilita o corte. 5 mils é o mínimo para o sinal que eles estão carregando no meu caso - você pode usar mais grosso. No meu exemplo, é apenas usar um pacote de resistores como resistores de pull-up. Obviamente, você pode substituir isso pelo que quiser.

Lembre-se de garantir que não haja máscara de solda sobre eles.

Outra opção é (como outra pessoa mencionou) usar blocos de resistores SMT e conectá-los. Mas, se você vai apenas aos resistores para agir como flexões, por que não deixar de lado os resistores aos quais não estaria conectando?

Majenko
fonte
4
Para responder à sua última pergunta: porque os custos seletivos de colocação de componentes são caros; você precisa fazer isso à mão. É mais barato colocar o componente pelo pick-and-place e soldar 1 ponto manualmente do que o pick-and-place manualmente e depois soldar manualmente dois pontos. Além disso, se você colocar todos os resistores, poderá usar uma matriz de resistores (como você fez), o que também é mais barato. Custo de colocação de 1 resistor >> custo do próprio resistor.
10139 stevenvh
2
Como o corte é mais permanente do que a soldagem? Posso revender o seu corte tão facilmente quanto você pode remover minha solda. A solda também é mais confiável (como você sabe que é cortada corretamente). Para ser honesto eu não gosto da idéia de corte em tudo, mas isso era óbvio, eu presumo :-)
stevenvh
Isso é verdade. Ainda não uso a P&P - meus volumes não valem a pena. Eu gostaria de construir minha própria máquina P&P algum dia ... Mas primeiro eu preciso construir uma máquina de perfuração CNC para os furos;)
Majenko
Você pode soldá-lo com facilidade, sim. A permanência é mais psicológica do que física.
Majenko
Se o seu P&P for capaz de executar 01005s (0,25 mm x 0,12 mm), quero ir dar uma olhada! Eu não tenho idéia de como eles fazem isso!
Stevenvh
1

Se você tiver algum dispositivo de 1 fio em seu circuito, sua placa nascerá com um número de série.

Eu tenho uma placa do inversor de energia e, como os MOSFETs tendem a ficar muito quentes, adicionei um sensor de temperatura DS18B20 no dissipador de calor, sentindo a temperatura dos MOSFETs. Isso também deu ao meu inversor um número de série, conforme atribuído ao sensor de temperatura.

Além disso, você pode usar alguns fusíveis em sua placa e explodir alguns deles antes de sair da fábrica para funcionar como um dispositivo de número de série.

Maxthon Chan
fonte