begin process at 2012 02 17 08:07:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Périphériques

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :17 476 / 2 390

Auteur : rylryl

Ecrire un message privé
Site perso
Commentaire sur cette source (31)
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

Les Membres Club peuvent 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é..

 Sources du même auteur

Source avec Zip Source avec une capture USB : 8 ENTREES / 16 SORTIES AVEC UN PIC18F4550 (HID).
Source avec Zip Source avec une capture USB : DÉCODEUR RC5 POUR TÉLÉCOMMANDE TV,VCR... AVEC UN PIC18...
Source avec Zip Source avec une capture PORT SERIE: PROGRAMMATEUR DE MÉMOIRES I2C AVEC ÉDITEUR HEXAD...
Source avec Zip PORT SERIE / BUS I2C AVEC PCF8574A, 24C32, PCF8591 ET PCF858...
Source avec Zip PORT PARALLÈLE : CONTRÔLEZ VOTRE PC AVEC UNE TÉLÉCOMMANDE TV...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) LIRE ET CHANGER LA LUMINOSITÉ DES ÉCRANS LCD (DE PORTABLE) C... par ShareVB
Source avec Zip Source avec une capture VISUAL BASIC ET MICROPROCESSEUR MBED par ccllee
Source avec Zip Source avec une capture Source .NET (Dotnet) VARIATEUR SECTEUR 11 VOIES SUR PORT SERIE OU USB par mays
Source avec Zip Source avec une capture PILOTER LES PORTS PARALLELES. par djebbipgm
Source avec Zip PILOTER LES PORT COMM DE PC par djebbipgm

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) PORT PARALLÈLE VS2008 par vbelkhiyar
Source avec Zip Source avec une capture PROGRAMMATION EEPROM I2C par snowjimmy
Source avec Zip Source avec une capture Source .NET (Dotnet) ITUNES REMOTE, FABRIQUER SA PROPRE TÉLÉCOMMANDE POUR ITUNES par Blanc
Source avec Zip Source avec une capture PILOTER UN RELAIS VIA LE PORT PARALLÈLE par Crazydoub
Source avec Zip PORT SERIE / BUS I2C AVEC PCF8574A, 24C32, PCF8591 ET PCF858... par rylryl

Commentaires et avis

Commentaire de thierrydelepine le 28/03/2006 10:32:03

Un petit peu d'electronique, sympa.

Commentaire de rylryl le 28/03/2006 22:43:54

Merci de cet accueil !

ryl...

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 ;)

Commentaire de rylryl le 29/03/2006 02:43:30

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

ryl...

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 ?

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...

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.

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.

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...

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

@+

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

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...

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?

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...

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

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...

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

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.

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.

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...

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.

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é?

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).

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) ?

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".

Commentaire de snake57 le 13/06/2006 14:06:08

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

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...

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 ?

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. ;)

Commentaire de rylryl le 13/06/2006 20:52:43

Super !!
Et merci a toi aussi...

A+
ryl...

Commentaire de djsmoye le 12/10/2011 17:37:14

Bonjour à tous,

Je sais que je fais un peu de déterrage mais bon :-)

J'ai essayé ce schéma et c'est plutôt concluant mais la question que je me pose c'est est-ce que vu sa simplicité la stabilité est au rendez-vous? Je vois nombre d'interfaces lpt -> i2c et la plupart est à base de 74ls05 et autres alors du coup je me demande si ces quelques résistances font que ça fonctionne vraiment bien?

 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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales