Preciso codificar informações sobre a versão ou a configuração na placa / eletricamente, para que o firmware possa detectar qual layout da placa é usado.
Quais opções são possíveis e quais são seus prós / contras?
Preciso codificar informações sobre a versão ou a configuração na placa / eletricamente, para que o firmware possa detectar qual layout da placa é usado.
Quais opções são possíveis e quais são seus prós / contras?
Respostas:
De cabeça para baixo, duas soluções fáceis me vêm à mente.
Ambas as sugestões têm um ponto fraco: o usuário final pode alterá-las facilmente, digamos, para abrir recursos "bloqueados". Isso pode não ser uma preocupação para você, mas algo a ter em mente.
Eu usei um registrador de turno com pinos amarrados alto e baixo para codificar a revisão da placa antes de agora, se você já estiver usando o SPI para algo em sua placa, é trivial lê-la.
Se você precisar alterar o ID em tempo de execução, usar jumpers em vez de vincular as entradas com traços seria uma boa idéia.
Algumas opções em que posso pensar: -
Links para resistores SMD PADS / O OHM. Use um sistema binário para configuração de hardware para reduzir a contagem de pinos para o seu processador.
Jumpers. A placa usaria pinos do conector 2xN, adicionando um jumper ao pino direito, permitindo selecionar sua configuração. Um erro é mais fácil de resolver. Isso pode ser um pouco caro e usar mais espaço na placa, dependendo do jumper.
Se você possui EEPROM na placa, pode ser possível incorporar a configuração na memória.
É possível alterar o firmware usando um #define ou similar? Então você não precisa de espaço na placa e pinos extras para a detecção de versão.
As EEPROMs de uma ligação são uma boa solução, pois exigem apenas um GPIO, mas podem armazenar uma grande quantidade de informações de configuração. Eles também permitem que o microcontrolador grave essas informações durante o teste da placa (por exemplo, dados de calibração). Muitos possuem um pino de proteção contra gravação ou um bit programável único para evitar novas alterações.
Outras vantagens incluem recursos úteis, como números de série exclusivos garantidos.
Essa opção é usada em muitos sistemas, como sondas e baterias do osciloscópio, devido à necessidade de apenas uma única linha de dados. A EEPROM pode até ser alimentada a partir da própria linha de dados.
A principal desvantagem é o custo. O custo não é alto, mas em produtos produzidos em massa, alguns centavos podem importar.
Um exemplo dessa EEPROM é o DS2431, que armazena 1kb.