[EXEL] TRIPLEX sur EXELVISION démos, tests, ...

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Répondre
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

[EXEL] TRIPLEX sur EXELVISION démos, tests, ...

Message par 6502man »

Donc j'ouvre ce nouveau sujet pour traiter de tout ce qui va concerner la programmation USB sur l'interface d'Ennio EXELDREAM.

J'éditerai la première page au fur et a mesure.

Toutes les personnes qui ont des connaissances/expériences dans le domaine de la programmation USB sont les bienvenues et je les invite a compléter/rectifier si besoin :wink:

C'est tout nouveau pour moi, j'avance dans l'inconnu, je vais tacher de ne pas écrire de bêtises :oops:

Pour commencer je vais essayer de détailler ce que j'ai compris des transactions USB et des caractéristiques de l'interface SL811HS

- Il y a plusieurs vitesses possible en USB ( LOW / FULL / ...)
- La vitesse des transactions est déterminées par une résistance pullup 1,5 Khoms sur le 3.3V (LOW SPEED = - / FULL SPEED = + ) VBUS
- L'hote et le périphérique doivent ce synchroniser à la même vitesse (évidement). (je ne sait pas encore si tout les périphériques récents acceptent le LOW et FULL SPEED, en tout cas les périphériques USB2 ne doivent pas pouvoir utiliser le LOW SPEED )
- les données sont transmisses avec le bits de poids faible en premier LSB
- les transactions se font par "PACKET" (organisés différemment selon ce que l'on veux faire ...)
- Pour chaque transaction il y a un identifiant SYNC, PID, ADDR, ENDP et CRC (détails plus loin)


A SUIVRE ...
Dernière modification par 6502man le 22 juin 2016 22:15, modifié 1 fois.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [EXEL] programmation USB sur EXELVISION

Message par jester »

De toute façon si ton but est d'accéder à des periphs de masse, seul le FULL SPEED t'intéresse (12Mbit/s), le LOW speed c'est pour clavier/souris/pad (1.5Mbit/s). Tu ne peux en aucun cas utiliser le LOW SPEED à part si tu veux utiliser un clavier PC sur l'Exl100.
Il faut cibler les tests directement sur le FULL SPEED (USB 1.1 bien sur, on oubliera le HIGH SPEED de l'USB2 à 480Mbit/s :lol: )
En bref aucun periph de masse ne comprend le LOW SPEED (ou bien une ancienne clé USB au fond d’un obscur tiroir).

Le gros soucis c'est bien sur la communication synchrone avec un CPU asthmatique à 2.5Mhz pour piloter tout ça, et bien sur la présence d'un port série (et non parallèle) avec le SL811HS. Et comme la mémoire du SL811HS est insuffisante il faut travailler en double buffering dans le host: l'un reçoit la portion du secteur du device, pendant que l'autre est lu/écrit par le CPU pour placer les données en RAM (au moins 50 cycles pour lire 1octet). Et tout ça en synchrone afin de basculer le buffer au bon moment pour ne perdre de paquets et planter le bus 8).
C'est en gros ce que j'avais compris du truc.
C'est super joli sur le papier mais ça réclame des coucougnettes de Mammouth pour programmer tout cela. Je dirais même qu'en plus de la doc USB, un recueil de prière à une quelconque divinité ne sera pas de trop...

Je laisse les pros de l'USB prendre la main.
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par 6502man »

Je n'ai pas encore pu vérifier si on pouvait accéder au périphérique "MASS STORAGE" en LOW SPEED, mais c'est bien possible que l'on soit obligé d'utiliser le FULL SPEED.

Mais pour cette partie je pense que le CH376DS1 nous seras d'une grande aide ;)

Demain je continue à détailler l'USB et après j'essaie un bout de code pour faire un RESET du périphérique préambule pour l'énumération ...
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
irios
Messages : 3398
Inscription : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par irios »

Je confirme !! On peut accéder au périphérique "MASS STORAGE" en LOW SPEED. Tests effectués sur un COMPAQ ARMADA avec windows 98 en USB 1.0 !!! :mrgreen: De plus, les transactions entre le contrôleur et la machine se fait bien en parallèle et non en série ! :wink:
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par 6502man »

Quel support de stockage as tu testé ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
irios
Messages : 3398
Inscription : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par irios »

Disque dur et clé
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par 6502man »

Clé récente ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [EXEL] programmation USB sur EXELVISION

Message par jester »

Sans déconner on peut lire dans la classe Mass Storage qu'elle ne marche qu'en FULL SPEED (USB 1.1)... ça marche vraiment avec n'importe quel disque/clé ??? Bonne nouvelle. faudrait être 100% sur qu'il s'agit bien d'une interface USB 1.0 dans ce vieux PC, et pas un truc USB 1.1 avant validation complète du protocole. Il faudrait mesurer la vitesse effective (proche de 0.19Mo/s ou 1.5Mo/s).
Le SL811HS possède un port parallèle, envoie par octet... dans les specs/docs j'avais souvenir d'avoir vu un port de type série bit à bit... tant mieux.
LOW SPEED (1.5Mbit/s) + échange par octet avec l'interface, la ça devient beaucoup plus faisable.
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: [EXEL] programmation USB sur EXELVISION

Message par petitjd »

En risquant de dire une connerie, il semblerait que le low speed et l'usb mass storage fonctionnent ensemble a condition d'atteindre une bande passant de 800 bytes par seconde.
A verifier grandement tout de même
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Avatar de l’utilisateur
irios
Messages : 3398
Inscription : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par irios »

Clé 4Go DANE-ELEC

Disque dur 160Go WD1600ME

Je ferai les tests de vitesse mais il faut que je trouve un utilitaire qui va bien sous windows 98 !! :mrgreen:
J'ai trouvé la doc du chipset de l'ARMADA gérant l'USB Intel 82371AB: c'est du 1.1 qui gère du 1.0 et en aucun cas du 2.0 !

J'ai réalisé des tests de transfert sur la clé 4Go et je suis à 5Mbits/s max !!!
Idem avec le disque dur. :mrgreen:
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [EXEL] programmation USB sur EXELVISION

Message par jester »

Donc on est dans le cas d'un FULL SPEED... ce serait étrange en LOW SPEED. Mes bouquins sur l'USB indique clairement: MASS STORAGE = FULL SPEED... sinon pas de transaction. Les periphs USB2.0 supportent presque tous un transfert en USB 1.1 mode FULL SPEED.

Je n'ai jamais vu personnellement de chip USB 1.0 !
Avatar de l’utilisateur
irios
Messages : 3398
Inscription : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par irios »

Dernière modification par irios le 10 sept. 2013 19:48, modifié 1 fois.
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [EXEL] programmation USB sur EXELVISION

Message par jester »

Je suis aussi très confiant... dans Philippe... beaucoup moins dans le TMS7020.
Avatar de l’utilisateur
irios
Messages : 3398
Inscription : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par irios »

Mise en place sur le vieux portable d'un sniffer USB et une très bonne surprise !! Il y a 8 octets max dans chaque trame transmise. Il me reste plus qu'à déterminer si c'est du Low ou du Full.

Suite à la deuxième acquisition lorsque le périphérique s'initialise, on voit bien que l'interface HOST valide le courant de conso max du périphérique (clé) à 100mA. Ce courant nous indique que l'interface gère bien la version USB 1.1 et cela nous indique aussi que ce courant est en rapport avec un périphérique low power !! A suivre ...

Image

Image
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [EXEL] programmation USB sur EXELVISION

Message par 6502man »

En règle générale le LOW SPEED ne travaille qu'avec des longueurs de frames de 8 octets, mais le FULL SPEED peut aussi utiliser des frames de 8 octets.

Mais surtout les premières transmissions à l'init sont toujours en 8 octets il me semble.

Donc pas sûr que le périphérique travaille par la suite en 8 octets.

Tu peux essayer le logiciel USBVIEW qui va te donner pas mal d'infos sur tous les périphériques connectés a ton PC et notamment la longueur maxi des frames d'init et de transfert ;)

J'ai déjà pu voir que pour un lecteur de disquette usb que j'utilise pour recréer les disquettes MSX et ALICE entre autres, les longueurs de frames sont toutes en 8 octets ;)
OUPS: en faite les frames sont de 8 pour l'init et 64 pour les transfert BULK/INTER/.. :oops:

Par contre pour un lecteur de cartes usb les frames de transferts sont en 512 :shock:

A préciser ....


EDIT:
Sur ta capture on voit bien que les frames "BULK or INTERUPT TRANSFERT" sont toutes en 8 octets, mais aucune précision sur la vitesse :(
Dernière modification par 6502man le 11 sept. 2013 12:18, modifié 1 fois.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Répondre