Compteur / compteur kilométrique sur IN14


Bonjour!
Encore une fois, la créativité a attaqué. J'ai décidé de mettre à jour l'ancien compteur de vitesse du char de combat VAZ 2121. Après avoir fait un audit des bacs, j'ai trouvé 3 pièces IN14. Pas assez pour une montre, beaucoup pour un thermomètre. Pas là - pas ici. Dans l'indicateur de vitesse - c'est tout.
Pour commencer, l'indicateur de vitesse standard a été retiré et vidé. Pour être honnête, le kilométrage actuel est enregistré sur un morceau de papier. Un capteur de vitesse de 10 impulsions par tour (DSA-3) a été acheté. Comme indicateurs de vitesse - l'IN14 susmentionné, pour afficher le kilométrage, les heures et autres - largement connus dans les cercles étroits des concepteurs AON sur le z80 - ALS318.

Initialement, le cœur de l'appareil était PIC18F452 pour l'abondance de GPIO. Ensuite, je suis tombé sur l'expandeur de port i2c mcp23017, auquel je voulais depuis longtemps accéder. Avec lui, le besoin de nombreux GPIO a disparu, et msp430g2452, qui était proche de moi dans les derniers designs, a été choisi. Retrouvez également la montre RTC - i2c ds1307.
IN14 nécessite 170 volts pour un fonctionnement normal. Le Step-up DC-DC a été assemblé selon un circuit testé sur le MC34063 + IRF740. Je décrirai certaines des nuances qui sont apparues au cours du processus de création.
1. Le boîtier rond . Pas tout à fait une forme pratique pour le placement à l'intérieur de l'électronique et des écrans. J'ai dû rendre la structure interne modulaire avec plusieurs connecteurs. La tâche consistait également à rendre le boîtier étanche (enfin, ou presque), car la ligne de flottaison est plus haute que le toit en raison des conditions de fonctionnement de la voiture. Cela a été décidé en remplissant les trous en excès avec de la colle époxy et en installant un seul connecteur pour la communication avec le monde extérieur. Conception actuelle:

et connecteur:

2. Indication dynamique. Afin de ne pas remarquer la commutation des décharges lors d'un affichage dynamique, si exaspérant pour certaines personnes, la fréquence de rafraîchissement de chaque décharge doit être d'au moins 100 Hz. Certes, il y a ceux qui voient 100 Hz, mais je ne les conduis pas sur cette voiture. Des deux indicateurs, le plus «difficile» de ce point de vue est l'ALS318 9 bits. Il s'avère que le taux de rafraîchissement doit être d'au moins 9 * 100 Hz. Pour simplifier le calcul des intervalles - une fréquence de rafraîchissement de 1 kHz a été choisie. Le circuit ALS318 est connecté à l'extension de port mcp23017. Port A - segments, port B - bits. Le 9ème bit est contrôlé directement depuis le GPIO du microcontrôleur. Il s'avère qu'une fois toutes les millisecondes, il est nécessaire de mettre à jour l'état des ports A et B de l'expandeur via i2c. La nuance suivante est sortie d'ici.
3. Échange lent i2c avec ds1307. Dans notre cas, deux esclaves sont suspendus au bus i2c. Extenseur de port et horloge. Ces derniers ne suivent pas la fréquence SCL supérieure à 100 kHz, tandis que l'expanseur peut fonctionner à des fréquences allant jusqu'à 1,7 MHz. Pour mettre à jour les ports d'extension, vous devez écrire 4 mots de 8 bits dans i2c toutes les 1 ms (adresse d'extension, adresse du port A, données pour le port A, données pour le port B). Lors de l'initialisation, l'expandeur est programmé pour incrémenter automatiquement les adresses des registres internes lors de la lecture / écriture. Et l'adresse du port B suit immédiatement l'adresse du port A, ce qui permet d'économiser sur le transfert d'une adresse supplémentaire du port B.Pour garantir un temps de traitement court de la procédure d'indication de mise à jour, la fréquence d'horloge SCL de 500 kHz a été choisie. De plus, un relevé de l'état de la montre est effectué une fois tous les 100 cycles de mise à jour de l'affichage, c'est-à-dire toutes les 100 ms.La procédure d'interrogation d'horloge définit la fréquence SCL sur 100 kHz acceptable pour ds1307. Lors du débogage de l'échange sur i2c, l'analyseur logique USB SaleaeLogic (8 canaux, jusqu'à 24 MHz d'échantillonnage) a grandement aidé. Soft to it est capable de décoder divers protocoles, y compris i2c.

