Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PORT PARALLÈLE / BUS I2C AVEC PCF8574A, 24C32, PCF8591 ET PCF8583.


Information sur la source

Catégorie :Périphériques Classé sous : i2c, parallèle, pcf8583, 24c32, 8574 Niveau : Initié Date de création : 28/03/2006 Date de mise à jour : 04/06/2006 19:23:24 Vu / téléchargé: 13 584 / 2 129

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

Description

Communication avec des circuits externes de la norme I2C.
Pour voir les schémas de câblage, cliquez sur un des boutons "Infos" du prog

!!! IMPORTANT !!!
Dans le BIOS le port parallèle doit être en mode bidirectionnel !

Utilisation de « INPOUT32.DLL » (port parallèle)-> dans zip.
Pour + d'infos sur cette DLL http://www.logix4u.net/

Bon pilotage !  

Ryl...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

28 mars 2006 02:19:22 :
Titre ?
26 mai 2006 17:49:56 :
Code simplifié sur les routines I2C.
04 juin 2006 19:23:24 :
Code simplifié..

Commentaires et avis

signaler à un administrateur
Commentaire de thierrydelepine le 28/03/2006 10:32:03

Un petit peu d'electronique, sympa.

signaler à un administrateur
Commentaire de rylryl le 28/03/2006 22:43:54

Merci de cet accueil !

ryl...

signaler à un administrateur
Commentaire de Nix le 29/03/2006 00:29:37 administrateur CS

ryl, désolé un admin a du désactiver la source pensant que c'était un doublon avec l'autre que tu as posté. Il arrive des fois qu'un post soit posté 2 fois en même temps.
Bref désolé, ta source est la bienvenue ;)

signaler à un administrateur
Commentaire de rylryl le 29/03/2006 02:43:30

Merci Nix pour cette précision, et bravo votre travail.

ryl...

signaler à un administrateur
Commentaire de hackademius le 31/03/2006 00:11:10

