Vers la page d'accueil
UTS 2000 - Version matériel V3
(mise
à jour au 15/02/2023)
Présentation
matérielle de la V3
<<<----------V3.7c------------------
Mise à jour au 15/02/2020 --------------------------------->>>
Informations
sur les servomoteurs 90 et 180°.
Informations sur la mise sous tension.
Vous
pouvez trouvez des composants en provenance de Chine à moindre prix
(Configurer Paypal pour autoriser le paiement en devise et
faire des achats entre 50 et 70 euro) :
- https://www.ebay.fr/usr/electron-discount
- https://stores.ebay.fr/UTSOURCE-STORE
- https://www.ebay.fr/str/ICMarket2009
- ou de Pologne :
https://www.tme.eu/fr/
Et des sociétés qui fabriquent les circuits imprimé :
- https://jlcpcb.com/
- http://www.util-pocket.com/electronique/circuit_imprime.htm
- https://www.oshpark.com
- https://www.oshstencils.com
<<<------------------------------------------------------------------------------------------------------->>>
Cette page présenté les différences entre la version 2 et la
version 3 compatible avec les dernières version logicielles.
Il
faut commencer par lire entièrement le manuel original de UTS 2000
d'Ulysse pour comprendre le fonctionnement de base et la
page consacrée à la version 2.
J'ai commencé à construire la version 2, présentée sur le site
d'Ulysse et j'ai conçu les circuits imprimés pour cette version.
Les documents
expliquant le fonctionnement des circuits de commande d’aiguillage
et le circuit d’alimentation des leds multiplexées se trouve dans
la présentation de la version V2.
La version 2
est une base intéressante, mais trop limitée pour mon usage. Les
16 cantons me suffisait, mais il fallait plus d'entrées/sorties
pour animer le réseau.
La possibilité de rajouter une seconde carte UTS présente des
inconvénients comme le dialogue RS232 avec deux cartes, mais reste
nécessaire si il y a plus de 16 cantons à alimenter.
La mise au
point d'un nouveau système de détection d’occupation des cantons a
permis de garantir un fonctionnement sans perturbation.
Cette
version V3 est une véritable évolution. La carte du PIC est
modifiée et les programmes du PIC et du PC ont été améliorés.
La nouvelle carte UTS-PIC en V3 n'est plus compatible avec les
anciennes versions du programme PIC et du PC V2.
La fréquence
du PIC est passée de 8 à 20 Mhz pour assurer garantir la puissance
cpu demandée par cette version.
Après avoir
grillé mon dernier PIC 16F876A du à des passages hasardeux de
l'alimentation 5V à 12 V, je suis repassé au 16F873A, un peu moins
cher.
Sa mémoire de 4Ko est largement suffisante pour le programme
actuel.
La carte UTS en V3 avec
les CI additionnels 74HCT00 (
ou 74HC00) câblés en
l'air.
Évolutions matérielles
La carte du
PIC se trouve maintenant épaulée par une carte périphérique de
même taille, ajoutant 40 entrées, 40 sorties supplémentaires à la
carte de base.
Cette carte ajoute aussi les circuits de détection d'occupation
des 16 cantons. Cette carte d'extension consomme 10 mA sous 5
volts.
Voir
la photo : 43_uts_photos_v3.jpg
Les 40 sorties
supplémentaires
Le type de sorties est identiques à la carte principale à
base de ULN2803 pour procurer des sorties à émetteurs communs.
Dans le logiciel du PC, les numéros de ces nouvelles sorties
vont de 40 à 79 et sont gérées de la même façon que les sorties 0 à
39.
Les recommandations pour l’utilisation de la patte 'VR' est
la même que pour le circuit principal. L'utilisation de cette patte
est obligatoire
pour commander des bobines (aiguillages, dételeurs,
relais...).
Les 40 entrées numériques
supplémentaires
Contrairement
à
la carte de base, ces entrées ne sont pas multiplexées, ce sont
des entrées directes, sensible à une tension positive.
Cette disposition permet de connecter directement des montages de
type détecteurs infra-rouge ayant une sortie à 'collecteur
ouvert'.
Ces entrées
numériques supplémentaires peuvent être configurées matériellement
de plusieurs façons en fonction du signal d'entrée.
Ces configurations se font en installant des résistances en entrée
des 74HCT165.
Le PIC ne
mémorise pas les états des entrées et renvoi à chaque requête
l'état instantané des entrées.
Les entrées peuvent être actives au niveau haut ou au niveau bas. Il
suffit de configurer les variables UTS en conséquence.
Logique de fonctionne du programme d 'acquisition du pic :
On attend un
signal de validation des données sous forme d'un créneau de niveau
bas pour les 74HCT165.
Le signal 'B6' est un créneau de niveau haut utilisé aussi par
d'autres fonctions.
Il est inversé sur la carte d'extension par un 74HCT04 au format
cms soudé sous la carte par manque de place au dessus.
Il faut bien vérifier le fonctionnement de ce circuit inverseur, car
j'ai modifié cette partie du circuit imprimé après une erreur de
conception,
mais je ne ai pas testé ce nouveau circuit imprimé en réel !
Dans le
logiciel du PC les numéros de ces nouvelles entrées vont de 40 à
79.
La numérotation des entrées ne correspond pas aux numéros des
entrées des pattes des 74HCT165, mais aux numéros du connecteur,
car l'ordre des entrées en rétabli dans le programme du PIC pour
éviter de croiser les pistes du circuit imprimé.
Les circuits
74HCT165 fonctionnent avec
un niveau d'entrée bas U < 0,8 Volts ou un niveau d'entrée haut
U > 2 Volts.
Attention,
si on utilise des 74HC165,
les tensions sont alors 0,8 et 3,5 volts. Les tensions d'entrées
seront alors différentes.
Le plus pratique est d'utiliser des circuits de type HCT.
Config en entrée : 1er cas (conseillé)
: Entrée prévue en entrée de carte pour une commande à collecteur
ouvert
ou par une
mise à la masse par un interrupteur ou un relais.
Des sorties
de circuits 74xx peuvent être aussi connectés directement à cette
entrée.
Une
résistance en série de 220 kOhms protège les entrées. Au repos,
l'entrée est polarisée au +5 Volts.
<+ 5 Volts>
|
R
R 100 kOhms (SIL)
R
|
(IN)
---+---RRRRRRRRR-----> [ 74HCT165 ] Tension
inférieure 0.8 volts = entrée active.
220 kOhms
Tension d'entrée (IN) > 2 Volts = niveau haut
Tension d'entrée (IN) < 0,8 Volts = niveau bas
Résistance de sortie du circuit (IN) < 15 kOhms.
Si
il y a une diode en sortie du circuit de commande (IN), prendre de
préférence une diode Schottky (bat46, bat41...) pour avoir une
faible chute de tension en série.
Config en entrée :
2ème cas : Tension d'entrée prévue en entrée
de carte entre 0 et +5 volts
Des sorties
de circuits 74xx peuvent être connectées directement à ces
entrées.
Une
résistance en série de 220 kOhms protège les entrées.
(IN) ------RRRRRRRRR-------> [ 74HCT165 ]
220 kOhms
Tension d'entrée (IN) > 2 Volts = niveau haut
Tension d'entrée (IN) < 0,8 Volts = niveau bas
Résistance de sortie du circuit (IN) < 100 kOhms de préférence.
Config en entrée :
3ème cas : Tension d'entrée prévue en entrée
de carte entre 0 et +20 Volts
Une
résistance en série de 220 kOhms protège les entrées et un pont
diviseur abaisse la tension à 5 Volts maximum en entrée des
circuits.
(IN) ----RRRRRRRRR-----+---> [ 74HCT165 ] Tension
supérieure 7,5 volts = entrée active.
220 kOhms |
R
R 100 kOhms (SIL)
R
|
---
-
Tension d'entrée (IN) > 7,5 Volts (20 Volts max) = niveau
haut
Tension d'entrée (IN) < 2,5 Volts = niveau bas
Résistance de sortie du circuit (IN) < 47 kOhms.
Le programme
dans le PC signal une entrée active, quand elle est reliée à la
masse.
Les L293D d'alimentation des
voies
Depuis le
PIC, on utilise un bit de sens pour l'entrée 'in' et un bit de
vitesse pour l'entrée 'enable'.
Si le bit
'Enable' est à '1', le train est alimenté. Si le bit 'Enable' est
à '0', les sorties du L293 sont à haute impédance.
La vitesse du train varie avec la durée de ce signal de type PWM.
Pour le sens
de circulation, il faut alimenter les L293D avec un signal sur
'in1/in4'et un signal inversé sur 'in2/in3' pour que le montage en
pont fonctionne.
Cette inversion sera faite par des 74HCT00 (ou 74HC00)
supplémentaires à cheval sur les circuits existants. Un 74HC4094
alimente deux L293D.
Pour s'adapter aux croisements des pistes sur le circuit imprimé,
des sorties du 74HC4094 sont inversés, le programme assembleur est
écrit en conséquence.
Quand le sens de parcourt est positif les sorties Q4 et Q6 = 0, mais
Q5 et Q7 =1.
Cette configuration permet d'avoir sur le bornier de sorties des
voies = +3-3, +2-2, +1-1, +0-0
ATTENTION en
cas de conception d'un nouveau circuit imprimé, voir la remarque
ICI
En V2 sur un
créneau PWM, le moteur était alimenté au début du créneau puis en
court-circuit sur le reste du créneau.
Maintenant en V3 sur un créneau PWM, le moteur est alimenté au
début du créneau puis le circuit se met en haut impédance sur le
reste du créneau.
Les L293D chauffent ainsi beaucoup moins et les moteurs sont
nettement moins sollicités. La consommation à vide de la carte
principale passe de 450 mA à 150 mA (3 fois moins !).
L'inconvénient
est une vitesse moins proportionnelle à la consigne. Le
train démarre plus vite sur les premiers crans et
les différences aux vitesses élevées sont moins sensibles sur les
derniers crans.
Avec le
quartz à 20 Mhz et le timer TMR0 fixé à 250 µS, la fréquence PWM
d’alimentation des voies est passée de 50 à 62 Hz (=1/(65*250µs)).
La mise
sous tension des montages
A la mise sous tension générale, pendant une fraction de seconde, la
tension appliquée sur les voies peut faire sursauter les trains.
A la mise sous tension de la carte à PIC, les amplis de sortie sont
alimentés et leurs entrées sont déjà valides.
Le temps que le programme du pic s'initialise, les voies sont alors
alimentées pendant une très courte durée.
Il est impossible de corriger cela de façon simple sur la carte
existante.
Si ce phénomène est gênant, il est possible d'alimenter la partie
d'alimentation des voies en 15 volts, avec un relais générant un
retard d'une seconde à la mise sous tension.
Ainsi le PIC a le temps de s'initialiser, avant que les L293D/L298
soient sous tension.
Les circuits de
détection d'occupation des cantons
La carte
supplémentaire comporte un nouveau montage de détection
d'occupation des 16 cantons.
On détecte l'occupation des 16 cantons à la fois, toutes les 16
msec quand les sorties des L293D sont à haute impédance (pendant 2
* 250µs).
En V3 les sorties PWM vers les voies fournissent un créneau à
environ 62 Hz.
Les sorties passent à haute impédance pendant 0,5 msec (2*TMR0)
toutes les 16 msec. On fait la moyenne des 3 dernières détections
pour s'affranchir de parasites.
Avec un tics à 80 ms + 16 msec, le programme du PC est informé en
moins de 100 msec en moyenne.
Cette
méthode de détection est très fiable, ce qui est important pour
assurer le fonctionnent correct du logiciel de supervision sur le
PC.
Décalage
maximum dans le temps pour que l'information arrive au PC :
PIC
+ Temps de
transfert +
PC (Timer de
boucle)
=
Total
V2
17*64*300µs
25
ms
2*250
ms
= 326
ms
500
ms
850
ms
V3
4*65*250µs
13
ms
2*80
ms
= 65
ms
160
ms
238 ms
Quand un
train quitte un canton, il faut 4*16 msec pour que le canton soit
reconnu libre. Le programme du PC est informé en moins de 150 msec
en moyenne.
Ce circuit
de détection ne fonctionne correctement qu'avec des circuits de
type 74HCT165.
<+
12/15
Volts
(alimentation fixe)>
|
R
R 3,9 K Ohms (cms) Tire le rail 1 au +12/15 volt.
R
|
(RAIL 1)
La présence d'un train fait passer du courant du rail 1 vers le
rail 2.
(RAIL 2)
|
+-----RRRRRRRRR-----> [ 74HCT165 ] La tension dépasse 2 volts
en présence de train au
| 220 K
Ohms
moment où le circuit d'alimentation des rails 1 et 2 est à haute
impédance.
R
R 10 kOhms (SIL)
R
|
---
-
On détecte
l'occupation du canton quand la résistance entre les rails est
inférieure à 33 K Ohms. Au-dessus de 120 K Ohms, rien n'est
détecté.
Entre ces deux valeurs, le résultat n'est pas garanti et peut
dépendre du sens et de la vitesse du convoi.
La valeur
des résistances de 3,9 K peut être modifiée si la détection
fonctionne mal (entre 2,2 K et 22 K).
Un nouvel utilisateur d'UTS a placé des résistances de 4,7 K et 6,2
K, pour obtenir une détection de l'ordre de 30 K.
Pour éviter
au circuit 74HCT165 d'être alimenté par une tension trop élevée,
au cas où les entrées sont toutes à +12 volts et
le connecteur inter-carte n’est pas branché, le circuit
d'alimentation comprend une diode led qui consomme 2mA.
Comme mon montage est un prototype, ces résistances de 3,9k au format cms
sont câblées directement sous le circuit principal.
Le schéma alimentation
des voies et détection des convois
Le schéma
ci-dessous a été ajouté pour détailler cette partie.
ATTENTION
: Pour que la détection fonctionne bien quand le train passe d'un
canton à l'autre, il faut que le rail relié par une
résistance au +15 V soit toujours le même, par exemple celui de
gauche (du même coté sauf pour un bout d'une boucle de
retournement).
Si on
réalise un nouveau circuit imprimé, il faut obligatoirement,
quand on utilise le menu UTS : "Debug > Commande directe
RS232 de la carte" et que l'on assigne à tous les cantons
une
vitesse positive, que le train avance toujours dans le même sens
sur tous les cantons.
Pour le circuit de détection, les circuits intégrés
74HCT165 n° 70 les entrées n° : Q7, Q6,
Q5, Q4, Q3, Q2, Q1, Q0
correspondent aux cantons n° : 3,
1, 15, 13, 11, 9,
7, 5
74HCT165 n° 71 les entrées n° : Q7, Q6,
Q5, Q4, Q3, Q2, Q1, Q0
correspondent aux cantons n° :
4, 6, 8, 10, 12,
14, 0, 2
Les
sorties 5 servo-moteurs
La version
V3 permet d'alimenter 5 servo-moteurs sans aucune perturbation.
Les servos sont toujours actifs en V3. Ils peuvent servir à
animer un passage à niveau, un pont tournant...
La partie
servo est placée sur une petite carte satellite. UTS fonctionne
avec ou sans cette carte.
Cette carte
utilise le signal 'CCP1' (portc(2) du PIC). Ce signal
supplémentaire doit être câblé avec du fil volant sous la carte
principal à PIC. (voir le paragraphe "Adaptations
matérielles pour passer de V2 en V3").
Cette carte
utilise le signal 'D.out' de la carte d'extension. Ce signal
supplémentaire doit être câblé avec du fil volant sous la carte
E/S secondaire.
Cette carte
comporte un connecteur d'extension pour une future extension.
Le logiciel sur le PC exploite complètement la commande de ces
servos. On peut aussi les activer à partir du menu 'RS232'.
Le +5V des
servos est produit sur cette carte pour éviter les parasites.
Attention les servo-moteurs consomment beaucoup lors de leurs
déplacements.
Le courant de pointe atteint facilement 1A, mais le courant en
veille reste faible.
Si l'on veut un déplacement plus régulier des servo moteur à basse
vitesse, on peut essayer de démonter le servo et de rajouter en
série avec le moteur une résistance de quelque ohms.
Avec l'arrivé de servo 180°, le programme du PIC "873rs34-ADR0.HEX"
est disponible en 5 versions, pour différents débattements de servo.
A l'origine les servos 90° avaient un débattement de 90° entre 1,00
msec et 2 msec.
Cinq versions du ".hex" suivant le créneau disponible en sortie des
5 servos.
1 - 873rs34-ADR0-1.00à2.00ms.HEX = Créneau de 1,00
msec | 1,50 msec | 2,00 msec
2 - 873rs34-ADR0-0.88à2.11ms.HEX = Créneau de 0,88
msec | 1,50 msec | 2,11 msec
3 - 873rs34-ADR0-0.78à2.21ms.HEX = Créneau de 0,78
msec | 1,50 msec | 2,21 msec
4 - 873rs34-ADR0-0.68à2.31ms.HEX = Créneau de 0,68
msec | 1,50 msec | 2,31 msec
5 - 873rs34-ADR0-0.57à2.41ms.HEX = Créneau de 0,57
msec | 1,50 msec | 2,41 msec
Il ne faut pas utiliser un ".hex" ayant plus d'amplitude que ce que
le servo peut absorber, sinon le servo risque de se retrouver
en buté et de forcer en continu.
La carte fournit une amplitude maximum identique pour les 5 servos.
Si vous prenez la version "5", "873rs34-ADR0-0.57à2.41ms", et
que finalement ce servo 180° ne sera utilisé que sur 90° sur le
réseau, vous passez de 256 à 128 pas de résolution.
La commande de ce servo par UTS sera deux fois moins précise, car
UTS envoie une consigne entre 0 et 255 à la carte.
Si on utilise que la moité de la plage possible, cela revient à
envoyer à la carte une consigne entre 64 et 192 soit 128 positions
possibles.
Il faut donc commencer par utiliser la version "1", et si le servo
sur le réseau demande une amplitude plus importante, utiliser les
versions suivantes.
Le créneau de 1,5 msec donne toujours la position centrale du servo.
Ne pas utiliser des servo 360°. Ces servo servent pour des treuils.
Pour 1 msec, ils sont fixes, sinon ils tournent en continu dans un
sens ou dans l'autre, pour une impulsion < ou > à 1 msec.
Il ne faut pas définir une équation pour un servo dans "config.txt",
et des boutons de commandes sur un TCO, pour ce même servo. Cela
reviendrait à donner des ordres contradictoires à ce servo.
Les entrées sorties du
PIC en V3
Le nombre de
pattes étant limité sur le PIC, les pattes vont servir à plusieurs
fonctions. Le programme du PIC a été modifié pour utiliser les
sorties suivantes :
HHH = Signaux d'horloge pour les registres à décalage.
VVV = Signaux de validation pour les registres à décalage.
** = Signaux pour alimenter les voies PWM.
++ = Signaux pour alimenter les sorties.
: : = Signaux pour alimenter les entrées.
;
PORTA
; (0) Entrée analogique potentiomètre (0)
; (1) Entrée analogique potentiomètre (1)
; (2) Entrée analogique potentiomètre (2)
; (3) Entrée analogique potentiomètre (3)
; (4) Vers led jaune clignotante
; (5) Entrée analogique potentiomètre (4)
; PORTB
; (0) Entrées numériques multiplexées, entrée
bit (2)
; (1) HHH**Sortie horloge vers registre 74HC4094
voies PWM
; HHH--Sortie horloge
vers registre 74HC4094 entrées multiplexées (ancien C(4))
; HHH<<Sortie
horloge vers registre 74HCT165 détection d'occupation des cantons
; (2) VVV**Sortie validation vers registre
74HC4094 voies PWM
; (3) <<Entrée données
74HCT165 détection d'occupation des cantons
; (4) VVV<<Sortie validation vers registre
74HCT165 détection d'occupation des cantons
; (5) ++Sortie données vers
registre 74HC4094 sorties ULN2803 [1]
; (6) VVV++Sortie validation vers registre
74HC4094 sorties ULN2803 [1]
; VVV//Sortie validation
vers registre 74HC4094 sorties ULN2803 [2]
; VVV::Sortie validation
vers registre CD4014 entrées numériques directes [2]
; (7) HHH++Sortie horloge vers registre 74HC4094
sorties ULN2803 [1]
; HHH//Sortie horloge
vers registre 74HC4094 sorties ULN2803 [2]
; HHH::Sortie horloge
vers registre 74HCT165 entrées numériques directes [2]
; PORTC
; (0) Entrées numériques multiplexées, entrée
bit (0)
; (1) Entrées numériques multiplexées, entrée
bit (1)
; (2) Créneau de 1 à 2 msec vers les servos
(CCP1)
; (3) Entrées numériques multiplexées, entrée
bit (3)
; (4) ::Entrée données
74HCT165 entrées numériques directes (2]
; (5) --Sortie données vers
registre 74HC4094 entrées multiplexées
;
**Sortie données vers registre 74HC4094 voies PWM (ancien B(4))
;
//Sortie données vers registre 74HC4094[2] sorties ULN2803 [2]
; (6) Sortie du PIC vers RS232
; (7) Entrée du PIC vers RS232
La carte
principale consomme 170 mA à vide et 180 mA avec la carte
d’extension.
La consommation du +5V augmentent en fonction des sorties activées
et des cantons alimentés, indépendamment du +12 V.
Ce schéma est celui utilisé pour simuler le fonctionnement du
programme du PIC sur simulateur électronique.
Pour cela il est simplifié, mais il est correct. Par exemple, les
74HC4094 attaquent des Leds pour simuler l'alimentation des cantons
au lieu des L293.
La mini carte de
barrières Infrarouges
Télécharger
ces circuits (Clic droit + Enregistrer sous) : Circuits
imprimés, Implantation
Le circuit imprimé fait 25,5 mm x 29,5 mm pour deux barrières
infra-rouge, émetteurs, récepteurs, trous de fixation et connecteurs
compris! Qui dit mieux ?
L'inconvénient
est
sa sensibilité aux rayons du soleil, car le faisceau n'est pas
modulé. Il faut protéger le phototransistors en le plaçant dans un
tube noir.
Ce montage conviendrait difficilement à un réseau exposé au
soleil.
Ce montage
permet au programme UTS de détecter la position précise des trains
pour certaines opérations, notamment les déplacements.
Ces barrières infrarouge sont par exemple indispensables pour
arrêter automatiquement un train sur une voie de garage,
car UTS ne sais pas détecter le passage du canton à la voie de
garage (voies alimentées par la même alimentation du canton).
J'ai choisi
de construire des petits circuits imprimés avec des composant cms,
pour se placer facilement sur mon petit réseau.
Les composants pour deux barrières IR indépendantes sont assemblés
sur une seule plaque.
L'avantage
de ce circuit, hormis la taille réduite, c'est l'hystérésis sur
les entrées. Le changement d'état du signal en sortie est franc,
grâce au NE556 (cms).
La porté du
faisceau est de 5 à 10 cm.
Sur les
photos, certains circuits sont avec ou sans la diode de protection
d'inversion de polarité de l'alimentation.
Photo agrandie du circuit imprimé avant la pose du NE556.
Sur ce schéma,
le circuit est soudé dessous. Sa représentation est ici inversée.
L'alimentation
se fait en + 12 volts continu (15 volts maximum). Un condensateur
de 100 nF cms est placé en parallèle sur l'alimentation.
Une diode
montée en inverse peut être soudée pour protéger le circuit d'une
inversion d'alimentation.
Les deux
sorties sont à collecteur ouvert, utilisables directement avec la
carte 40 entrées/sorties.
- La sortie est au niveau bas (0 volt) quand le faisceau est
coupé (ou en absence de phototransistor en entrée).
- La
led témoin s'allume si le faisceau IR est coupé (ou en absence de
phototransistor en entrée).
On peut
utiliser ce circuit imprimé pour une ou deux barrières :
-
Dans le cas d'une barrière, on n'utilise qu'une seule diode
d'émission IR.
-
Dans le cas de deux barrières, on utilise les deux diodes
d'émission IR en série comme indiqué sur le schéma ci-dessus.
La
résistance, pour alimenter la ou les diodes d'émission, est par
défaut de 680 ohms [681cms] (soit 11~14 mA dans la diode IR).
Si la portée du faisceau est trop faible, on peut souder sur le
circuit imprimé à la place prévue une deuxième résistance en
parallèle
pour augmenter le courant si la diode le permet (le courant passe
alors à 22~28mA).
Pour les
leds témoins, il faut utiliser des diodes leds rouges 3mm de
diamètre de faible consommation (2mA).
Les résistances en sortie des NE556 sont des 4,7 K Ohms [472cms].
Les
résistances placées en entrée du NE556 pour polariser les
phototransistors sont des 47 K Ohms [473cms].
- Si
le circuit est trop sensible à la lumière ambiante, il faut
diminuer les résistances placées en entrée du NE556 de 47 K à 22 K
(ou 10 K Ohms),
et alors peut être augmenté le courant dans la led d'émission.
- Si
le circuit n'est pas assez sensible, il faut augmenter les
résistances placées en entrée du NE556 de 47 K à 100 K Ohms.
On peut aussi utiliser des diodes et phototransistors de 5 mm,
nettement plus performants que les 3 mm.
Pour tester
le circuit, on peut mesurer la tension en entrée du NE556, sur le
bornier (broche n°3 et 4 du bornier du bas).
- Si le faisceau illumine le phototransistor, la tension
doit être dessous de 1/3 de 12 volts (<4 volts) et la sortie
n'est pas active.
- Si le faisceau est coupé, la tension doit être dessus de
2/3 de 12 volts (>8 volts) et la sortie est activée.
Télécharger
ces circuits (Clic droit + Enregistrer sous) : Circuits
imprimés, Implantation
Liaison PC-PIC
La version
V3.3 du PIC est disponible en téléchargement, pour améliorer la
lecture des entrées multiplexées au 20/02/2015.
En V3.x le PC envoi 55 octets et le PIC en renvoi 25 octets
simultanément.
L'échange des données entre le PC et le PIC dure 14 msec. L'envoi
des données se fait en une seule trame, ce qui facilitera le
passage à une liaison usb si nécessaire.
Il est possible d'utiliser le logiciel UTS et de construire ses
propres interfaces, si elles répondre aux spécifications ci-après.
De même, on pourrait utilise les cartes à PIC d'UTS avec un autre
logiciel, si l'on peut modifier les commandes envoyées par cet autre
programme de supervision de réseau.
En V3.x un
octet 0x00 est ajouté en fin de trame pour fiabiliser la
liaison série.
En V3.x la
vitesse de la liaison est de 38400 bps. A cette vitesse, un
caractère est envoyé toutes les 260 µsec.
A 20 Mhz, une instruction assembleur du PIC dure 4*1/20Mhz = 0,2
µsec.
La réception des caractères ne provoque pas d'interruption dans le
PIC.
Le programme doit exécuter toutes les instructions de la boucle
principale en moins de 250 µsec, soit en moins de 1250 instructions
assembleur.
La V3.x grâce à répartition des charges réalisée en partie à chaque
boucle, tient en moins de 900 instructions.
Pour de nouvelles évolutions, il reste donc du temps pour exécuter
350 instructions par boucle (A chaque fois que l'on passe dans
'it_timer').
Le programme
du PC a été revu pour améliorer la fiabilité de la liaison
PIC-PC. En cas de parasite, la liaison se
resynchronise automatiquement sans intervention.
En débranchant le câble et en le rebranchant en moins de 10
secondes, le logiciel gère complètement cette coupure sans
afficher de message d'erreur.
Au
bout de trois essais en erreur, un message d'erreur s'affiche
proposant une reprise ou un arrêt de la liaison, ce qui permet
de rebrancher
un câble ou de remettre le montage sous tension. Il faut parfois
réinitialiser cette liaison deux ou trois fois pour reprendre le
dialogue entre le PC et le PIC, mais pas besoin de quitter le
programme du PC.
La
trame envoyée par le PC commence toujours par 0x01, 0x11, 0x21 ou x31
(0x01 pour la carte n°1) + 0x08 et fini par un 0x00 pour
synchroniser la liaison si le PIC avait perdu un caractère.
En cas
d'erreur de liaison, le programme réémet immédiatement une
nouvelle trame depuis le PC.
Le pointeur 'FSR' est utilisé en interne par le PIC. Il permet de
pointer sur un registre interne. Voir la déclaration de ces
variables dans "873rs33.asm".
Par exemple si FSR = 0x20 et qu'on lit la valeur pointé par 'FSR',
on trouve "pwm_r0" = Valeur de la vitesse sur le canton 0 (= 0 à
63).
CARDADR EQU 0 est une variable définie dans le programme assembleur.
Au moment de la compilation du programme en ".hex", cette variable
donne le n° de la carte à PIC.
Échanges PC-PIC : Le PC à l'initiative et envoi un octet de
commande, suivi éventuellement d'octets de données :
0x00
Resynchronise la communication série avec le PC (Le PIC ne fait
rien). Utilisé aussi à la fin de l'envoi d'une trame de X octets,
pour compléter si nécessaire la trame.
si un octet a été perdu dans la transmission. En cas de coupure de
liaison, le PC réinitialise la liaison en envoyant 60 fois l'octet
0x00.
0x01
La carte à "PIC n° 1 = CARDADR EQU 0" répond 0x83 est devient
sélectionnée, les autres cartes sont désélectionnées.
0x11
La carte à "PIC n° 2 = CARDADR EQU 1" répond 0x83 est devient
sélectionnée, les autres cartes sont désélectionnées.
0x21 La
carte à "PIC n° 3 = CARDADR EQU 2" répond 0x83 est devient
sélectionnée, les autres cartes sont désélectionnées.
0x31 La
carte à "PIC n° 4 = CARDADR EQU 3" répond 0x83 est devient
sélectionnée, les autres cartes sont désélectionnées.
0x02 + 0xZZ Met à jour le pointeur d'adresse 'FSR' de
la carte à PIC sélectionnée avec la valeur 0xZZ.
0x03 + 0xZZ Ecrit la valeur 0xZZ dans le registre
mémoire pointé par [FSR] de la carte à PIC sélectionnée. Ne touche
pas au registre "FSR".
0x04
La carte à PIC sélectionnée retourne 0xZZ lu dans le registre
mémoire pointé par [FSR]. Ne touche pas au registre "FSR".
0x05 + 0xZZ Incrémente le pointeur 'FSR' et écrit la
valeur 0xZZ dans le registre mémoire pointé par [FSR] de la carte à
PIC sélectionnée.
0x06
Incrémente le pointeur 'FSR' et retourne 0xZZ lu dans le registre
mémoire pointé par [FSR] de la carte à PIC sélectionnée.
0x07
Incrémente le pointeur 'FSR' et retourne 0xZZ lu dans le registre
mémoire pointé par [FSR] de la carte à PIC sélectionnée, puis efface
dans le PIC le registre mémoire pointé par [FSR].
0x08
Transfère
d'une trame complète (Écriture + Lecture simultanée) entre le PC et
la carte à PIC sélectionnée.
Les octets de commande 0x02 à 0x07 sont envoyés par UTS depuis la
page "Debug > Commande directe de la carte rs232" du programme
UTS, quand on modifie un registre du PIC.
Cela permet de lire ou d'écrire dans un registre mémoire du PIC.
Pour plus d'information, voir la table "ADRESSES DES
VARIABLES" dans le programme assembleur ".asm".
En fonctionnement habituel, UTS n'envoie pas les commandes 0x02 à
0x07.
Pour plus d'information, voir le sous-programme "SSPG_TOUJOURS" dans
le programme assembleur.
Le diagramme de transfert de trame en V3.x est
le suivant :
Dans le
cadre d'un échange de trames complètes, le PIC renvoi un caractère tous les deux caractères reçus.
Émission
de 55 octets et réception de 25 octets simultanément.
Tableau d'échange temporel d'une trame complète (exemple pour la
carte n° 1) :
Nb
d'octet
émis
|
TX
|
RX
|
Nb
d'octet
reçus
|
1
|
0x01
|
|
|
|
|
83
|
1
|
1
|
0x08
|
|
|
2
|
0x24
|
|
|
3
|
0x52
|
|
|
|
|
F2
|
1
|
4
|
0x14
|
|
|
5
|
0x06
|
|
|
|
|
AC
|
2
|
6
|
0x79
|
|
|
7
|
0xA2
|
|
|
|
|
7E
|
3
|
8
|
0xBC
|
|
|
9
|
0x8F
|
|
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
45
|
0x10
|
|
|
46
|
0x8E
|
|
|
|
|
0
|
24
|
47
|
0x79
|
|
|
48
|
0x28
|
|
|
|
|
0
|
25
|
55
|
0x00
|
|
|
Voici la trame complète de 55 octets envoyée du PC au PIC :
1 0x01
; Octet de sélection de la carte (0x01 pour la carte n°1, 0x11 pour la carte n°2, 0x21 pour la carte n°3, 0x31 pour la carte n°4)
2 0x08 ;
Octet de commande d'échange de trame complète entre le PC et
le PIC
3 pwm_r0 ; Valeur de la
vitesse sur le canton 0 (= 0 à 63)
4 pwm_r1
; // 1
5 pwm_r2
; // 2
6 pwm_r3
; // 3
7 pwm_r4
; // 4
8 pwm_r5
; // 5
9 pwm_r6
; // 6
10 pwm_r7
; // 7
11 pwm_r8
; // 8
12 pwm_r9
; // 9
13 pwm_r10
; // 10
14 pwm_r11
; // 11
15 pwm_r12 ;
// 12
16 pwm_r13 ;
// 13
17 pwm_r14 ;
// 14
18 pwm_r15 ;
// 15
19 pwm_s0_7 ; Valeur sens de
déplacement 1 bit par canton n° 0 à 7
20 pwm_s8_15 ; Valeur sens de déplacement 1
bit par canton n° 8 à 15
21 out_out3 ; Valeur des bits des
sorties 1 à 7 (IC14-ULN2008 [1])
22 out_out4 ;
//
8 à 15 (IC15-ULN2008 [1])
23 out_out5 ;
//
16 à 23 (IC16-ULN2008 [1]) (Les sorties 24 à 39
sont reportées vers les leds)
24 out_out21 ; Valeur des bits des
sorties 40 à 47 (ULN2008 [2])
25 out_out22 ;
//
48 à 55 (ULN2008 [2])
26 out_out23 ;
//
56 à 63 (ULN2008 [2])
27 out_out24 ;
//
64 à 71 (ULN2008 [2])
28 out_out25 ;
//
72 à 79 (ULN2008 [2])
29 led_on0 ; Leds 00-07 allumées
(1bit = une led)
30 led_on1 ; Leds 12-19 allumées
( bit = 1 = on )
31 led_on01 ; Leds 08-11 et 20-23
allumées
32 led_on2 ; Leds 24-31 allumées
33 led_on3 ; Leds 36-43 allumées
34 led_on23 ; Leds 32-35 et 43-47
allumées
35 led_cl0 ; Leds 00-07 clignotantes
(1bit = une led)
36 led_cl1 ; Leds 12-19 clignotantes
( bit = 1 = cli)
37 led_cl01 ; Leds 08-11 et 20-23
clignotantes
38 led_cl2 ; Leds 24-31 clignotantes
39 led_cl3 ; Leds 36-43 clignotantes
40 led_cl23 ; Leds 32-35 et 43-47
clignotantes
41 led_in0 ; Leds 00-07 clignotant
inversé (1bit = une led)
42 led_in1 ; Leds 12-19 clignotant
inversé ( bit = 1 = inv)
43 led_in01 ; Leds 08-11 et 20-23
clignotant inversé
44 led_in2 ; Leds 24-31 clignotant
inversé
45 led_in3 ; Leds 36-43
clignotant inversé
46 led_in23 ; Leds 32-35 et 43-47
clignotant inversé
47 srv_0 ; Valeur de
consigne du servo n° 0
48 srv_1 ; Valeur de
consigne du servo n° 1
49 srv_2 ; Valeur de
consigne du servo n° 2
50 srv_3 ; Valeur de
consigne du servo n° 3
51 srv_4 ; Valeur de
consigne du servo n° 4
52 ruf1 ;
LIBRE réservé utilisation future
53 ruf2 ;
LIBRE réservé utilisation future
54 ruf3 ;
LIBRE réservé utilisation future. Pour le PIC c'est le dernier
octet de la
trame. Le prochain octet 0x00 est traité comme une
commande "Nulle".
55 0x00 ; Octet de
fin pour resynchroniser la prochaine trame si nécessaire (Si
perte d'un octet pendant le transfert).
Le dernier octet 0x00 n'est pas traité par le PIC. Il est traité
comme un octet de commande 0x00 et le PIC l'ignore.
Cela sert si l'on perd un octet pendant le transfert (53 octets reçu
au lieu de 54). Le PIC reçoit l'octet 0x00 comme dernier octet
d'échange. La trame est bien sûr erronée, mais le PIC a bien fini le
transfert d'une trame complète et
repasse en attente d'un octet de commande. Le prochain octet reçu
sera donc bien traité comme un octet de commande.
En retour le PIC renvoi une trame de 25 octets vers le PC.
1
0x83 ; Octet de
réponse à la réception de l'octet 0x01, 0x11, 0x21 ou 0x31
2 can_r0 ;
Valeur lue sur l'entrée analogique (0) ( = 0 à 255 )
3 can_r1
;
//
(1)
4 can_r2
;
//
(2)
5 can_r3
; //
(3)
6 can_r4
;
//
(4)
7 in_in1 ;
Valeurs des bits des 40 entrées (75HCT165 [2]) V3
8 in_in2
; //
9 in_in3
; //
10 in_in4
; //
11 in_in5
; //
12 det_i1 ; Un
bit par canton, = 1 si le canton est occupé
13 det_i2
; //
14 ruf11 ; LIBRE réservé
utilisation future
15 det_i1m ; Un bit
par canton, le passage à l'état 1 est mémorisé
16 det_i2m ; Tous ces
Octets sont effacés par la lecture de ces registres.
17 mat_in0 ; 4bits
d'entrées colonne INA + ligne IN3 à IN0 + 4 bits mémorisation
des
18 mat_in1
; // INB + ligne IN3 à
IN0
états, effacés par
19 mat_in2
; // INC + ligne IN3 à
IN0
la lecture de ces
20 mat_in3
; // IND + ligne IN3 à
IN0
registres.
21 mat_in4
; // INE + ligne IN3 à IN0
22 mat_in5
; // INF + ligne IN3 à IN0
23 mat_in6
; // ING + ligne IN3 à IN0
24 mat_in7
; // INH + ligne IN3 à IN0
25 mat_in8
; // INI + ligne IN3 à IN0
Si UTS est connecté à deux cartes à PIC, il dialogue avec la
première puis avec la deuxième. Il est possible d'utiliser 4 cartes
à PIC avec UTS.
Le programme
sur PC fait une pause de 80 msec après avoir envoyé et reçu les
trames avec tous les PIC.
Le programme du
PIC a été modifié en fonction de l'utilisation des pattes de
sorties. Les pattes de sorties ont maintenant plusieurs fonctions
en V3.
Le diagramme suivant permet de comprendre les séquences traitées
en parallèle dans le PIC :
Lien
sur l'image taille réelle : 09_uts_fonctionnement_prg_du_pic
Les menus d'UTS
Les menus
ont été améliorés. Dans la fenêtre d'édition, une aide s'affiche
quand on sélectionne une des cases de bloc de TCO utilisables.
Il est
possible d'afficher les fenêtres d'édition en appuyant sur la
touche '+'. En appuyant 7 fois sur '+' les fenêtres ouvertes
disparaissent.
En appuyant
sur la touche 'Esc', la fenêtre recouvrant le TCO se ferme pour
revenir au TCO.
La palette
de couleur dans les fenêtres d'édition ne sont pas désignables et
ne servent que d'information.
Il est
possible de visualiser l'état des variables 'var_xxx'.
Les servos :
Si le
programme envoi à la carte, dans la trame RS232, une
consigne entre 0 et 255, en interne au programme, la consigne est
située entre 0 et 1023.
Les servos
se commande dans la partie '#tdv' à partir des variables :
srv_cmd_xxx
= consigne de position du servo de 0 à 1023.
(xxx = numéro de variable de 000 à 004, 100 à 104...).
srv_cmd_xxx+10
=
pas de déplacement du servo de 0 à 1023 à chaque tic (80
ms).(xxx = numéro de variable de 005 à 009, 105 à 109...).
Une explication plus complète se trouve sur la
page consacrée au logiciel.
Nouvelles commandes pour
les variables.
Pour
commander les servo, les nouvelles commandes dans le fichier
'config.txt' sont :
'=val',
Dans
une équation 'equ:' si le test est ok '=val <var> valeur'
alors <var>=valeur.
Exemple :
equ: l in_23 =val var_45 789 (met 789 dans la variable n°45 si
l'entrée n°23 = 1).
'=var',
Dans
une équation 'equ:' si le test est ok '=var <var>
<var2>' alors <var>=contenu de <var2>.
Exemple :
equ: l in_23 =var var_45 var_46 (copie la valeur de la
variable n°46 dans la variable n°45 si l'entrée n°23 = 1).
'=varx4',
Dans
une équation 'equ:' si le test est ok '=varx4 <var>
<var2>' alors <var>= 4 fois le contenu de
<var2>.
Exemple :
equ: l in_23 =varx4 var_45 can_0 (copie la valeur de
l'entrée can_0 multiplié par 4 dans la variable n°45 si l'entrée
n°23 = 1).
Cela sert à commander un servo-moteur(0-1023) par une entrée
CAN(0-255).
Les
variables peuvent être positives ou négatives. Leurs contenu doit
être compris entre -25000 et +25000.
Les points
Sur les TCO,
les points qui sont ajoutés automatiquement sur la voie entre deux
cantons de numéros différents sont sur tous les éléments de voie.
Les éléments de voies.
Sur les TCO,
des éléments de voies verticaux ont été ajoutés.
Adaptations matérielles
pour passer de V2 en V3
Sur la carte
principale, les pistes marquées d'une croix rouge sont déjà coupées sur le
typon.
La
résistance de rappel sur RB3, et les transistors et tous les
autres éléments du circuit de détection sont déjà supprimés sur le
CI en V3.
Il faut
relier les connecteurs supplémentaires par des fils volants comme
indiqué sur ce schéma vu du dessous.
Les deux
broches centrales des connecteurs sont reliées au +5 volts. Les
quatre broches autour de ce +5 volts sont reliées à la masse,
ce qui permet de limiter la casse si l'on se trompe de sens pour
insérer le connecteur.
Lien sur
l'image taille réelle : 06_uts_sch_ci1_carte_mere_v2_vers_v3_dessous
et sur la photo : 42_uts_photos_v3.jpg
Ces
modifications de câblage sont obligatoires pour que le programme
du PIC fonctionne.
La présence
de nouveaux circuits 74HCT00 (ou 74HC00) ne permet
pas de construire une carte simple face pour tout loger. Certains
circuits intégrés devront être
placés à cheval sur d'autres pour disposer de sorties normales et
inversées pour attaquer les L293D.
Sinon , il
faut réaliser une version avec composants cms et circuit imprimé
double face.
Il faut
poser un 74HCT00 sur chaque 74HC4094 et souder les pattes en noir
entre les deux circuits intégrés. Ensuite, on insère les circuits
IC
sur leurs supports. (voir photos)
On relie les
sorties de ces 74HCT00 vers les L293D.
Pour pouvoir
dissiper les calories, les L293D doivent être directement soudés
sur le circuit imprimé, et non pas installés sur des supports.
Description des liaisons à réaliser en fils volants bleus:
Lien sur
l'image taille réelle : 16_uts_modif_cablage_01
et sur les photos : 60_uts-photos.jpg
et 41_uts_photos_v3.jpg
En sortie
des L293D, sous le circuit imprimé, il faut souder une résistance
de 3,9kOhms CMS (taille 1206) entre une sortie et l'alimentation
positive
des voies (donc une piste de sortie sur deux) (voir photos ici et ici). Ces résistances
sont repérées Rx dans la liste des composants.
La
numérotation des sorties vers les cantons a changé en V3. La
numérotation présentée ci-dessus correspond au programme du PIC en
V3.
Souder les autres sorties vers la cartes d'extension pour la
détection des convois.
Evolutions
possibles pour le HO
Pour alimenter des trains consommant plus de
600 mA, il faudrait remplacer les L293D par des L298 pour passer à
2A.
Les L293D et L298 sont compatibles au niveau logique et
fonctionnement.
Le plus simple est de câbler la carte à PIC complètement avec les
74HCT00 à califourchon, en soudant les résistances pour la détection
des convois,
et les connecteurs de sortie, mais sans installer les L293D (Percer
quand même les trous).
A coté du circuit principal, placer un circuit imprimé recevant les
8 x L298, sans oublier les diodes de protection externes et les
condensateurs de découplage.
Il faut ensuite passer des fils entre :
la patte n° 1 du L293D = 'Enable12' vers la patte n° 6
du L298 = 'Enable12'.
la patte n° 2 du L293D = 'Entrée1' vers la patte n° 5 du
L298 = 'Entrée1'.
la patte n° 3 du L293D = 'Sortie1' vers la patte
n° 2 du L298 = 'Sortie1'.
la patte n° 4 du L293D = 'Masse' vers la patte
n° 8 du L298 = 'Masse'.
la patte n° 5 du L293D = 'Masse' vers la patte
n° 8 du L298 = 'Masse'.
la patte n° 6 du L293D = 'Sortie2' vers la patte
n° 3 du L298 = 'Sortie2'.
la patte n° 7 du L293D = 'Entrée2' vers la patte n° 7 du
L298 = 'Entrée2'.
la patte n° 8 du L293D = 'VCC2=+15V' vers la patte n° 4
du L298 = 'VCC2=+15V'.
la patte n° 9 du L293D = 'Enable34' vers la patte n° 11
du L298 = 'Enable34'.
la patte n° 10 du L293D = 'Entrée3' vers la patte n° 10
du L298 = 'Entrée3'.
la patte n° 11 du L293D = 'Sortie3' vers la patte
n° 13 du L298 = 'Sortie3'.
la patte n° 12 du L293D = 'Masse' vers la patte
n° 8 du L298 = 'Masse'.
la patte n° 13 du L293D = 'Masse' vers la patte
n° 8 du L298 = 'Masse'.
la patte n° 14 du L293D = 'Sortie4' vers la patte
n° 14 du L298 = 'Sortie4'.
la patte n° 15 du L293D = 'Entrée4' vers la patte n° 12
du L298 = 'Entrée4'.
la patte n° 16 du L293D = 'VCC1=+5V' vers la patte n° 9
du L298 = 'VCC1=+5V'.
Relier ensemble les pattes n° 1, 8 et 15 du L298 =
'Masse'.
On peut réaliser un circuit imprimé avec des connecteurs pour
faciliter la connexion.
Sinon on peut essayer de placer un L293B sur un L293D à la place
d'un seul L293D.
Il faudrait voir si en soudant toutes les pattes entre elles, on
peut dépasser 1,5 A en sortie.
Prendre des L293B car ils supportent 1A en sortie. Ils sont
dépourvus de diodes de protections
mais celle du L293D protégerons les deux circuits.
Il existe des circuits plus modernes genre 'FAN3227', mais ils sont
difficile à trouver.
La carte
d'extension
Il faut
choisir le type d'entrées numérique pour câbler les résistances.
Les résistances en réseaux sont difficiles à trouver et peuvent
être remplacées par des résistances classiques 1/4 watt.
Pour
utiliser la carte servo, il faut câbler sous cette carte, un fil entre le bornier 'D.out'
et la sortie 'Do' de IC4 (patte n°10) pour envoyer vers la carte
'Servo' les données du PIC.
Voir
la photo : 44_uts_photos_v3.jpg
et ici
J'ai corrigé la mauvaise implantation du 74HCT04 cms sur le typon
actuel.
La carte des servos
Pour
utiliser la carte servo, il faut câbler sous la carte d'extension,
un fil entre le bornier 'D.out' et la sortie 'Do' de IC4 (patte
n°10) pour envoyer vers la carte 'Servo' les données du PIC.
Cette carte
est optionnelle.
La connexion
des deux cartes est indiqué sur le schéma : "06 - UTS - sch -
Interconnexion des 2 cartes UTS - V3.png".
Il faut
aussi relier le connecteur de détection d'occupation des cantons,
par un câble plat à la carte principale. Attention au sens de
connexion.
Lien
sur l'image taille réelle : 01_uts_sch_interconnexion_des_modules_uts_1_v3
Lien
sur l'image taille réelle : 02_uts_sch_interconnexion_des_modules_uts_2_v3
Explications sur la mise
en route de la commande des aiguillages
La carte de commande d'aiguillages :
Voir la
construction sur la page matérielle V2.
La numérotation des aiguillages commence à 0.
Après
essais, j'ai retenu un condensateur C1 de 680 µF 35 volts, chargé à 24 volts. Le temps de
charge est de 80 msec
sous 0,15 Amp T = C*(DeltaV / I )
DeltaV = 24 Volts I + courant de charge en ampère, C =
Capacité en Farad.
Avec 12
volts, même un condensateur C1 de 4700 µF ne permet pas
d'actionner ces aiguillages à coup sûr. Les aiguillages PECO sont
peu sensibles et très gourmands en courant.
La tension
d'alimentation (partie aiguillages) de la carte de commande des
aiguillages sur le circuit imprimé doit être de 24 volts.
Avec 470µF
et 24 Volts d'alimentation cela fonctionne très bien. En cas de
problème, on peut passer C1 à 1000 ou 2200µF, mais dans ce cas la
commande est plus bruyante.
Pour
alimenter cette carte, il faut une alimentation qui puisse débiter
au moins 0,7 Amp sous 24 volts si l'on place un 2200µF.
La configuration que
j'utilise commande le relais n° 6 en même
temps que les autres relais. Dans ce cas, pour s'assurer
que le
relais n° 6 ne commute pas avant les autres relais, on
doit ajouter un retard à l'activation de ce relais
(Quelque millisecondes).
Il
faut couper la piste du circuit imprimé vers le relais
n° 6 et ajouter une résistance de 24 Ohms en série, et
un condensateur
de 2,2µF en parallèle sur le relais n° 6, comme indiqué
ci-dessous.
<Broche
n°6> - -------[24 Ohms]-------+----[relais
n°6]----+-----<+12V>
|
|
+-----[- 2 µF +]-----+
On
obtient ainsi un décalage de 2 milliseconde pour le relais
R6, laissant le temps aux autres relais de se positionner.
Exemple de câblage avec des composants cms. La piste sous la
résistance de 24 ohms est coupée.
Extrait de config.txt :
#aig
[
default_tic:0,0,1,0,0,1
repos:out0=0 out1=0 out2=0 out4=0 out5=0
out6=0
position_depart:a1.1 a5.1 a14.1
aig0: prep0: out6=0 out0=1
out1=0 out4=1 out5=1 out2=0
go0: out6=1
prep1: out6=0 out0=1 out1=0 out4=1 out5=1
out2=1
go1: out6=1
aig1: prep0: out6=0 out0=1
out1=0 out4=1 out5=0 out2=1
go0: out6=1
prep1: out6=0 out0=1 out1=0 out4=1 out5=0
out2=0
go1: out6=1
aig2: prep0: out6=0 out0=1
out1=0 out4=0 out5=1 out2=0
go0: out6=1
prep1: out6=0 out0=1 out1=0 out4=0 out5=1
out2=1
go1: out6=1
A partir de touches ou d'un clavier branché sur les entrées
multiplexées, il est possible de commander les aiguillages.
Dans l'exemple ci-dessous, on utilise la touche [0] pour
l'aiguillage 0 en position droit et la touche [19] + la touche 0
pour l'aiguillage 0 en position dévié.
Dans config.txt , section #tdv, ajouter
equ: l in_0 an in_19 a pos0_aig_0 =set aig_cmd_0
equ: l in_0 a in_19 a
pos1_aig_0 =clr aig_cmd_0
Pour une
utilisation d'UTS avec plusieurs cartes à PIC
Si l'on désire relier plusieurs carte UTS à un PC, il faut toutes
les brancher sur la même
sortie série du PC, comme indiqué dans la notice d'Ulysse.
UTS cherche des cartes sur les ports de COM1 à COM6, mais ne sait
pas gérer des cartes sur plusieurs ports à la fois.
J'ai testé avec succès un convertisseur USB-RS232. L'utilisation
avec UTS est compatible avec ce type de convertisseur.
L'échange de trame est aussi rapide qu'avec une liaison série
ordinaire.
1 - Pour réaliser soit-même un câble PC vers carte UTS (Cote carte
et coté PC), sur la prise série DB9 FEMELLE coté PC,
il faut relier les broches n° 1, n° 4
et n° 6 ensemble et les broches n° 7 et n° 8 ensemble :
Broches 3 et 4 de CN01
(out) ---------> DB9 FEMELLE (2) PC RX
Broches 1 et 2 de CN01 (in)
<--------- DB9 FEMELLE (3) PC TX
Broches 5 et 6 de CN01 (masse) --------- DB9
FEMELLE (5) PC MASSE
+--- DB9 FEMELLE (1) PC
+--- DB9 FEMELLE (4) PC
+--- DB9 FEMELLE (6) PC
+--- DB9 FEMELLE (7) PC
+--- DB9 FEMELLE (8) PC
2 - Pour relier 2 cartes UTS à un PC, il faut réaliser les deux
câbles PC-carte UTS ci-dessus et un adaptateur court (moins de 50
cm) à 3 prises BD9 ci-dessous.
Réaliser un adaptateur à 3 prises DB9 (1
Femelle + 2 Mâles) avec des diodes BAT84 (Plus rapide que des
1N4148).
Réaliser un adaptateur court, de
moins de 50cm, pour éviter des problèmes de réception.
Sur la prise série FEMELLE coté PC,
il faut relier les broches n° 1, n° 4 et n° 6 ensemble et les
broches n° 7 et n° 8 ensemble.
BD9 MALE vers Carte n°1
(2) ----|>|----+------> DB9 FEMELLE (2) PC RX
BAT84 |
BD9 MALE vers Carte n°2 (2) ----|>|----+
BAT84
BD9 MALE vers Carte n°1 (3) <----------+-------
DB9 FEMELLE (3) PC TX
|
BD9 MALE vers Carte n°2 (3) <----------+
BD9 MALE vers Carte n°1 (5) -----------+------- DB9
FEMELLE (5) PC MASSE
|
BD9 MALE vers Carte n°2 (5) -----------+
+--- DB9 FEMELLE (1) PC
+--- DB9 FEMELLE (4) PC
+--- DB9 FEMELLE (6) PC
+--- DB9 FEMELLE (7) PC
+--- DB9 FEMELLE (8) PC
Utilisation d'UTS avec un mini
module USB
Si l'on est sûr de relier la carte
UTS qu'avec un PC avec une prise usb, il est possible d'acheter ce
type de mini carte usb sans installer le circuit MAX232.
Ce mini module USB fonctionne parfaitement pour UTS, sous XP et
Windows7.
Pour WINDOWS 10, seul le circuit de type FTDI fonctionne.
Les broches +5 volts et +3,3 volts ne doivent pas être connectées.
Elles servent à alimenter un montage externe à partir du PC, mais
sous 500 mA max.
Si l'on débranche le câble usb, il faut relancer UTS pour retrouver
une connexion. Les coupures sur la liaison série sont elles gérées
par UTS.
Il ne faudrait pas pas un câble série blindé de plus de 5 mètres de
long (coté RX/TR), car les signaux ne sont pas des signaux RS232,
mais 0-5 volts.
Il faut uniquement relier 3 fils du module USB à la carte UTS (RX,
TX et masse). Ne pas installer le MAX232, car les signaux restent en
0 +5 volts.
Relier les fils RX et TX du module USB aux pattes RX et TX (patte 10
et 9 sur le support du MAX232) et le fil de masse.
USB (RX) ----> Support MAX 232
vide, patte n° 10 (Vers le PIC)
USB (TX) <---- Support MAX 232 vide,
patte n° 9 (Depuis le PIC)
USB (GDN) ------ Support MAX 232 vide, patte n° 15
(Masse)
Pour deux cartes UTS, il faut un seul module USB avec un montage à
diodes coté RX.
Placer les diodes dans l'autre sens (anneau vers la carte à PIC) et
une résistance de 10 Kohms entre USB(RX) et le +5volts.
(10) = n° patte du support du MAX232 qui n'est pas installé sur son
support.
+-/\/\/\-- 5Volts
PIC Carte n°1 (10) ----|<|----++-------->
USB(RX)
BAT84 |
PIC Carte n°2 (10) ----|<|----+
BAT84
PIC Carte n°1 (9) <----------+----------
USB(TX)
|
PIC Carte n°2 (9) <----------+
PIC Carte n°1 (15) -----------+----------
USB(MASSE)
|
PIC Carte n°2 (15) -----------+