PICOSD
Programme de configuration pour
l'incrustateur ATV conçu par F1CJN

par Pierre COL, F8EGQ

Aller au chapitre [Présentation] 1°)

Présentation

Aller au chapitre [Étude du schéma électrique] 2°)

Étude du schéma électrique

 

2-1) Le LM1881

 

2-2) La bascule RS et l'horloge

 

2-3) Le comportement du PIC

 

2-4) Modifications du schéma

Aller au chapitre [Réalisation du montage] 3°)

Réalisation du montage

 

3-1) Réalisation du typon

 

3-2) Réalisation du circuit imprimé

 

3-3) Liste des composants

 

3-4) Implantation des composants

 

3-5) Vérification du montage

Aller au chapitre [Le programme PICOSD] 4°)

Le programme PICOSD

 

 
Retour au sommaire 1°) - Présentation
 


L'ATV, la télévision amateur :

Parmi les différents modes de transmission utilisés par les radioamateurs, l'ATV tient une place importante ; elle ouvre un vaste champ d'expérimentations : construction ou modifications de matériels existants, en émission ou en réception (tuners, démodulateurs satellites, préamplis, amplis de puissance, antennes, platines de pilotages à microcontrôleurs, etc.) ; de plus, la bande passante des signaux 'vidéo' nécessite l'utilisation de gammes de fréquences très élevées (UHF et au-delà), ainsi que de matériels assez spécifiques : modulateurs, démodulateurs pour la vidéo et les sous-porteuses, mires, incrustateurs, etc.

L'incrustateur vidéo :

Un système d'incrustation vidéo est un dispositif qui permet de superposer un texte (ou un logo) prédéfini sur une image vidéo ; on le désigne parfois également par son acronyme anglo-saxon "OSD" (On Screen Display = Affichage sur l'écran). La réglementation nous impose de transmettre à intervalles rapprochés notre indicatif radioamateur ; il est bien sûr possible de le passer en phonie, ou de basculer sur une mire contenant l'indicatif, mais l'utilisation d'un incrustateur constitue, me semble-t-il, la solution la plus élégante. On peut alors en profiter pour diffuser des informations supplémentaires : locator, fréquence, etc. Haut de page (retour)
Grâce à un petit montage assez génial, conçu par Alain FORT, F1CJN, la réalisation d'un incrustateur vidéo simple est maintenant accessible à tous. Celui-ci est basé sur l'utilisation d'un PIC16F84.

But de cette page :

Comme je viens de le signaler, je ne suis pas l'auteur de ce montage, et le mérite en revient entièrement à Alain F1CJN. Je me suis simplement fixé pour tâche de tenter de reprendre et d'améliorer si possible le fichier source d'origine du PIC, et surtout de lui adjoindre un programme destiné à configurer aisément les messages à afficher, depuis un PC fonctionnant sous Windows ; ce programme s'appelle PICOSD.

Très concrètement, il suffira pour l'OM de lancer PICOSD, de modifier les messages dans les zones de saisie, de choisir la hauteur des lettres, la vitesse de défilement du message défilant, et, dans une certaine mesure, la position du texte sur l'écran, puis le programme va générer automatiquement les fichiers PICOSD.ASM (le fichier source) et PICOSD.HEX (le fichier hexa à programmer dans le PIC), qui correspondent à ces paramètres. Une fois le PIC programmé et réinséré sur l'incrustateur, la nouvelle configuration est immédiatement fonctionnelle : Haut de page (retour)

Cycle de modification des paramètres
Haut de page (retour)

L'internaute intéressé trouvera donc sur cette page, d'une part toutes les infos pour une réalisation détaillée du montage, et d'autre part le programme PICOSD qui permet de modifier facilement les différents messages à afficher.

Le schéma et le programme du PIC fournis par Alain, qui ont servi de point de départ à la réalisation de cette page, sont disponibles à la rubrique Téléchargement du site Internet de l'ANTA, l'Association Nationale pour la Télévision Amateur (archive Picosd.zip, 21 ko). Cette archive est aussi stockée en local sur mon site, ici.


 

 
Retour au sommaire 2°) - Étude du schéma électrique :
 


Schéma électrique d'origine.

Haut de page (retour)
Le schéma ci-dessus correspond à celui fourni par F1CJN ; il se décompose en trois blocs fonctionnels axés autour des composants suivants :

  Haut de page (retour) 2-1) - Le LM1881 :

À partir du signal vidéo fourni sur la broche 2 (via un condensateur de liaison), il va extraire les tops de 'synchro ligne' (sortie broche 1), et de 'synchro trame' (sortie broche 3), comme indiqué ci-dessous :