trés bonne source , mais je vois qu'il n'y a pas de tempos (pour l'I2c) , les transferts se font en rapport avec la vitesse du PC , ce n'est peut etre pas top ca ?  , il me semble que certaines memoires i2c ou d'autres circuits i2c (STA par ex.) ne doivent pas depasser une certaine vitesse (ca doit etre 40Khz je crois, je ne sais plus exactement)

A moins que le port parallele soit d'origine bridé a une certaine frequence ?

signaler à un administrateur
Commentaire de rylryl le 31/03/2006 02:00:47

Bonjour Hackademius et merci !

Bonne remarque, et bonne conclusion ! effectivement il n'y a pas de tempo l'utilisation de la DLL pour la communication avec le port parallèle génère celle-ci(durée routines internes)...
Si vous rencontrez des problèmes a ce niveau il est bien sur très facile d'en  insérer une.

Pour la mémoire je n'ai pas non plus mis de tempo pour la durée d'écriture pour les mêmes raisons...

PS: Je n'ai pas testé tous les types de CIs I2C a vous de me dire si a l'usage ... merci.

@+ ryl...

signaler à un administrateur
Commentaire de hackademius le 31/03/2006 11:47:31

Ok , je vais tester , sur une 24LC512  , je vais peut etre modifier un peu la source pour ecrire en mode page.

et je vais tester sur un STA013 (decodeur MP3 - phase de config) car avec un pic j'arrive pas a le configurer , si ca marche bien je te redis ca.

signaler à un administrateur
Commentaire de hackademius le 31/03/2006 11:51:01

et par pur hazard , quelqu'un connai le protocol de lecture d'une clef USB ? j'aimerai lire une clef depuis un PIC (18F8722) pour ecrire les donnée sur un disque dur (evidement sans PC)

Clef -> PIC -> Disque dur ?
sans driver sans rien , que avec des signaux numeriques ....

Merci.

signaler à un administrateur
Commentaire de rylryl le 31/03/2006 13:04:26

Aurais-tu l'intention de créer un lecteur MP3 ?
Je ne connais pas le 18F8722, pour l'USB j'utilise un 18F4550 mais uniquement en mode slave et en mode HID (Pas besoin de driver).
Le 18F8722 integre t-il le mode master USB ?
J'ai aussi travaillé un peu sur le protocole ATA/ATAPI toujours par le biais du port parallèle et 2x PPI8255 ... ainsi qu'avec un 16F877.

Je trouve que d'emuler tel ou tel protocole par une interface windows (VB..ou autre) facilite grandement la compréhension et le développement fini les programmations hard a la chaîne...

Si tu as des infos sur l'émulation du bus USB en mode maître ça m'interresse aussi mais je redoute la complexité d'un tel emulateur (beaucoup de contraintes !!)... merci.

A+
ryl...

signaler à un administrateur
Commentaire de hackademius le 31/03/2006 19:20:09

nan je n'ai pas d'infos la dessus , je cherche toujour...

Oui , je suis sur un lecteur MP3 (plutot un autoradio MP3) , PIC 18f8722 , celui est assez grand en memoire pour recevoir la configuration du STA est son programme.
Et je pourai metre a jour mon autoradio par une clef usb (dumoins si jy arrive).

J'utilise donc un HD de 40Go, mon protocole la dessus est bon , j'arrive a le lire et ecrire , la j'en suis a la naviguation dans les dossiers , mais j'ai quelques probleme justement de I2C pour la memoire vive, fo que je travail ca. car je me sert d'une 24C256 pour y stoquer mes infos utiles , mes preferences ...etc.... Au niveau memoire vive (audio) pour le stream mp3 , je me sert de la memoire du PIC , c'est pour ca , que j'ai choisi ce pic , je ne travaille pas  avec des "vraies" memoires car la gestion du multiplexage et de l'adressage, c'est pas mon fort.
Apres une premiere version avec des modules (SIMM ou DIMM je ne sais plus , ce qu'il y avait dans les vieux 286) sans succés , j'ai changé de methode....


et Non , mon Pic n'a aucune interface USB , c'est trés c** , mais bon , si j'arrive a travailler l'USB par programme , c bon , c pas gagné , mais bon....

Je ne connais pas le Mode HID , si tu peut me renseigner. en fait moi , il faudrai le mode maitre , pas slave, c'est lui qui acceuilerai la clef pour la lire.

Mais bon la , je pense que tout ca n'a rien plus rien a voir dans ce forum, on peut en discuter par mail , pour ne pas gener ce code source.
admin@rogerstudio.com

@+

signaler à un administrateur
Commentaire de johnjohn12 le 26/05/2006 15:46:39

Salut a tous, je suis stagiaire dans une boite d'élec et je dois développer un soft en VB pour dialoguer avec des composants I2C. Je me suis grandement inspiré de ce code (grand merki). Par contre je ne dialogue pas avec les memes pattes du port //.(tu utilise les pattes 1 et 2). Ou est défini le numéro des pattes dans ton soft? Est ce l'instruction Out (LPTx + 2), 31. Est ce que 31 est l'adresse de la patte? Encore merci pour ce code

signaler à un administrateur
Commentaire de rylryl le 26/05/2006 17:44:03

Bonjour Johnjohn12 et merci,


les valeurs 30 = 00(0)1111(0)  => bit5=0, bit0=0  =>SCL=0 SDA=Sortie
            31 = 00(0)1111(1)  => bit5=0, bit0=1  =>SCL=1 SDA=Sortie
            62 = 00(1)1111(0)  => bit5=1, bit0=0  =>SCL=0 SDA=Entrée
            63 = 00(1)1111(1)  => bit5=1, bit0=1  =>SCL=1 SDA=Entrée

Ex: Pour 63 ça pourrait aussi être 33 = 00(1)0000(1).

Le bit5 permet de faire basculer D0...D7 pour l'exemple j'uilise la broche N°2(D0=SDA) en entrée(si bit5=1) ou en sortie(si bit5=0)...

Et le bit0 met a 5volt ou 0volt la broche N°1(SCL) de la DB25...

voili...
ryl...

signaler à un administrateur
Commentaire de snake57 le 30/05/2006 16:32:20

Bonjour rylryl,

Moi aussi je suis stagiaire et je me suis servit de ton code.

Mais je ne comprends pas bien les lignes:

Out (LPTx), 1
Out (LPTx + 2), 30
Out (LPTx), 0
Out (LPTx + 2), 31

Pour le 30 et le 31 ok j'ai compris ce que tu as dis plus haut. Par contre ce qui me gène c'est le LPTx et le LPTx+2. Sa correspond a quoi? Et pourquoi met tu 1 et 0 avec LPTX alors que tu met 30 et 31 avec LPTx+2?

signaler à un administrateur
Commentaire de rylryl le 30/05/2006 18:48:12

Bonjour Snake57,

LPTx correspond a l'adresse de base du port parallèle...
(En théorie $H378 pour LPT1 voir BIOS)
Ce qui donne accès au registre DATA(D0...D7) du port parallèle sera piloté.

LPTx+2 correspond au registre CONTROL du port parallèle(SCL)Broche N°1...

Donc LPTx+2 permet de contrôler "SCL" et passe "SDA" soit en ENTREE soit en SORTIE...

Voili...
A+
ryl...

signaler à un administrateur
Commentaire de doba17 le 04/06/2006 14:53:55

avec le branchage du port parallele avec le pc comment on mettre des photos de piles pris par net dans la feuille du form du visaul basic

signaler à un administrateur
Commentaire de rylryl le 04/06/2006 15:03:05

Bonjour DOBA17,

????? Je ne pige pas le sens de ta question désolé !
A+
ryl...

signaler à un administrateur
Commentaire de doba17 le 04/06/2006 15:07:35

si on veut mettre par exemple 2 images dans la feuille du form du vb et mettre une sur l autre pour que au cours du programmation sur vb on met l un des 2 qui sera visible
merci rylryl

signaler à un administrateur
Commentaire de snake57 le 12/06/2006 15:30:10

Bonjour rylryl,

Sa fait plusieurs jours que je m"amuse avec ton programme et une eeprom 24c512.
Mais je me suis rendu compte qu'il y'avait un problème. Lorsque j'écris sur l'eeprom avec un programmateur de pic des valeurs superieur a 7F et que je veux relire avec ton programme il m'indique FF au lieu de m'indiquer la bonne valeur.

Il est donc possible de lire uniquement des valeurs comprise entre 0 et 7F. Pour les valeurs allant de 80 a FF on lit FF.

Peut tu me dire si ce problème vient de chez moi ou non. merci.

signaler à un administrateur
Commentaire de snake57 le 12/06/2006 15:58:15

Pour l'ecriture c'est pareil. Impossible d'écrire un nombre superieur a 7F. Et je vois pas d'ou peux venir le problème.

signaler à un administrateur
Commentaire de rylryl le 12/06/2006 17:21:46

Bonjour SNAKE57,

Je n'ai pas de 512 pour tester mais,
As tu modifié L'adressage pour une 512 ?
As tu essayé avec une 32 ou 64 et as tu le même prob ?
Peut être mettre en place une tempo !
Je me procure une 512 au plus vite pour voir ça !!

A+
ryl...

signaler à un administrateur
Commentaire de snake57 le 12/06/2006 17:56:30

Oui j'ai bien adapté le code pour pouvoir lire et ecrire la 512 j'arrive d'ailleurs a la lire et a l'écrire complètement. Mais uniquement avec des valeurs comprise entre 0 et 7F au lieu de 0 et FF.
Je ne pense pas que cela vienne du fait que j'utilise une 512 mais dans le doute j'essaierai avec une 64 demain.

signaler à un administrateur
Commentaire de snake57 le 13/06/2006 09:01:11

Je viens d'essayer avec une 64 et j'ai le meme problème. Pourtant j'utilise ta source sans modif.

As tu essayé de ton coté?

signaler à un administrateur
Commentaire de snake57 le 13/06/2006 10:55:00

En fait il y'a juste le pb lors de la lecture. Le prog arrive a écrire toute les valeurs de 0 à FF (0 à 255) mais il ne peux lire que les valeurs comprise entre 0 et 7F (0 à 128).

signaler à un administrateur
Commentaire de rylryl le 13/06/2006 12:53:28

Je n'ai pas pour l'instant fait le test sur une 512(j'en ai pas sous la main !).
Apparemment le 7bit ne passe pas correctement a la lecture, mais n'ayant pas le pb difficile pour moi de te répondre...
Je pense que le pb doit être dans (Private Function Recep_8_I2c() As Integer).
Utilise tu une alim externe ou le systeme est auto alimenté par le port parallèle?
Sur la 512 as tu le même phénomène (écriture ok, lecture pb) ?

signaler à un administrateur
Commentaire de snake57 le 13/06/2006 12:59:48

Oui que ce soit avec la 512 ou la 64 j'ai le même pb concernant la lecture.

Pour ce qui est de l'alim j'ai auto-alimenté l'eeprom via la broche 16 du port parallèle. Penses tu que le pb vienne de la?

Pour la fonction recept_8_i2c, lorsque je l'execute pas à pas et que je dois lire une valeur superieur a 7F. Je constate effectivement que le pb vient de la puisque la fonction lit 8bits à "1".

signaler à un administrateur
Commentaire de snake57 le 13/06/2006 14:06:08

J'ai testé avec une alim externe est j'ai le même pb...

signaler à un administrateur
Commentaire de rylryl le 13/06/2006 14:22:10

Essai d'intercaler une tempo dans:

'////////////////////////////////////
'// Lire 8 bits sur le bus I2C
Private Function Recep_8_I2c() As Integer
    Recep_8_I2c = 0
    n = 128                         ' Valeur 8'eme bit
    Out (LPTx + 2), 31              ' SCL=0 ++ SDA en SORTIE
    >>>> ici <<<<
Loop8Bits2:                         ' Passer au bit suivant   (7..0)
    Out (LPTx + 2), 62              ' SCL=1 ++ SDA en ENTREE
    If (Inp(LPTx) And 1) = 1 Then Recep_8_I2c = Recep_8_I2c + n
    Out (LPTx + 2), 63              ' SCL=0 ++ SDA en ENTREE
    n = n / 2                       ' Valeur du bit n-1
    If n <> 0.5 Then GoTo Loop8Bits2  ' Si les 8 bits pas tous Reç recommencer
End Function

Ou alors change la ligne : "Out (LPTx + 2), 31" en "Out (LPTx + 2), 63" pour voir ce qu'il se passe...

Ton port parallèle est-il bien en mode bidir ??

Si je pouvais reproduire ton pb ça serai plus facile pour moi mais la !!

Il faudrait savoir si d'autres personnes ont ce pb...
A+
ryl...

signaler à un administrateur
Commentaire de rylryl le 13/06/2006 14:28:11

Autre chose, As tu fait le test avec un PCF8583 par ex pour voir si la ça se passe bien ?

signaler à un administrateur
Commentaire de snake57 le 13/06/2006 14:46:13

Merci beaucoup pour ton aide rylryl, maintenant tout fonctionne.

J'ai remplacé le 31 par 63 et plus de pb.

La 512 fonctionne également et le tout est alimenté par la broche 16 du port parallèle.

Encore merci pour ton aide rylryl tu me sort une sacrée épine du pied. ;)

signaler à un administrateur
Commentaire de rylryl le 13/06/2006 20:52:43

Super !!
Et merci a toi aussi...

A+
ryl...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Intercepter les I/O du port parallèle. [ par ESC ] Je veux logger tout ce qui passe par le port parallèle et envoyer moi-même des informations.Je suppose que je ne suis pas le premier à essayer :-)))me Intercepter les I/O du port parallèle. [ par ESC ] Je veux logger tout ce qui passe par le port parallèle et envoyer moi-même des informations.Je suppose que je ne suis pas le premier à essayer :-)))me port parallèle [ par Guillaume ] Mon probléme est le suivant :Je dois envoyer un top de synchro à un logiciel par l'intermédiaire du port parallèle. Les caractéristiques sont les suiv port parallèle et Windows NT [ par Guillaume ] Mon probléme est le suivant :Je dois envoyer un top de synchro à un logiciel par l'intermédiaire du port parallèle. Les caractéristiques sont les suiv comment faire pour utiliser le port parallèle d'un pc [ par styfun ] je cherche à utiliser un port parallèle pour commander des voyants. Ils sont connecté sur les broches 2 à 9 (D0 à D7).je suis novice en programmation, Problème avec le port parallèle [ par OrionLG ] J'ai un problème avec Windows XPLorsque j'exécute une application sous VB6 utilisant le port parallèle (avec inpout32.dll), le programme me génère un emmetre un signal via le port parallele [ par skymath ] pas mal de questions ont été posées sur la gestion du port parallèle. Mais elles me paraissent bien compliquées... (je débute en VB)ma question : comm lecture sur le port parallèle [ par juls06 ] Bonjourje suis en train d'effectuer un petit montage avec un LCD et un clavier externe relier au port parallèle. Pour l'instant la seule solution que Programmation et port parallèle [ par Niles ] J'ai l'intention de monter un petit soft qui interragira avec le port parallèle de mon PC, dans le but de faire fonctionner un montage électronique co Travail en parallèle de plusieurs classes... [ par Clonk ] Bonjour,Je développe une application qui doit faire travailler plusieurs instances d'une même classe en même temps.Le problème est qu'elles se lancent


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,558 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.