Lire trames CTS

papifouettard Messages postés 2 Date d'inscription mercredi 2 mai 2012 Statut Membre Dernière intervention 1 juin 2012 - 1 juin 2012 à 09:58
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 1 juin 2012 à 20:53
Bonjour à vous,

Je travaille actuellement , dans le but d'un stage, sur un logiciel qui permet d'initialiser une carte d'interface et de contrôler les sous-ensembles d'un monnayeur. Ce dernier est géré entre autre en i2c, où RTS est la ligne SDA en émission , DTR est la ligne SCL, et CTS est la ligne SDA en réception. J'ai réussi à initialiser la carte ( il suffit d'envoyer à un PCF8574 les données 11111000, en gérant la clock et SDA en même temps.) ce qui était mon travail principal. Mais maintenant je dois pouvoir déterminer quel composant ne fonctionne pas, je m'explique:
Sur la carte d'interface, il y a au total 4 PCF8574 dont j'ai déterminé les adresses. L'un d'eux sert à alimenter la carte ( ce que j'appelle l'initialiser), ce qui se fait donc au début , puis basta. Les autres servent à activer ou non divers électro-aimant, pour ouvrir un clapet par exemple.
Mon objectif est donc de déterminer l’état des broches P0-P7 de chaque PCF lorsqu'elles sont au repos ( ceci je peux le faire à l'oscilloscope dans le pire des cas.) histoire de faire un modèle de l'état "normal" des broches P des PCF, Mettre le tout dans un tableau 1, et faire un tableau 2 qui me donnerait l'état "actuelle" des broches P des PCF afin de pouvoir comparer les deux tableaux ( et ainsi déterminer un composant défectueux etc...).
Je ne suis pas sûr de savoir comment faire les tableaux pour l'instant mais ce n'est pas ça mon soucis le plus important. Ce que je voudrais savoir, c'est comment faire pour lire les données de CTS bit par bit , afin de remplir le tableau deux.
J'envisageais une solution où j'aurais appelé le PCF voulu en mode lecture (jusque là , pas de soucis avec les fonction RTSEnable et DTRenable) puis après l'ACKnowledge, lorsque l'on commence donc à lire les données , placer la fonction CTSHolding après chaque "pic" de la fonction DTR ( SCL). Exemple:

'on vient d'envoyer l'adresse du PCF et de recevoir le bit d'acknowledge
MSComm1.DTREnable = True
Sleep(1) 'tempo obligatoire du fait de la lenteur de la fct° DTREnable
MSComm1.CTSHolding = True 'lecture du premier bit
MSComm1.DTREnable = False 'Arrivée du premier bit vers le PC
Sleep(1)
MSComm1.DTREnable = True
Sleep(1)
MSComm1.CTSHolding = True 'lecture du second bit
MSComm1.DTREnable = False 'Arrivée du deuxième bit vers le PC
'ETC...

Le soucis c'est que je ne vois pas comment on affiche les bits reçu par cts holding, je ne sais pas non plus si je ne vais pas rater les bits que je veux, je ne sais pas non plus si mon utilisation de cette fonction est correct.

2 réponses

Utilisateur anonyme
1 juin 2012 à 17:46
C'est bien pratique les stages. Cela permet aux employés réguliers de ne pas se faire dire que leur histoire est bonne pour des électroniciens, mais incompréhensible pour le monde ordinaire et que bien des programmeurs ne sont pas électroniciens.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 juin 2012 à 20:53
Bonjour,

Pour cela, je pense qu'il te faudra encapsuler les échanges dans une série de classes, pour rendre la manipulation plus facile.

Concernant la récupération des données entrantes, tant que ta fréquence d'horloge est inférieure à celle de tes lectures de données, je pense que ça passera.

Sinon, rien de mieux qu'un test.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0
Rejoignez-nous