Chronogramme des signaux du LM1881.

Cliquez sur l'icone pour télécharger la documentation PDF du LM1881. : Documentation PDF du LM1881 (173 ko) Haut de page (retour)

NB : la documentation étant américaine, les durées indiquées correspondent à une fréquence du secteur (ou de trame) de 60 Hz, pour des images de 525 lignes, soit une fréquence ligne de (60/2) x 525 = 15750 Hz. Une ligne dure alors : 1/15750 = 63,5 µs, contre 64 µs chez nous, notre vieille Europe ayant adopté F(trame) = 50 Hz, F(ligne) = 15625 Hz pour 625 lignes par image. L'ordre de grandeur ne change pas ; retenons simplement qu'un top de synchro trame dure environ 230 µs, et un top de synchro ligne un peu moins de 5 µs (sauf au moment du changement de trame). Les tops sont actifs sur un niveau logique "0".


  Haut de page (retour) 2-2) - La bascule RS et le blocage de l'horloge :

La bascule est constituée de deux portes NAND combinées selon un montage classique : chaque sortie est rebouclée sur l'entrée de la porte opposée ; les états des sorties dépendront donc non seulement des états des entrées à un instant donné, mais également de l'état des sorties à l'instant précédant le basculement des entrées (logique 'séquentielle', par opposition à la logique 'combinatoire'). La table de vérité de la porte NAND est rappelée pour mémoire. Haut de page (retour)

Regardons ensemble le fonctionnement bascule RS :

Bascule RS / table de vérité de la porte NAND.

Étape 1 Supposons R=0 et S=1. R=0 implique Q2=1. S=1 et Q2=1 impliquent Q1=0. Le système est stable.
Étape 2 R passe à 1 : Q1 vaut 0, donc Q2 reste à 1. S et Q2 sont à 1, donc Q1 reste stable à 0.
Étape 3 S passe à 0 : Q1 bascule à 1. R et Q1 étant à 1, Q2 bascule à 0. Q2 valant 0, Q1 reste stable à 1.
Étape 4 S repasse à 1 : Q2 valant 0, Q1 reste à 1. Q1 et R étant à 1, Q2 reste stable à 0.
Étape 5 Dernier cas de figure susceptible de se produire : si l'on force R et S à 0 simultanément, les deux portes ayant chacune une entrée à 0, les deux sorties Q1 et Q2 sont forcées à 1 et restent dans cet état stable tant que R et S demeurent à 0.
Haut de page (retour)

Lorsque la sortie Q1 est à 1, le potentiel de la cathode de la diode est proche de 5v, et donc supérieur ou égal à celui de l'anode ; la diode est bloquée, et l'horloge du PIC peut osciller librement.

Quand Q1 passe à 0, la diode est passante (polarisée par R), et le potentiel de l'entrée OSC1 du PIC est fixé à environ 0,7v bloquant l'oscillation et donc le fonctionnement de l'horloge : le PIC se met en attente, plus aucune instruction n'est exécutée.


Tentons de résumer simplement le fonctionnement :

- Si R est à 1, et que S passe à 0, même de manière fugace (survenue d'un top de synchro ligne), Q1 bascule à 1 (ou reste à 1 si elle y était déjà) ; l'horloge est active ; le PIC est en mode 'travail'.
- Si S est à 1, et que R passe même brièvement à 0, Q1 bascule à 0 (ou reste à 0 si elle y était déjà) ; l'horloge est bloquée. Le PIC est au repos : en fait, c'est lui-même qui passe en mode 'repos' en mettant sa sortie A3 à 1.
- Si S et R sont simultanément à 1, la bascule reste stable, et l'horloge conserve son état précédent (active ou bloquée) ; celui-ci dépend donc de l'état précédent de S et R.
- Si S et R se retrouvent simultanément à 0, Q1 est à 1, donc l'horloge est active. Haut de page (retour)
NB : la bascule RS se caractérise toujours par un état stable, en fonction du dernier ordre R ou S reçu, R et S étant actif sur un niveau 0. Les notations R et S correspondent respectivement à Reset (= mise à 0 de la sortie Q1) et Set (= mise à 1 de la sortie Q1).

Lorsque les entrées R et S de la bascule RS sont à 1, l'état de la sortie Q1 (et donc le fonctionnement de l'horloge du PIC) ne dépend que des états précédents de R et S :
- Si R est le dernier à avoir été à 0, la sortie Q1 est à 0 et l'horloge est bloquée.
- Si S est le dernier à avoir été à 0, la sortie Q1 est à 1 et l'horloge est active.
- Si R et S valaient 1 à la mise sous tension, Q1 est indéterminé, et on ne peut pas prédire si l'horloge du PIC est active tant qu'il n'y a pas de changement sur R ou S ; même remarque si R et S passent simultanément de 0 à 1. Mais dans ce montage, la survenue régulière du top de synchro ligne garantit contre tout blocage du système dû à une incertitude de l'état initial.


  Haut de page (retour) 2-3) - Le comportement du PIC :

