IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Périphériques Discussion :

Port LPT via PCI express


Sujet :

Périphériques

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Port LPT via PCI express
    Bonjour,

    J'ai installé un port LPT via PCI express sur mon ordi Windows 7 64 bits. Je dois écrire sur le port parallèle à l'aide de la dll inpout32.
    Le problème est que je dois spécifier dans mon code l'adresse mémoire du port LPT.

    Savez-vous où le trouver ?
    Dans le gestionnaire de périphériques, je vois apparaitre mon port LPT, mais dans un logiciel tel que LPTPortTest, le port est invisible car le logiciel recherche un port LPT natif certainement ... et le mien est branché derrière la carte PCIexpress ...

    Si vous avez des idées je suis preneur ..
    Merci beaucoup, bonne journée !

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Tu dois avoir avec la carte un pilote qui créait un port LPT dans le gestionnaire de périphérique.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour

    Je possède cela (mais sur Windows 7)



    Donc j'utilise les plages d'adresses pour communiquer à mon port LPT mais rien ne se passe, et des petits utilitaires comme LPT Port Test ou ParallelPortTest ne reconnaissent même pas mon LPT ... alors que j'ai utilisé le CD fourni avec ma carte.
    L'adresse mentionnée dans le gestionnaire de périph est peut etre celle de mon port pci express non ? Puisque c'est lui qui est connecté réellement à mon PC ...

    Si vous avez d'autres idées n'hésitez pas, je vous remercie beaucoup,
    Bonne journée
    Images attachées Images attachées  

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    à ma connaissance inpout32 ne fonctionne pas sur des Windows 64. Si tu programmes en C++, tu peux utiliser CreateFile(), WriteFile et CloseHandle.
    Mais pour que cela marche bien tu dois gruger Windows : il faut souder une résistance (500 ohms ou 1 kohms) entre les pins 10 (ACK), 11 (busy) et 12 (paper out) et la masse.

    Un exemple :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    #include <windows.h>
    #include <iostream>
    #include <string>
    #include <stdio.h>
     
    int main()
    {
    	std::string port = "LPT3";  // nom du port
    	BYTE data = 255; // 1 sur toutes les sorties
    	DWORD dw;
    	HANDLE hPort;
     
     
    	hPort = CreateFile(port.c_str(), GENERIC_WRITE, 0, NULL, OPEN_EXISTING,  NULL, NULL);
     
    	if (hPort==INVALID_HANDLE_VALUE)
    	{
    		std::cout << port << " erreur" ;
    		Sleep(1000);
    	}
    	else
    	{
    		std::cout << port;
    		WriteFile(hPort, &data, sizeof(data), &dw, NULL);
    		std::cout << " dw=" << dw << " data=" << data;
     
    		Sleep(5000);
     
    		data = 0;
    		WriteFile(hPort, &data, sizeof(data), &dw, NULL);
    		CloseHandle(hPort);
    	}
    }

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Mais pour que cela marche bien tu dois gruger Windows : il faut souder une résistance (500 ohms ou 1 kohms) entre les pins 10 (ACK), 11 (busy) et 12 (paper out) et la masse.
    Salut, Auteur. Manque une précision, là-dessus : tu veux dire que tu relies ensemble les 3 pinoches 10, 11 et 12 du connecteur DB25 ?
    Et au passage, du coup tu perds la détection Paper Out ? C'est concon, ça...

    Citation Envoyé par tej64 Voir le message
    J'ai installé un port LPT via PCI express sur mon ordi Windows 7 64 bits.
    Citation Envoyé par tej64 Voir le message
    Je possède cela (mais sur Windows 7)
    Ah ! Sous-entendu Windows 7 32 bits et tu as deux machines ? Je n'aime pas supposer, dans les diagnostics, et là c'est pas clair...

    Citation Envoyé par tej64 Voir le message
    Donc j'utilise les plages d'adresses pour communiquer à mon port LPT mais rien ne se passe, et des petits utilitaires comme LPT Port Test ou ParallelPortTest ne reconnaissent même pas mon LPT ... alors que j'ai utilisé le CD fourni avec ma carte.
    Pb de 32 <> 64 ?

    Citation Envoyé par tej64 Voir le message
    L'adresse mentionnée dans le gestionnaire de périph est peuttre celle de mon port pci express non ? Puisque c'est lui qui est connecté réellement à mon PC ...
    Non, parce qu'à ce compte-là, les ports série auraient aussi la même adresse : je te laisse imaginer la pagaille...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Salut, Auteur. Manque une précision, là-dessus : tu veux dire que tu relies ensemble les 3 pinoches 10, 11 et 12 du connecteur DB25 ?
    Et au passage, du coup tu perds la détection Paper Out ? C'est concon, ça...
    non, non. Chacune des 3 broches est reliée à la masse par une résistance.

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Auteur Voir le message
    non, non. Chacune des 3 broches est reliée à la masse par une résistance.
    Ben dis donc, j'ai bien fait de poser la question ! Relis-toi (à peine édité pour aller à l'essentiel) :
    Citation Envoyé par Auteur Voir le message
    il faut souder une résistance entre les pins 10, 11 et 12 et la masse.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    voilà un schéma pour éclaircir les esprits.
    Images attachées Images attachées  

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Auteur Voir le message
    voilà un schéma pour éclaircir les esprits.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Merci pour vos nombreuses réponses, je vais essayer en C++ alors, et réfléchir à ce montage que tu as proposé.
    C'est pas vraiment évident à utiliser ensuite, le port parallèle est censé recevoir des ordres via le PC, puis actionner des moteurs via un pont en H ...

    En tous cas merci beaucoup !

  11. #11
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    euh....

    Les LED c'est pour l'exemple, pour vérifier que tu as bien un signal en sortie.

    Tu reçois les commandes et tu pilotes le matériel en utilisant le même port ? Tu dois enlever les LED sur les pins qui te serviront d'entrée.
    Généralement pour piloter des pont en H on utilise des signaux PWM, peut-être que c'est faisable avec un programme qui gère très bien les timing, sur une voie du port parallèle, mais je ne peux pas t'assurer que ta fréquence et le rapport cyclique seront constants dans le temps.

    Tu es obligé d'utiliser un port parallèle ? Si ce sont des petits moteurs, peut-être qu'un Arduino et un shield motor pourraient répondre à ton besoin. Dans ce cas tu envoies tes commandes sur un port série que l'Arduino pourra traiter ensuite.

  12. #12
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Normalement les adresses des ports LPT sont (service de base) 0x378 à 0x37A pour LPT1, 0x278 à 0x27A pour LPT2, 0x3BC à 0x3BE pour LPT3
    Il peut arriver que LPT1 et LPT2 soit inversé suivant les systèmes.

    Ces adresses sont les adresses des services de bases des ports LPT fournis en standard par le bios et relayé par les systèmes d'exploitation.
    Cela ne signifie pas que ta carte est à cette adresse, mais, si le pilote est bien fait, il doit, je pense au minimum, mapper les services de base sur une de ces adresses là.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

Discussions similaires

  1. Comptatibilité carte PCI via PCI Express
    Par sam-sam dans le forum Périphériques
    Réponses: 5
    Dernier message: 14/03/2013, 19h21
  2. Port PCI Express ou port AGP ?
    Par kalliste2b dans le forum Composants
    Réponses: 2
    Dernier message: 20/10/2008, 19h04
  3. Carte PCI express dans un port PCI standard
    Par jab dans le forum Composants
    Réponses: 3
    Dernier message: 10/02/2007, 20h53
  4. Comment accèder au port LPT d'une carte PCI
    Par Carheim dans le forum Windows
    Réponses: 9
    Dernier message: 29/03/2006, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo