<![CDATA[Forum Ubuntu-fr.org / Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?id=1235851 Tue, 02 Apr 2013 21:28:23 +0000 FluxBB <![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13105441#p13105441 tiramiseb a écrit :

Ça dépend jusqu'où vont les couches basses, pour toi smile

C'est bien parce que je n'en sais trop rien que je ne l'ai pas précisé tongue

Je dirais au moins de 1 à 5 inclues, même plutôt de 1 à 6.

tiramiseb a écrit :

Un driver de webcam, il va proposer des fonctions de haut niveau pour lire le flux vidéo, donc ton appli ne fait que lire le flux vidéo, ce qui est pour moi une fonction de haut niveau... Mais le driver ne fait pas que l'envoi/réception de données, il fait en sorte que ce soit facile à utiliser.

Donc, c'est bien ce que je pensais : l'appli s'occupe de la couche 7 (donc, celle que OSI appelle la couche application !), et le driver de toutes les autres.

Mais bon, on parle un peu dans le vide, là : il faut d'abord que je vois ce qui se passe, après on pourra analyser.

Merci pour ton aide précieuse, je reviens dès que j'ai pu analyser ce qui se passe sous W$.

]]>
Tue, 02 Apr 2013 21:28:23 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13105441#p13105441
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13102281#p13102281

Autrement dit : le driver ne s'occupe-t-il pas des couches basses du modèle OSI, et mon application ne devrait-elle pas s'occuper uniquement des couches hautes et se contenter de passer par le driver pour émettre/recevoir ces données ?

Ça dépend jusqu'où vont les couches basses, pour toi smile

Un driver HID (pour le clavier par exemple), ça gère toutes les couches : pas besoin d'application pour que le clavier communique avec le noyau.

Un driver de webcam, il va proposer des fonctions de haut niveau pour lire le flux vidéo, donc ton appli ne fait que lire le flux vidéo, ce qui est pour moi une fonction de haut niveau... Mais le driver ne fait pas que l'envoi/réception de données, il fait en sorte que ce soit facile à utiliser.

]]>
Tue, 02 Apr 2013 16:41:13 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13102281#p13102281
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13102231#p13102231 tiramiseb a écrit :

inversion Philips <-> Samsung

Oui désolé smile

Pas de problème : il n'y a que ceux qui ne font rien qui ne se trompent jamais !

tiramiseb a écrit :

Bof. C'est juste une puce qui "sait parler en USB".
Derrière, je pense que les vraies instructions sont du côté du micro-contrôleur, et ce chip ne fait qu'interpréter tout ça.

Bon, il faut que j'en apprenne plus sur l'USB : j'avais tendance à penser le contraire !
Pour moi, il faut un driver pour gérer le protocole lui-même, et le reste n'est que les données qui circulent.

Bien sûr, vu l'importance de l'électronique sur cette carte, il doit y avoir beaucoup de données qui circulent et sont traitées, mais ça reste des données, et il faut bien le protocole pour les transmettre.

Autrement dit : le driver ne s'occupe-t-il pas des couches basses du modèle OSI, et mon application ne devrait-elle pas s'occuper uniquement des couches hautes et se contenter de passer par le driver pour émettre/recevoir ces données ?

]]>
Tue, 02 Apr 2013 16:36:00 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13102231#p13102231
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13100021#p13100021

inversion Philips <-> Samsung

Oui désolé smile

un driver sachant causer avec l'ISP1583BS ?

Bof. C'est juste une puce qui "sait parler en USB".
Derrière, je pense que les vraies instructions sont du côté du micro-contrôleur, et ce chip ne fait qu'interpréter tout ça.

Je me demande maintenant si ce boitier n'est pas un bazooka pour tuer un moustique

Je le pense également.
Il faudrait trouver un boîtier qui ne fait que le strict minimum de ce que tu veux... mais encore faut-il que ça existe, ce qui semble difficile selon les propos de ton client.

]]>
Tue, 02 Apr 2013 13:31:43 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13100021#p13100021
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13099891#p13099891 tiramiseb a écrit :

C'est marqué dessus.

Lattice ECP2M

Quand je dis que je n'y connais strictement rien... J'ai cherché avec les 3 numéros de dessous, pourquoi donc ai-je zappé celui-ci ? roll

tiramiseb a écrit :

Lattice ECP2M : FPGA
- Samsung K4M56323PI-HG75 : mémoire
- Atmel MEGA324PA : micro-contrôleur
- Maxim MAX3051 : transceiver
- Philips ISP1583BS : interface USB <= a priori c'est lui qui gère les communications USB (placé d'ailleurs en face du port USB, c'est logique smile )

Super, merci ! C'est un des points qui me manquait, et qui m'empêchait d'avancer ! J'ai toujours été brouillé avec le marquage des puces...

tiramiseb a écrit :