Cette partie est assez complexe, et je renvoie l'internaute intéressé consulter le fichier source ASM du programme du PIC, également généré par PICOSD, et étayé de nombreux commentaires. Les quelques lignes qui suivent ont pour but de résumer (?) les choses en essayant d'aller à l'essentiel.

2-3-1) Organisation de la mémoire du PIC :

Le PIC16F84 peut emmagasiner jusqu'à 1024 instructions, l'espace mémoire s'étend donc de l'adresse $000 à l'adresse $3FF (soit 0 à 1023, mais en notation hexadécimale). En se basant sur son contenu, on peut diviser celui-ci en trois zones :

2-3-1-a) - Zone 1 ($005 à $0FB), les tables de définition des caractères :

Chaque lettre doit être définie sous la forme d'un tableau de 7 rangées et 5 colonnes, pour indiquer les pixels qui seront allumés et ceux qui seront éteints. Concrètement, cela revient à définir une table de 7 octets, un par rangée, sachant que seuls les 5 derniers bits B4 à B0 seront utilisés (les bits B5, B6 et B7 seront eux ignorés). Voici l'exemple pour la lettre [A] : Haut de page (retour)

Exemple de constitution de la lettre A.

Au niveau du programme en assembleur, cela se traduira par une table de 7 octets pour chacun des caractères susceptibles d'être utilisés :


  CarA    RETLW   B'00001110'     ; ....***.
          RETLW   B'00010001'     ; ...*...* 
          RETLW   B'00010001'     ; ...*...*
          RETLW   B'00011111'     ; ...*****
          RETLW   B'00010001'     ; ...*...*
          RETLW   B'00010001'     ; ...*...*
          RETLW   B'00010001'     ; ...*...*

Haut de page (retour)
"RETLW" est l'instruction servant à constituer une table. Lorsque le programme 'saute' vers une instruction RETLW, celle-ci le renvoie à son point de départ, mais en ayant au préalable chargé la constante associée (par exemple : B'00001110') dans le registre de travail W du PIC. Cela revient un peu à aller se servir dans le garde-manger.

"CarA" est le pointeur de la table du 'A' : l'adresse de la mémoire où commence la table de définition du A. Les valeurs des 7 octets sont indiquées en binaire (notation B'00001110') pour faciliter une éventuelle modification manuelle de la table.

Les 42 caractères ainsi définis sont :

- L'alphabet en majuscule : ABCDEFGHIJKLMNOPQRSTUVWXYZ.
- Les dix chiffres : Ø123456789.
- Quelques signes supplémentaires : l'apostrophe, l'espace, le point, la barre de fraction, le Z minuscule (pour MHz !), et une tête (dans PICOSD, utilisez le caractère étoile [*]).

NB : La table de définition devrait occuper 42 x 7 = 294 octets, mais la syntaxe de l'assembleur (instruction RETLW) impose aux tables de ne pas sortir d'un segment de 256 octets (par exemple dans notre cas, la zone d'adresse $000 à $0FF). Une petite astuce permet de réaliser cette condition, elle consiste à faire se chevaucher les zones de définition de certains caractères, par exemple le bas du A et le haut du H, le bas du H et le haut du U, etc. Bravo au concepteur du programme ! Haut de page (retour)

2-3-1-b) - Zone 2 ($0FC à $24A), la partie programme à proprement parler : elle regroupe l'ensemble des routines de séquencement des opérations (analyse des tops de synchro), de choix du message, et de la gestion de son affichage. Elles seront évoquées plus loin (dans la partie 2-3-2, détaillant l'organigramme de fonctionnement).

2-3-1-c) - Zone 3 ($300 à $3F8), la table des messages :

