Je dois encoder des informations sur la version ou la configuration sur la carte / électriquement, afin que le firmware puisse détecter la disposition de la carte utilisée.
Quelles options sont possibles et quels sont leurs avantages / inconvénients?
pcb-design
firmware
Henrik Hansen
la source
la source
Réponses:
Du haut de ma tête, deux solutions faciles me viennent à l'esprit.
Ces deux suggestions ont une faiblesse dans la mesure où l'utilisateur final pourrait facilement les modifier, par exemple pour ouvrir des fonctionnalités "verrouillées". Ce n'est peut-être pas une préoccupation pour vous, mais quelque chose à garder à l'esprit.
la source
J'ai utilisé un registre à décalage avec des broches attachées haut et bas pour coder la révision de la carte avant maintenant, si vous utilisez déjà SPI pour quelque chose sur votre carte, il est trivial de le lire.
Si vous devez être en mesure de modifier l'ID au moment de l'exécution, l'utilisation de cavaliers plutôt que de lier les entrées avec des traces serait une bonne idée.
la source
Quelques options auxquelles je peux penser: -
Liens de résistance SMD PADS / O OHM. Utilisez un système binaire pour la configuration matérielle afin de réduire le nombre de broches pour votre processeur.
Cavaliers. La carte aurait des broches de connecteur 2xN ajoutant un cavalier à la broche droite vous permettant de sélectionner votre configuration. Une erreur est plus facile à résoudre. Cela peut être un peu coûteux et utiliser plus d'espace sur la carte en fonction du cavalier.
Si vous avez une EEPROM sur la carte, il vous sera peut-être possible d'incorporer la configuration dans la mémoire.
Est-il possible de changer le firmware lui-même en utilisant un #define ou similaire? Ensuite, vous n'avez pas besoin d'espace sur la carte et de broches supplémentaires pour la détection de version.
la source
Les EEPROM à un fil sont une bonne solution car elles ne nécessitent qu'un seul GPIO mais peuvent stocker une grande quantité d'informations de configuration. Ils permettent également au microcontrôleur d'écrire ces informations pendant le test de la carte (par exemple, les données d'étalonnage). Beaucoup ont une broche de protection en écriture ou un bit programmable unique pour empêcher d'autres changements.
D'autres avantages incluent des fonctionnalités utiles telles que des numéros de série uniques garantis.
Cette option est utilisée dans de nombreux systèmes, tels que les sondes d'oscilloscope et les batteries, car elle ne nécessite qu'une seule ligne de données. L'EEPROM peut même être alimentée à partir de la ligne de données elle-même.
Le principal inconvénient est le coût. Le coût n'est pas élevé, mais sur les produits fabriqués en série, quelques centimes peuvent être importants.
Un exemple d'une telle EEPROM est le DS2431, qui stocke 1 Ko.
la source