Au vu du dessin des circuits, simple supposition :
- la puce Lattice est là pour gérer les entrées-sorties de ce matériel (SYS IN et SYS OUT)
- la mémoire est utilisée par cette puce
- la communication USB est gérée par la puce Samsung
- le micro-contrôleur Atmel se place entre les deux pour transmettre les données lues dans la puce Lattice au port USB

Ça semblerait logique (sauf inversion Philips <-> Samsung).

En fait, il s'agit d'un petit boitier quadruple convertisseur A/D 24 bits permettant de faire des mesures de tension 0->10v et 4->20mA et retransmettant ça via USB à une usine à gaz logicielle permettant de gérer ces mesures et les transmettre éventuellement à d'autres logiciels comme LABVIEW ou MATLAB.

Le survol du contenu du CD de cette suite logicielle me laissait supposer une forte interaction entre les différentes parties de la suite logicielle et la gestion de l'USB. Ce que tu me dis le confirmerait, et laisserait même supposer qu'une partie du boulot se fait dans le boitier.

L'électronique est bien conçue, mais hélas les choix faits pour la suite logicielle donnent des résultats déplorables, et le client faisait beaucoup mieux il y a presque 20 ans avec un matériel à base de 486 DX4 et quelques cartes PCMCIA, le tout tournant sous DOS !!! Il avait certes beaucoup moins de possibilités, mais c'était un peu la philosophie des LL : on ne fait qu'une chose, mais on la fait bien. Il récupérait un fichier de mesures qu'il pouvait traiter ou convertir à sa guise...

Le but est donc d'utiliser ce boitier pour faire l'acquisition et la mémorisation des mesures, le client ayant déjà ce qu'il faut pour les traiter derrière.

Je vais donc voir si on peut (faire en sorte de) récupérer la sortie des CAD sans traitement directement sur l'USB. Je me demande maintenant si ce boitier n'est pas un bazooka pour tuer un moustique, mais d'après le client, il est difficile dans le domaine de la mesure industrielle de trouver des CAD 24 bits, et celui-ci serait l'un des meilleurs et le seul bien adapté à son besoin.

tiramiseb a écrit :

Je pense que la meilleure approche serait d'utiliser le matériel sur un PC sous Windows et de "sniffer" les ports USB pour comprendre le protocole de communication utilisée.
De la rétro-ingénierie logicielle de base, quoi...

Oui, c'est ce que je pensais faire, mais j'espérais y arriver sous Linux. Ce ne serait pas possible, si je trouve un driver sachant causer avec l'ISP1583BS ? (mais je dis peut-être une bêtise ?)

pierguiard a écrit :

Je vois que tu as des interlocuteurs plus compétant que je ne le suis, donc je vous laisse travailler.

Ok. Merci pour ta proposition qui aurait pu m'être très utile. Effectivement, tiramiseb m'a donné pas mal d'éléments intéressants et je pense qu'il ne me reste plus qu'à étudier tout ça de près. Avec un petit peu de chance, je vais peut-être bien arriver à m'en sortir.

Je reviendrai donc un peu plus tard pour expliquer comment, ou si j'ai du mal à avancer pour poser d'autres questions idiotes (genre où trouver la référence d'une puce wink ). Merci à tous en attendant !

]]>
Tue, 02 Apr 2013 13:19:26 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13099891#p13099891
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13098701#p13098701

des interlocuteurs plus compétant que je ne le suis

Bof hein... J'ai fait un peu d'électronique pendant mes études, mais ça commence à dater.

C'est juste du bon sens : on vérifie le rôle de chacune des puces et on regarde comment sont "dessinés" les circuits.

]]>
Tue, 02 Apr 2013 11:32:43 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13098701#p13098701
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13098331#p13098331 Je vois que tu as des interlocuteurs plus compétant que je ne le suis, donc je vous laisse travailler.

]]>
Tue, 02 Apr 2013 10:55:36 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13098331#p13098331
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13098301#p13098301 Au vu du dessin des circuits, simple supposition :
- la puce Lattice est là pour gérer les entrées-sorties de ce matériel (SYS IN et SYS OUT)
- la mémoire est utilisée par cette puce
- la communication USB est gérée par la puce Samsung
- le micro-contrôleur Atmel se place entre les deux pour transmettre les données lues dans la puce Lattice au port USB

Je pense que la meilleure approche serait d'utiliser le matériel sur un PC sous Windows et de "sniffer" les ports USB pour comprendre le protocole de communication utilisée.
De la rétro-ingénierie logicielle de base, quoi...

]]>
Tue, 02 Apr 2013 10:55:12 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13098301#p13098301
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13098251#p13098251 - Lattice ECP2M : FPGA
- Samsung K4M56323PI-HG75 : mémoire
- Atmel MEGA324PA : micro-contrôleur
- Maxim MAX3051 : transceiver
- Philips ISP1583BS : interface USB <= a priori c'est lui qui gère les communications USB (placé d'ailleurs en face du port USB, c'est logique smile )