Elle est constituée de l'ensemble des messages, c'est à dire du message défilant (jusqu'à 160 caractères suivis et précédés de 11 espaces), et des 6 messages fixes de 11 caractères. Habituellement, les chaînes de texte inscrites dans un ordinateur ou un microcontrôleur représentent la succession des valeurs ASCII des différents caractères ; cette solution pourrait être utilisée par exemple pour piloter un module d'affichage LCD standard, mais ce n'est pas le cas ici : le code ASCII ne représente rien pour le PIC, ni pour le système destiné à exploiter le signal vidéo modifié (émetteur ATV, téléviseur ou moniteur vidéo).

En fait, nous avons vu (en 2-3-1-a) que chaque table de définition d'un caractère est associé à un pointeur ("CarA", dans l'exemple), auquel nous avons donné un nom évocateur (CarA, CarB, CarC, etc.), mais cette variable virtuelle ne représente simplement que l'adresse physique de début de la table du caractère correspondant, dans l'espace mémoire du PIC. Un message de N caractères sera donc tout simplement une table de N de ces fameux pointeurs. Voici par exemple pour le message n°1 : Haut de page (retour)


Mess1   RETLW   Car7  ; pointeur vers la table de définition du 7
        RETLW   Car3  ; pointeur vers la table du 3
        RETLW   SP    ; pointeur vers la table de l'espace
        RETLW   CarD  ; pointeur vers la table du D
        RETLW   CarE  ; etc...
        RETLW   SP    ;
        RETLW   CarF  ;
        RETLW   Car8  ;
        RETLW   CarE  ;
        RETLW   CarG  ;
        RETLW   CarQ  ;

Les restrictions évoquées au paragraphe 2-3-1-a s'appliquent également ; la nécessité de rester dans le segment $300 à $3FF limite donc le nombre de messages fixes, ainsi que la longueur maximale du message défilant.

Haut de page (retour)

2-3-2) Organigramme général :

Organigramme général du fonctionnement du PIC.

Haut de page (retour)

2-3-2-1) - Supposons l'horloge active. Le PIC surveille sur son entrée A2 le top de synchro trame ; il va décider d'attendre le début d'une nouvelle trame, et scrute pour cela la fin du top de synchro (front montant sur A2).

2-3-2-2) - Puis il va ensuite lire l'état des bits PB5/PB6/PB7 ; il s'agit des entrées permettant à l'utilisateur d'indiquer le choix du message en cours, soit par trois interrupteurs (DIL ou autres), ou bien par un commutateur 7 ou 8 positions associé à une matrice à diodes, comme nous le verrons plus loin. Choix de l'affichage :

Comm. PB7 PB6 PB5  Message sélectionné : 
K7 0 0 0 message défilant
K6 0 0 1 message n°1
K5 0 1 0 message n°2
K4 0 1 1 message n°3
K3 1 0 0 message n°4
K2 1 0 1 message n°5
K1 1 1 0 message n°6
I.Off 1 1 1 pas d'affichage

À l'origine, le programme donnait le choix entre un message défilant (jusqu'à 55 caractères) ou trois messages fixes de 11 caractères ; comme vous le constatez dans le tableau ci-dessus, le nombre de messages fixes a été porté à six ; le message défilant peut mesurer jusqu'à 160 caractères. Haut de page (retour)

2-3-2-3)  - Il va ensuite laisser passer un certain nombre de lignes, car l'affichage ne commence jamais tout en haut de l'écran. Pour cela, il va exécuter autant de fois que nécessaire le couple d'instructions suivant :

[mise à 1 de A3]    [mise à 0 de A3]

La mise à 1 de A3 (= R à 0) bloque le fonctionnement de l'horloge ; celle-ci ne redémarre que lorsque survient le top de synchro ligne (S mis à 0 par le LM1881), qui indique le début d'une nouvelle ligne. Il faut alors que la première action réalisée par le PIC soit de remettre à 0 la sortie A3, pour que l'horloge reste activée au-delà de la fin du top de synchro ligne. Le PIC patiente encore quelques µs pour être sûr que le top de synchro ligne est terminé. L'opération, réalisée N fois, permet de laisser passer N lignes, et ainsi d'obtenir le positionnement vertical voulu.

Remarque : Les N lignes de décalage dans la trame correspondent à (2 x N) lignes dans l'image, car une image est constituée de deux trames entrelacées.

2-3-2-4)  - La partie affichage du message :
Que le message soit fixe ou défilant, le programme va toujours afficher 11 caractères, en utilisant la routine "DISTXT".

  2-3-2-4-a)  La routine "DISTXT" :

Chacun des 11 caractères est composé de 7 rangées superposées, de 5 bits ; les bits à "1" seront affichés en blanc sur l'écran ; voici par exemple les trois caractères "EGQ" (on extrapolera facilement pour onze caractères) :

Haut de page (retour)

Constitution des lettres : 7 lignes x 5 colonnes.

Chacune des 7 rangées va être affichées T fois (T étant la hauteur des lettres, T allant de 1 à 10), et ce grâce à la routine "SHOWLINE" : rangée n°1 (des 11 caractères !), puis rangée 2, puis rangée 3, etc. jusqu'à la rangée n°7.

  2-3-2-4-b)  La routine "INCLINE" :