4. Nutrition . L'indicateur de vitesse pour stocker le temps est constamment alimenté par la batterie et pour le fonctionnement - la tension fournie lorsque le contact est mis. Le dernier est alimenté par un convertisseur et décodeur DC-DC pour IN14, un extenseur de port. En l'absence de tension d'allumage - l'appareil est mis en mode stockage. Si la clé de contact est allumée, l'indication démarre, les interruptions du capteur de vitesse sont autorisées. Lorsque le contact est coupé, les relevés du compteur kilométrique sont enregistrés dans la mémoire non volatile du microcontrôleur.
5. Gestion Pour régler l'horloge, réinitialiser les odomètres (il y en a deux, sauf le compteur kilométrique principal), un encodeur avec un bouton a été utilisé (j'ai honnêtement volé l'image sur le réseau. Mon encodeur est déjà rempli d'adhésif thermofusible pour l'étanchéité):

6. Niveaux logiques des esclaves i2c. Étant donné que l'horloge ds1307 est alimentée par 5 V et que le microcontrôleur et l'expandeur de port de 3,3 V, les résistances de rappel du bus i2c sont connectées à 3,3 V. Selon la fiche technique du DS1307, la tension de l'unité logique est de 2,2 V, puis 3,3 V seront pleinement opérationnels.
7. Chien de gardeLe système utilise une interface matérielle i2c, tandis que le processeur "dort" en attendant qu'un octet soit envoyé / reçu. En cas de panne / coupure d'allumage à ce moment, le microcontrôleur peut ne pas attendre la réponse de l'esclave et rester en mode "veille". Pour éliminer de tels blocages, le chien de garde matériel du microcontrôleur est utilisé. Dans la boucle principale, le chien de garde est constamment réinitialisé. En cas de raccrochage, la boucle principale s'arrête et le chien de garde déborde, envoyant une réinitialisation au microcontrôleur. Pour déterminer la nature de la réinitialisation (mise sous tension ou chien de garde), une variable est introduite dans le programme qui n'est pas initialisée lors de la réinitialisation (#pragma NOINIT). S'il est égal à la valeur connue, il y a eu une réinitialisation par le chien de garde.
8. ÉtalonnageEn principe, le calibrage peut être fait déjà en combat, par exemple, pour voyager à une certaine vitesse en gps. Après avoir tapé, par exemple, 30 km / h - cliquez sur le capuchon, et le compteur de vitesse se souviendra de la fréquence d'impulsion mesurée correspondant à 30 km / h. Mais sur le mur du fond il y avait une inscription intéressante:

Ainsi, 10 impulsions du capteur de vitesse correspondront à un mètre parcouru par la voiture. S'il y a des différences importantes en fait, je ferai les ajustements nécessaires.
9. Résistance aux vibrations.L'appareil est conçu pour fonctionner dans des conditions difficiles du point de vue des vibrations. Je n'ai pas trouvé d'informations sur la résistance aux vibrations IN14 sur Internet. Le temps, comme on dit, le dira. Les connexions électriques sont effectuées par le bon vieux MGTF. Après avoir vérifié les modules, ils ont été remplis de colle époxy. Soit dit en passant, j'ai trouvé dans fixprice toute une colle sous la forme de seringues doubles.
Voici les éléments de conception:





10. Divers. Kilométrage existant enregistré précédemment à partir des morceaux de papier susmentionnés dans une mémoire non volatile. En parlant d'elle. La mémoire non volatile est organisée page par page dans msp430. Les trois premiers sont disponibles pour l'utilisateur. Le quatrième stocke les données d'étalonnage de l'horloge. Les lectures du compteur de kilométrage principal et de deux odomètres réinitialisables supplémentaires sont enregistrées séquentiellement, remplissant les trois premières pages de flash à tour de rôle. À la fin de la troisième page - les trois premières pages sont effacées et l'enregistrement recommence à partir du début de la première. Ainsi, la ressource flash est augmentée, bien que la ressource du commutateur d'allumage (la sauvegarde se produit lorsque le contact est coupé) est, bien entendu, inférieure à la ressource d'effacement de l'enregistrement flash.
Dans le tableau de bord:

En principe, tout. En attente de commentaires et de commentaires. Archive avec les sources et le schéma dans diptrace selon la tradition de l'image :
Malheureusement, le habrastorage mis à jour reconnaît l'archive dans l'image et ne permet pas de l'enregistrer, voici donc les sources et le schéma:
dl.dropboxusercontent.com/u/974924/nivaCon2.rar
PS Et oui, Ces lampes IN14 ont en effet 44 ans.
La vidéo PPS en déplacement n'a pas pu être supprimée. Pas assez de mains. Détermination de la vitesse vérifiée par GPS. Écarts de ± 4 km / h à une vitesse de 40 km / h. Précision assez suffisante.

Voici la vidéo:

Je l'ai filmé comme ceci:

Source: https://habr.com/ru/post/fr396433/


All Articles