Il semble que cette platine est très complexe, avec une architecture proche de celle des ordinateurs : un FPGA, un microprocesseur/microcontrôleur, de la mémoire, des dispositifs d'entrée-sortie...

Il semble par conséquent que c'est une platine standard, qui et programmée pour remplir telle ou telle fonction.

Ce n'est peut-être même pas le FPGA qui peut être réutilisé çà et là pour différents usage, mais toute la platine...
Et, inversement, une autre platine pourrait être utilisée pour remplir exactement le même usage.

]]>
Tue, 02 Apr 2013 10:51:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13098251#p13098251
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13098191#p13098191

Quelle est cette puce exactement ? Quelle référence donner pour trouver la datasheet et les instructions de programmation ?

C'est marqué dessus.

Lattice ECP2M
http://www.latticesemi.com/products/fpga/ecp2/index.cfm


J'imagine que ce qu'on peut programmer, c'est ce qui concerne la transmission des données, pas le protocole USB lui-même ?

Ce qu'on peut programmer, c'est ce que la puce fait avec les données qu'on lui fournit.

Il est possible que la gestion de l'USB soit déléguée à une des puces autour...

]]>
Tue, 02 Apr 2013 10:42:16 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13098191#p13098191
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13098161#p13098161 Oui, effectivement...

Mais peut-être pas : qu'est-ce qui est programmable, et le programme est-il établi une fois pour toute (en rom) ou injecté à chaque initialisation ?

Je vais me documenter un peu sur le sujet : je n'y connais vraiment rien dans ce domaine ! Quelle est cette puce exactement ? Quelle référence donner pour trouver la datasheet et les instructions de programmation ?

J'imagine que ce qu'on peut programmer, c'est ce qui concerne la transmission des données, pas le protocole USB lui-même ? Autrement dit, dans le modèle OSI, ce serait la couche présentation ou application ? Dans ce cas, à partir du moment où j'ai les couches inférieures dispo via un driver ou un module, je devrais pouvoir me débrouiller soit pour injecter le programme qui me convient, soit utiliser celui en place. Il faudra probablement un peu de rétro-ingénierie, mais les datas ne représentant que des valeurs physiques simples, ça ne devrait pas être très compliqué de retrouver ce qu'on a en entrée des CAD...

]]>
Tue, 02 Apr 2013 10:40:15 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13098161#p13098161
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13097531#p13097531 Salut,

Cette puce est un FPGA (une puce totalement programmable).

Je ne suis pas électronicien, mais je me dis que, même si on trouvait un autre matériel qui utilise la même puce, pas sûr qu'on puisse réutiliser le driver... vu que la puce est programmable, elle serait programmée différemment... Non ?

]]>
Tue, 02 Apr 2013 09:18:48 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13097531#p13097531
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13097391#p13097391 Salut,

J'ai mis en ligne les drivers sur mon serveur. Au premier survol, je dirais :
- Que l'ensemble semble assez bien documenté, avec même des exemples en C qui pourraient éventuellement m'être utiles smile
- Par contre que les drivers semblent étroitement liés à l'usine à gaz logicielle qui va avec toute une gamme d'appareils,
- Que les drivers semblent être les mêmes pour toute la gamme

Pour ma part, je reste persuadé qu'il est possible et préférable (vu l'apparente complexité de ce qui est fourni) de partir de la puce et voir si un driver Linux n'est pas déjà disponible. Mais si pierguiard ou un autre sait tirer parti de ces drivers W$ pour me dire s'il existe un driver Linux ou comment communiquer avec l'engin, pourquoi pas ? Peu importe le flacon, pourvu qu'on aie l'ivresse wink

A noter : j'ai extrait les répertoires "driver" et "usb" de la suite logicielle. J'espère que c'est bien ça et qu'il y a tout : il n'y a apparemment pas de drivers séparés...

]]>
Tue, 02 Apr 2013 08:39:32 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13097391#p13097391
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13095191#p13095191 Je regarderai demain (enfin, j'espère trouver le temps !) pour te le faire passer. Sinon, il est probablement dispo sur le site dont tu m'as donné l'adresse plus haut wink Par contre, je ne sais pas où exactement : pas cherché, puisque je devais récupérer le CD avec toute la suite...

]]>
Mon, 01 Apr 2013 21:09:26 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13095191#p13095191
<![CDATA[Réponse à : Comment trouver le driver ou le chipset d'un périphérique USB ?]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=13094511#p13094511 Je peux essayer de t'aider si tu me dis ou recuperer le pilote, par contre ne compte pas sur moi pour coder, je n'y comprends rien !

]]>
Mon, 01 Apr 2013 20:20:22 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=13094511#p13094511