Juste avant l'affichage de la rangée N, le programme doit aller chercher les 11 octets correspondant à la N-ième position, dans les tables de définition des 11 caractères ; elles sont stockées en interne dans les variables Ta0 à Ta10 du programme ; ceci prend un certain temps (environ la durée d'une ligne-écran), ce qui explique l'apparition d'une ligne noire entre deux rangées successives, ce qui n'est pas très gênant au niveau de l'aspect des lettres. Haut de page (retour)

  2-3-2-4-c)  La routine "SHOWLINE" :

Les 11 variables "Ta0" à "Ta10" contiennent chacune les 5 bits constituant la rangée à afficher, pour chacun des 11 caractères. Voyons comment se déroule l'affichage des 5 pixels pour un caractère, par exemple le premier (bits contenus dans "Ta0") :

"Ta0" est une variable définie sur 8 bits (un octet), mais seuls les 5 bits de poids faibles sont significatifs et seront affichés, et ce, par ordre d'apparition : B4, B3, B2, B1, puis B0.

Le programme envoie le contenu de l'octet "Ta0" sur le port B, dont la sortie PB4 est reliée à l'entrée-sortie vidéo par une diode ; celle-ci permet de n'envoyer une information sur le signal vidéo que lorsque la sortie PB4 est à "1" ; l'ajustable 470 Ω sert à régler l'injection de courant de manière à ce que le niveau du signal vidéo atteigne, mais sans trop le dépasser, le niveau du blanc. On a donc un pixel blanc si le bit B4 est à 1. le programme va ensuite effectuer 4 fois un "décalage logique vers la gauche" du port B (instruction "RLF PortB"), ce qui signifie que les bits B3, puis B2, puis B1, puis enfin B0, vont être présents successivement sur la sortie PB4, et ainsi répercutés en temps voulu dans le signal vidéo, et donc sur l'écran du moniteur ; PB4 est ensuite remise à "0" pour éviter que le dernier des 5 pixels s'étire en longueur s'il était blanc (= si B0 valait 1). On procède de même pour les 10 caractères restants, avec les variables "Ta1" à "Ta10".
Haut de page (retour)
Quelques remarques :
- L'utilisation de l'instruction RLF peut sembler anodine, en fait elle est très astucieuse, car c'est la seule possibilité pour fixer une sortie du port B en un seul cycle machine, condition indispensable à un affichage assez rapide avec un PIC16F84-04. Le non-respect de cette condition entraînerait des lettres démesurément larges.
- Les broches PB5-PB6-PB7 sont configurées en entrées, elles ne sont donc pas influencées par l'instruction RLF.
- Les broches PB0-PB1-PB2-PB3, bien qu'apparemment non utilisées, doivent impérativement être laissées libres, et configurées en sorties, puisque c'est sur ces sorties que vont défiler les bits B3-B2-B1-B0 avant d'arriver sur PB4.


  Haut de page (retour) 2-4) - Modifications du schéma électrique :

Le schéma électrique présenté en haut de cette page est une reprise du schéma d'origine fourni avec la première version du programme par F1CJN ; le schéma final utilisé pour la réalisation du prototype est le suivant :

  Schéma électrique modifié.

Il comporte quelques modifications mineures : Haut de page (retour)


Remarque : le circuit existe en trois versions différentes. Haut de page (retour)
La première version correspond à la version d'origine, équipée d'un triple inter DIL, sans la résistance de 10k sur l'entrée RAZ du PIC (un prototype réalisé). La seconde conserve le triple inter DIL, mais inclut le circuit RC sur l'entrée du LM1881, ainsi que le circuit de RAZ amélioré (pas de proto réalisé, mais le dessin du circuit est disponible). La troisième version utilise la matrice de diodes et le commutateur, c'est celle donc la description vous sera proposée dans les lignes qui suivent. Quelle que soit la version que vous choisirez de construire, sachez qu'elle peut accueillir indifféremment la version d'origine du programme, ou celle modifiée par mes soins et générée par le programme PICOSD. Je vous recommande tout de même de réaliser la troisième version.


Version 1

(75 ko)

Version 2

(81 ko)

Version 3

(112 ko)


 

 
Retour au sommaire 3°) - Réalisation détaillée du montage (version 3) :
 


  3-1) - Réalisation du typon :

Le dessin du circuit imprimé a été créé grâce au logiciel ARES, de la suite PROTEUS 5.2 ; il est directement issu du schéma électrique présenté plus haut ; le voici vu côté composants en basse résolution (200 DPI) :

