summaryrefslogtreecommitdiff
path: root/docs/src/drivers/pico_ppmc_fr.txt
blob: fb5d2e50c4f8f1b4fa12a3a7686d9b8e4da3459a (plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
:lang: fr
:toc:

= Pico PPMC

[[cha:pico-drivers]] (((Pico PPMC Driver)))

Le _Pico Systems_ est une famille de cartes pour contrôler les servos analogiques,
les moteurs pas à pas et les servos numériques pilotés en PWM. Les cartes
se connectent sur le PC par le port parallèle configuré en mode EPP. Bien que
la plupart des utilisateurs ne connectent qu'une seule carte par port
parallèle, en théorie toutes les combinaisons de cartes entre 8 et 16 peuvent
être utilisées sur un seul port parallèle. Un pilote servant pour tous les
types de cartes. La combinaison finale d'entrées/sorties dépends du nombre de
cartes installées. Le pilote ne distingue pas entre les cartes, il s'agit
simplement d'un numéro de canal d'entrées/sorties (codeur, etc) commençant à 0
sur la première carte.

Installation:
----
    loadrt hal_ppmc port_addr=<addr1>[,<addr2>[,<addr3>...]]
----

Le paramètres _port_addr_ indique au pilote quel port parallèle utiliser.
Par défaut, _<addr1>_ est en 0x0378, _<addr2>_ et les suivantes ne sont pas 
utilisées. Le pilote cherche sur l'espace entier de l'adresse du port
parallèle étendu (EPP) indiquée par _port_addr_, scrutant pour toute carte(s)
de la famille PPMC. Il exporte ensuite les pins de HAL de tout ce qu'il a trouvé.
Durant le chargement, ou la tentative de chargement, le pilote affiche tous
les messages de débogage utiles dans le log du noyau, qui pourra être visualisé
avec _dmesg_. 

Un maximum de 3 bus parport peuvent êtres utilisés, et chaque bus peut recevoir
un maximum de 8 périphériques.

== Pins

Dans ce qui suit, pour les pins, les paramètres et les fonctions, <board>  
représente l'ID de la carte. Selon nos conventions de nommage, la première carte 
devrait toujours avoir l'ID zéro. Toutefois, le driver fixera l'ID en se basant 
sur les switches de la carte, de sorte qu'il peut être différent de zéro même si 
il n'y a qu'une seule carte.

_(All s32 output) ppmc.<port>.encoder.<channel>.count_::
     Position codeur, en nombre de top comptés.
_(all s32 output) ppmc.<port>.encoder.<channel>.delta_::
    Différence de top comptés depuis la dernière lecture, en unités brutes de
    comptage codeur.
_(All float output) ppmc.<port>.encoder.<channel>.velocity_::
    Vitesse mise à l'échelle en unités utilisateur par seconde. Sur PPMC et USC 
   ces valeurs sont dérivées du nombre de top codeur par période servo, elle est
   donc affectée par la granularité du codeur. Sur les cartes UPC avec les
   micro-logiciels du 21/08/09 et suivants, la vitesse est estimée par
   timestamping sur le comptage du codeur, ce qui peut être utilisé pour
   accroitre la finesse de cette sortie vitesse. Cela peut être régulé par
   un composant PID de HAL pour produire une réponse servo plus stable. Cette
   fonction doit être validée dans la ligne de commande HAL qui démarre le 
   pilote PPMC, avec une option _timestamp=0x00_.
_(All float output) ppmc.<port>.encoder.<channel>.position_::
    Position codeur, en unités utilisateur.
_(All bit bidir) ppmc.<port>.encoder.<channel>.index-enable_::
   Connecte l'index _axis.#.index-enable_ pour _home-to-index_. C'et un signal
   de HAL bi-directionnel. Le fixer à TRUE, causera une remise à zéro hardware
   du codeur sur la prochaine impulsion d'index du codeur.
   Le pilote détectera cela et remettra le signal sur FALSE.
_(UPC bit input) ppmc.<port>.pwm.<channel>.enable_::
    Active un générateur de PWM.
_(UPC float input) ppmc.<port>.pwm.<channel>.value_::
    Valeur qui détermine le rapport cyclique de l'onde PWM. La valeur est
    divisée par _pwm.<channel>.scale_, par exemple, si le résultat est
    0.6, le rapport cyclique sera de 60%, et ainsi de suite. 
   Les valeurs de rapport cyclique négatives finiront en valeurs absolues, la 
   pin de direction sera positionnée pour indiquer ce négatif.
_(USC bit input) ppmc.<port>.stepgen.<channel>.enable_::
   Active un générateur d'impulsions de pas.
_(USC float input) ppmc.<port>.stepgen.<channel>.velocity_::
   Valeur qui détermine la fréquence des pas. La valeur est multipliée
   par _stepgen.<channel>.scale_ et le résultat est la fréquence, en pas par 
   seconde. Des valeurs négatives résultera une fréquence basée sur une valeur
   absolue, la pin de direction sera positionnée pour indiquer ce négatif.
_(All bit output) ppmc.<port>.in-<channel>_::
    État d'une pin d'entrée numérique, voir l'entrée numérique canonique.
_(All bit input) ppmc.<port>.in.<channel>-not_::
    État inversé d'une pin d'entrée numérique, voir l'entrée numérique
    canonique.
_(All bit output) ppmc.<port>.out-<channel>_::
    Valeur  à écrire sur une sortie numérique, voir la sortie numérique
    canonique. 
_(Option float output) ppmc.<port>.DAC8-<channel>.value_::
    Valeur à écrire sur une sortie analogique, étendue entre 0 et 255.
    Ce qui envoie 8 bits de sortie sur J8, sur lequel doit être connectée une
    carte DAC de broche. 0 corresponds à zéro Volts, 255 corresponds à 10 Volts.
    La polarité de la sortie peut être fixée toujours négative, toujours
    positive, ou elle peut être contrôlée par l'état de SSR1 (positive quand
    _on_) et SSR2 (négative quand _on_). Vous devez spécifier
    _extradac = 0x00_ sur la ligne de commande HAL qui charge le pilote
    PPMC pour valider cette fonction sur la première carte USC ou UPC.
