Je suis un codeur de logiciel de merde quand il y va. Je n’ai pas fait attention lorsque tout a été orienté objet et mes racines étaient toujours des systèmes d’exploitation de temps d’assemblage et de temps réel (RTOS) de toute façon.
Donc, il est naturel que j’atteigne qu’un véritable émulateur en circuit (glace) à la fin de mon petit bus de bus d’OBDII pour accélérer le widget Generator Pulse. La glace est un périphérique matériel utilisé pour déboguer des systèmes embarqués. Il communique avec le microcontrôleur de votre carte, vous permettant de visualiser ce qui se passe en pausant l’exécution et d’inspecter ou de modifier des valeurs dans les registres matériels. Si vous voulez être excellent au développement intégré, vous devez être excellent à l’aide d’une émulation en circuit.
Non seulement je peux profiter de mes erreurs en temps réel presque réel, je reçois une vidéo à ce sujet.
Obtenir des données d’un véhicule
Je travaille sur une petite planche qui se branchera dans ma voiture et donnera un accès direct à la vitesse rapportée sur le réseau de la zone du contrôleur (CAN BUS).
Pour sauvegarder un peu, mon dernier message vidéo portait sur mon désir d’inuier de faire une petite assemblée qui pourrait brancher le port OBDII sur mon camion et créer une série d’impulsions représentant la vitesse de l’automobile pour que mon GPS fonctionne beaucoup beaucoup. plus précisément. Bien qu’il y ait eu un fil enterré profondément dans les multiples faisceaux de fils connectés au module de commande du moteur du véhicule, j’ai pris une décision pour de nombreuses raisons de créer ma propre source de signal.
Au cœur de mon projet, il est nécessaire de convertir le port OBDII et le protocole sous-jacent peut sur une variable de base représentant la vitesse, puis sur cette valeur à un flux d’impulsions où la fréquence variait à base de vitesse. Le protocole OBDII / Can peut géré par la puce STN1110 et converti en ASCII, et j’utilise une ATMEGA328 de la forme trouvée sur une multitude de planches arduinoïnes pour la conversion ASCII à impulsion. J’utilise des interruptions matérielles pour contrôler la sortie du signal pour le calendrier de rock-solide et sans gigue.
Parcourez le processus d’utilisation d’un émulateur en circuit dans la vidéo ci-dessous et rejoignez-moi après la pause pour quelques détails sur le processus.
Le matériel
J’ai révisé le conseil en considérant que la dernière vidéo et supprimé le support des différents protocoles autres que la boîte, qui est le protocole non obsolète du groupe. En supprimant une bande de pièces, j’ai pu changer le style d’emballage à travers le trou traversant, ce qui est beaucoup plus facile pour beaucoup de hobbytistes à domicile, vous permettant ainsi de laisser la colle de soudure dans le réfrigérateur.
Révélateur
Rev 1
Le “autre connecteur” sur votre Arduino
Contrairement à l’Arduino qui est prêt à parler à votre port USB lorsque vous le sortez de la boîte, les puces ATMEGA arrivent sans aucune connaissance de la procédure à suivre et de télécharger le code, en d’autres termes, il n’a pas de chargeur de démarrage. Par conséquent, j’ai la programmation en circuit-programmation-programmation (ICSP) acheminé vers une en-tête PIN sur mon tableau afin que je puisse programmer la pièce directement.
Sur ce connecteur, vous trouverez la ligne de réinitialisation, ce qui indique avec cet en-tête, je peux utiliser une véritable glace utilisant le protocole de débogwire. Considérant que l’énorme majorité des conceptions qui utilisent une puce AVR ne repuissent pas la broche de réinitialisation pour GPIO, il s’agit d’une meilleure broche à utiliser pour la glace. Toutes les communications pendant le processus de débogage auront lieu sur la broche de réinitialisation.
Entrer dans la glace
Lors de la création d’un ordinateur à partir de zéro, il y a toujours la scène où rien ne fonctionne encore. Mettez simplement, un circuit de microprocesseur ne peut pas fonctionner que près de toutes les parties de la conception fonctionne; Ram, ROM et les bus sous-jacents ont tous besoin de travailler (principalement) avant que les choses de base puissent être effectuées. En tant qu’ingénieur de matériel du commerce, je voudrais toujours accéder à une glace pour lancer la mise en œuvre; Ce n’est qu’après la libération de la bêta la glace commencerait à rassembler la poussière dans le coin.
Dans le cas de l’ATMEGA, les capacités de débogage sont intégrées au microcontrôleur lui-même. Il s’agit d’une mise en œuvre beaucoup plus simple que les premières jours que nous devions avoir un deuxième processeur isolé qui court-circuit avec son propre RAM / ROM local.
Une note indiquée dans la vidéo est qu’une carte arduinoois standard doit avoir les condensateurs de filtrage retirés de la ligne de réinitialisation afin de permettre aux données à grande vitesse sur la ligne de son utilisation de débogwire.
La glace que j’utilise ici est celle faite par Atmel et est compatible avec Atmel Studio, il existe également d’autres modèles disponibles tels que le dragon AVR.
Glaciale
La glace nous permet de télécharger et de simplifier notre code tout en pouvant observer et remplacer les registres de RAM et d’E / S du clavier. Nous sommes en mesure de profiter du programme étape par étape ou de regarder sous le code de montage réel généré par le compilateur. Nous pouvons déguster des variables et des emplacements directement dans la RAM ou de profiter des contreparties de langage C. Il est également possible de sauter sur un appel de sous-routine dans l’instance de vouloir voir le résultat sans tout le traitement.
Ça vaut la peine de voir votre temps pour voir même un look des capacités d’une glace dans unction. Je vous recommande de profiter de la vidéo où commence le débogage.
Derniers mots
Cette vidéo était vraiment sur la finition du circuit OBDII, donc je n’avais pas vraiment le temps de discuter de tout ce qu’une glace peut faire, peut-être que je ferai un poste consacré à l’environnement de glace et de développement la prochaine fois.