Circuit imprimé - version 3 en basse résolution

Haut de page (retour)
Circuit et implantation au format ARES 5.2
PICOSDV3.LYT
Circuit imprimé (en haute résolution)
OSDPCBv3.GIF
Dessin du circuit imprimé et implantation des composants au format Ares 5.2 (ZIP, 9 ko). Dessin du circuit imprimé au format GIF (55 ko), en haute définition (600 dpi).

Si vous disposez du logiciel ARES (de la suite PROTEUS), vous pourrez imprimer directement le typon à l'échelle 1 depuis le logiciel, en chargeant le fichier "PICOSDV3.LYT". C'est la méthode la plus simple.


Dans le cas contraire, vous devrez imprimer le fichier graphique "OSDPCBv3.GIF" en respectant impérativement les dimensions, pour obtenir un typon à l'échelle 1. Celui-ci est fourni avec une résolution de 600 DPI (600 points par pouce), et il mesure 2190 pixels x 1320 pixels, ses dimensions sont donc : Haut de page (retour)
- en pouces : 3.65 x 2.20
- en mm : 92.7 x 55.9
(Rappel : 1 pouce = 25.4 mm)

Si votre logiciel de traitement d'image préféré ne sait pas le faire (imprimer un fichier à des dimensions données), voici une solution simple détaillée :

1°) Téléchargez l'utilitaire Paint Shop Pro 3.12 (1,86 Mo) ; décompressez-le, puis installez-le.
2°) Lancez PSP.EXE, et chargez le fichier "OSDPCBv3.GIF" : Menu [File], puis [Open].
3°) Imprimez-le : Menu [File], puis [Print], puis [Page setup...].

Haut de page (retour)

Dans la boîte de dialogue "Page Setup" :
- Les dimensions sont par défaut en "pouces" (="Inches" en anglais), vous pouvez les laisser ainsi ; la case "Maintaint Aspect Ratio" doit être cochée ; la case "Use Full Page" doit être décochée ; la case "Center On Page" peut rester cochée (peu importe).
- Image Width : tapez la largeur de l'image (3.65 pouces).
- Image Height : tapez la hauteur de l'image (2.20 pouces).
- Puis validez, et quittez la boîte de dialogue : [OK].
Vous vous retrouvez dans la boîte de dialogue "Print", lancez enfin l'impression en tapant [OK].


Conseils pour l'impression du typon :
Haut de page (retour)
L'impression doit être impeccable, c'est-à-dire avec des zones noires bien opaques, sans coupures, sans bavures ; par conséquent, configurez votre imprimante pour une impression en noir et blanc, en haute qualité. Personnellement, j'imprime directement sur un transparent spécial pour imprimantes à jet d'encre, et je superpose deux exemplaires pour gagner en opacité. Vous pouvez également imprimer sur papier ; il faudra alors, soit rendre celui-ci perméable aux UVs (bombe "Diaphane" de KF), soit faire une photocopie laser de bonne qualité en noir et blanc sur un transparent prévu à cet effet. Quelle que soit la méthode, assurez-vous que le résultat final est bien à l'échelle 1 : le plus simple est de vérifier la coïncidence des broches et des trous en positionnant le PIC sur le typon (sans éraflure).


  3-2) - Réalisation du circuit imprimé : Haut de page (retour)

Attention ! Le dessin du circuit imprimé est vu côté composants : une fois le dessin photocopié ou imprimé sur un transparent, il faudra donc plaquer contre le cuivre la face encrée du transparent. Découpez un morceau de plaque présensibilisée d'environ 6 cm par 9,5 cm. Vous pouvez alors insoler, révéler, puis graver et percer le circuit. L'indicatif doit être lu à l'endroit, côté cuivre. Avant de percer, vérifiez tout de même les dimensions des broches des fiches "vidéo" RCA, pour adapter si nécessaire la position des trous, car il peut y avoir des différences selon les modèles.


  Charger la liste des composants au format TXT 3-3) - Liste des composants : Haut de page (retour)


  3-4) - Implantation des composants : Haut de page (retour)

Implantation des composants (pour la version 3) Haut de page (retour)

Soudez les composants par ordre de taille, en respectant le sens de ceux qui sont polarisés : d'abord les diodes 1N4148, puis les résistances et la 1N4007, puis les supports des circuits intégrés, les résistances ajustables, puis les condensateurs et le régulateur, les borniers, et enfin les fiches RCA. Utilisez impérativement un support pour le PIC, et de préférence un support "tulipe" afin qu'il puisse supporter les multiples démontages lors des reprogrammations (changements de messages). Le régulateur 5v peut être un 7805 (arrière métallique), ou un 78L05 dont le brochage est inversé :