_(Option bit input) ppmc.<port>.dout-<channel>.out_::
    Valeur à écrire sur une des 8 pins de sorties extra numériques de J8.
    Vous devez spécifier _extradout = 0x00_ sur la ligne de commande HAL qui
    charge le pilote PPMC pour valider cette fonction sur la première carte
    USC ou UPC. _extradac_ et _extradout_ sont des caractéristiques 
    mutuellement exclusives comme elles utilisent les mêmes lignes de signal à
    des fins différentes.Ces pins de sortie seront énumérées après les sorties
    numériques standards de la carte.

== Paramètres

_(All float) ppmc.<port>.enc.<channel>.scale_::
    Nombre de tops codeur par unité utilisateur (pour les conversions
    depuis le nombre d'unités).
_(UPC float) ppmc.<port>.pwm.<channel-range>.freq_::
    Fréquence porteuse de la PWM, en Hz. S'applique à un groupe de quatre
    générateurs de PWM consécutifs, indiqués par _<channel-range>_.
    Le minimum est de 610Hz, le maximum est de 500KHz.
_(UPC float) ppmc.<port>.pwm.<channel>.scale_::
    Échelle pour générateur de
   PWM. Si _scale_ vaut X, alors le rapport cyclique sera de 100% quand
   _value_ de la pin vaudra X (ou -X).
_(UPC float) ppmc.<port>.pwm.<channel>.max-dc_::
    Rapport cyclique maximum, compris entre 0.0 et 1.0.
_(UPC float) ppmc.<port>.pwm.<channel>.min-dc_::
    Rapport cyclique minimum, compris entre 0.0 et 1.0.
_(UPC float) ppmc.<port>.pwm.<channel>.duty-cycle_::
    Rapport cyclique actuel (utilisé surtout pour la maintenance)
_(UPC bit) ppmc.<port>.pwm.<channel>.bootstrap_::
    Si true, le générateur de PWM générera une courte séquence d'impulsions
    dans les deux polarités quand l'Arrêt d'Urgence sera activé, pour charger
    les capacités de bootstrap utilisées par certains pilotes à portes MOSFET.
_(USC u32) ppmc.<port>.stepgen.<channel-range>.setup-time_::
    Fixe le temps minimum, entre l'impulsion de changement de direction et
   l'impulsion de pas, en unités de 100ns. S'applique à un groupe de quatre
   générateurs de PWM consécutifs, comme indiqué par _<channel-range>_.
_(USC u32) ppmc.<port>.stepgen.<channel-range>.pulse-width_::
    Fixe la largeur des impulsions de pas, en unité de 100ns. S'applique à un
   groupe de quatre générateurs de PWM consécutifs, comme indiqué par 
   _<channel-range>_.
_(USC u32) ppmc.<port>.stepgen.<channel-range>.pulse-space-min_::
    Fixe le temps minimum entre les impulsions, en unité de 100ns. S'applique
    à un groupe de quatre générateurs de PWM consécutifs, comme indiqué
    par _<channel-range>_.
   Le ratio maximum est:
//   latexmath:[$ \frac{1}{ ( 100ns * ( _pulse-width_ + _pulse-space-min_ )) } $].
    *+1 / (100ns * (pulse-width + pulse-space-min))+*
_(USC float) ppmc.<port>.stepgen.<channel>.scale_::
    Échelle pour générateur d'impulsions de pas. La fréquence des pas est
    en Hz, c'est la valeur absolue de _vitesse_ * _échelle_.
_(USC float) ppmc.<port>.stepgen.<channel>.max-vel_::
    La valeur maximum de _velocity_. Les consignes supérieures à _max-vel_,
    lui seront clampées. S'applique également aux valeurs négatives.
    (La valeur absolue est clampée.)
_(USC float) ppmc.<port>.stepgen.<channel>.frequency_::
    Fréquence de pas actuelle en Hz (utilisé principalement pour la maintenance)
_(Option float) ppmc.<port>.DAC8.<channel>.scale_::
    Fixe l'échelle d'une sortie extra DAC, de sorte qu'une valeur de sortie
    égale à l'échelle fournisse une amplitude de sortie de 10.0 V.
    (Le signe de la sortie est fixé par cavaliers et/ou une autre sortie
    numérique)
_(Option bit) ppmc.<port>.out.<channel>-invert_::
    Inverse une sortie numérique, voir la sortie numérique canonique.
_(Option bit) ppmc.<port>.dout.<channel>-invert_::
    Inverse une sortie numérique de J8, voir la sortie numérique canonique.

== Fonctions

_(All funct) ppmc.<port>.read_::
    Lit toutes les entrées (entrées numériques et top de codeurs) sur un port.
    Ces lectures sont organisées par blocs de registres contigus, pour éviter
    au maximum de charger le CPU.
_(All funct) ppmc.<port>.write_::
    Écrit toutes les sorties (sorties numériques, générateurs de pas et
    de PWM) sur un port. Ces lectures sont organisées par blocs de registres
    contigus, pour éviter au maximum de charger le CPU.