Attention, le 7805 et le 78L05 ont des brochages inversés !

Dans les deux cas, attention à son sens d'implantation. Le 78L05 est largement suffisant compte tenu de la très faible consommation du montage (environ 11 mA, sur mon prototype) ; la face plate comportant le marquage sera alors orientée du côté du bornier d'alimentation. En revanche, si vous montez un 7805, ce sera alors le dos métallique qui sera orienté vers ce même bornier. Haut de page (retour)


Photo du prototype vu côté composants :

Incrustateur version 3, côté composants


Haut de page (retour)

Photo du prototype vu côté soudures :

Incrustateur version 3, côté soudures


Haut de page (retour)

Vue d'ensemble du montage, avec l'interrupteur,
le commutateur et le fil d'alimentation (pile 9v) :

Vue d'ensemble du prototype (version 3)

Haut de page (retour)

À droite de la photo, se trouve le bornier à huit plots sur lequel viennent se connecter les huit fils du commutateur de choix du message ; le fil gris est le commun ; les sept fils noirs sont respectivement (de haut en bas) :

Commutateur Message sélectionné : 
K7message défilant
K6message n°1
K5message n°2
K4message n°3
K3message n°4
K2message n°5
K1message n°6

Le commutateur est bridé à sept positions grâce à la rondelle munie d'un ergot qui est située sous l'écrou de fixation. Lorsque l'interrupteur est ouvert (= non passant), aucun message n'est affiché ; il en va de même si le commutateur se trouve en dehors de l'une des sept positions prévues (on peut donc en laisser une huitième à cet effet). Haut de page (retour)


  3-5) - Vérification du montage :
 

1°) Avant de brancher l'ensemble, commencez par faire un contrôle général du montage :
- Vérifiez les valeurs de chaque composant, leurs sens de branchement pour ceux qui sont polarisés (circuits intégrés, condensateurs tantale, diodes, régulateur).
- Vérifiez l'absence de micro-coupures sur les pistes de la carte.
- Vérifiez que toutes les soudures ont bien été faites, qu'aucune ne déborde sur une autre piste, pastille ou soudure, qu'il n'y a pas de soudures "sèches".

Cliquez ici pour charger le fichier de test du PIC
BinPIC.HEX

(archive ZIP
de 1,5 Ko)

2°) Téléchargez le fichier "BinPIC.ZIP" en cliquant sur l'icône de gauche ; vous allez alors en extraire le fichier de test "BinPIC.HEX" qui contient les messages, la taille et la position par défaut. Vous pouvez le programmer dans le PIC, cela va vous permettre de vérifier le fonctionnement du montage. Par la suite, le fichier HEX du PIC vous sera fourni automatiquement par le programme PICOSD, qui y aura intégré vos paramètres personnalisés. Pour l'instant, replacez le PIC programmé sur le montage (dans le bon sens !).

Haut de page (retour)

3°) Vous pouvez maintenant connecter le système ; mettez les ajustables à mi-course, branchez la source vidéo (caméra) et le moniteur ; à ce propos, vous aurez noté une curiosité en consultant le schéma électrique : l'entrée et la sortie vidéo sont interchangeables. Branchez alors l'alimentation, et fermez l'interrupteur de validation des messages (= inter passant). Le message sélectionné apparaît en blanc dans l'angle supérieur gauche de l'écran.

4°) Réglages :

Réglez l'ajustable de 5 kΩ (le noir, sur la photo du proto) pour modifier l'horloge du PIC, et donc la largeur des lettres. En deçà d'une certaine valeur (taille mini des lettres), l'oscillateur décroche et le message disparaît. En tournant dans l'autre sens, les lettres s'élargissent, jusqu'à ce que la largeur du message dépasse la taille de l'écran, l'affichage devient anarchique, et le signal vidéo peut être perturbé. Le meilleur compromis me semble être de se situer légèrement au-dessus de la largeur minimale, de façon à ce que le PIC ne décroche pas. Haut de page (retour)
L'ajustable de 470 Ω (le blanc sur la photo du proto) permet de doser le niveau de blanc réinjecté pour constituer les lettres. Choisissez une valeur qui permette une lisibilité suffisante, sans trop saturer pour ne pas dénaturer le signal vidéo et qu'il reste dans ses limites au niveau amplitude. Cela limitera le phénomène d'écho, qui se traduit par une petite zone noire juste après une lettre trop blanche.

Vérifiez le fonctionnement correct des messages 1 à 6, ainsi que du message défilant. En principe le montage doit fonctionner dès la mise sous tension, après une éventuelle retouche des ajustables. En l'absence de message, assurez-vous qu'au moment de brider le commutateur sur les positions 1 à 7, le curseur n'est pas resté bloqué entre les positions 8 à 12. Le PIC est utilisé au-delà de sa fréquence nominale (approximativement vers 8 MHz), on ne peut donc pas exclure que dans de très rares cas, il refuse d'osciller ; essayez alors avec un autre PIC16F84 à 4 MHz, ou bien avec un PIC prévu pour fonctionner à 10 ou 20 MHz pour innocenter le reste du montage.


 

 
Retour au sommaire 4°) - Le programme PICOSD
 


Le programme PICOSD fonctionne sous Windows 95/98/NT/2K/XP ; il permet à l'utilisateur de choisir le contenu des messages, leur position sur l'écran, la hauteur des lettres, la vitesse de défilement du message défilant. À partir des indications fournies, il va générer automatiquement le fichier "PICOSD.HEX" à programmer dans le PIC.

Interface graphique du programme PICOSD v1.0

Haut de page (retour)
Cliquez ici pour charger le programme PICOSD version 1.0
PICOSD.ZIP

Cliquez sur l'icône ci-dessus pour
télécharger le programme PICOSD
(archive ZIP de 351 Ko)

Cliquez ici pour charger le programme PICOSD version 1.0
PICOSD32.ZIP

(archive ZIP de 672 Ko)

Ajout le 06/03/2016 : dans cette seconde version (PICOSD32), l'assembleur 16 bits "MPASM.EXE" a été remplacé par "MPASMWIN.exe" (la version 32 bits fournie par microchip), ce qui permet de l'utiliser sur des versions de Windows XP et ultérieures, avec des processeurs 64 bits (testée avec Windows 8) ; le fichier BAT a été adapté, mais "PicOsd.exe" reste identique.


En décompressant l'archive ZIP, vous créez un répertoire PICOSD qui contient les quatre fichiers suivants :

Haut de page (retour)

Le programme en assembleur généré par PICOSD pour le PIC ("PICOSD.ASM") se rapproche évidemment beaucoup du programme initial conçu par Alain Fort F1CJN ; voici les principales modifications apportées :

- prise en charge de 6 messages au lieu de 3,
- optimisation de la longueur du message défilant,
- ajout, ou modifications esthétiques de certains caractères,
- définition de la configuration du PIC (évite le bug du WatchDogTimer),
- modifications permettant le paramétrage par des variables,
- ajout de nombreux commentaires explicatifs.

Je ne peux bien sûr pas garantir l'absence de nouveaux bugs ; en cas de soucis ou de doutes, je vous renvoie vers la version de référence, à savoir le programme d'origine (21 ko) ; vous perdrez alors les avantages de la nouvelle version ; dans ce cas, pensez bien à désactiver manuellement le WatchDogTimer dans l'utilitaire de programmation du PIC ("IC-Prog", ou autre), sinon le programme se bloquera au bout de une à deux secondes.


Regardons ensemble les différentes commandes
du programme PICOSD
 :

Commandes du programme PICOSD

Haut de page (retour)

Attention, j'insiste sur le fait que les réglages du texte doivent être tels que celui-ci ne doit pas "sortir de l'écran" sous peine de perturber le signal vidéo ; les premières fois, il sera sans doute nécessaire de faire plusieurs essais successifs, en retouchant éventuellement le potentiomètre de 5 kΩ (horloge du PIC). Si vos messages sont alignés à droite de l'écran et s'ils mesurent moins de 11 caractères, complétez-les avec des espaces placés en début de message (sinon les espaces sont ajoutés en fin de message, et bien qu'invisibles, ils peuvent aussi perturber la synchro).

Si vous êtes intrigué par l'aspect des différentes tailles de texte, allez jeter un coup d'oeil sur cette page : [Hauteur des lettres]. Haut de page (retour)


Image vidéo de la maquette de l'incrustateur, avec un message incrusté.

En guise de conclusion...

Ainsi s'achève cette description sans doute un peu trop longue ; j'espère que le programme PICOSD vous facilitera l'utilisation de cet incrustateur, ou que les quelques explications développées sur cette page vous convaincront de le réaliser si ce n'est déjà fait. C'est un petit dispositif peu coûteux et bien utile pour les radioamateurs pratiquant l'ATV, et puis c'est un peu notre vocation que de construire et d'expérimenter.
Haut de page (retour)
Bonnes bidouilles !
Pierre, F8EGQ.


(c) Pierre COL, F8EGQ
---
Dernière mise à jour le 06/03/2016