Présentation du Relais D/ATV de la montagne de Lure 

 

Ce document présente le relais D/ATV de la Montagne de Lure F5ZMP qui est actuellement en service dans sa version du 20 septembre 2017.

Historique : Le relais existe depuis plus de 15 ans, à l'origine il était installé dans un coffret étanche, il a migré dans le bâtiment du club qui abrite les autres équipements, et il a été reconditionné pour tenir dans un rack 19'' monté en armoire vers les années 2008/2009.

Cette dernière version est de nouveau dans un rack avec tous les fonctions sous forme de modules débrochables. Nous avons profité de cette version, pour changer complètement l'organisation du relais et d'introduire une gestion complète du relais par Raspberry/ Python3 apportant la possibilité d'apporter des modification sur le fonctionnement et de le rendre évolutive aux dernières technologie; introduction à la DATV, Hamnet, etc.

 

1.1.         Fréquences utilisées

 

Pour rappel:

Émission analogique sur         1 255 MHZ polar H Sud et Nord/Est

Entrée analogique sur             2 308 MHz polar H orienté Sud

Entrée DATV                          437 MHz SR1024 PID1000 polar H orienté Sud

 

DTMF VHF                           144,625 MHz Polar V

DTMF UHF                           439,6125 MHZ PolarV modifiée pour éviter QRM sur 625

 

Link Marseille

Lien descendant   F5ZMP vers F5ZAJ : 10 220 MHz Polar H

Lien montant        F5ZAJ vers F5ZMP : 10 448 MHz polar V

Link Mont Bouquet

Lien descendant   F5ZMP vers F1ZUT : 10 260 MHz polar H

Lien montant        F1ZUT vers F5ZMP : en cours de réalisation

 

1.2.         Architecture F5ZMP

 

Lors de la refonte du relais, nous en avons profité pour repenser sa conception. Le principe'est d'avoir un micro-ordinateur (Raspberry) en liaison avec des modules à travers un réseau interne.

Ce réseau est basé sur un réseau I2C, développé au siècle dernier par Philips et qui est devenu aujourd'hui un des standard pour l'échange de données. Ce principe permet d'avoir des modules indépendants et ''intelligents'' pour avoir une capacité de repli en cas de perte avec le Raspberry, et de répondre à chacune de ses requêtes.

Les modules en liaison avec le Raspberry sont:

                                         Les récepteurs analogiques, basés sur des modules Comtech avec une démodulation F5AD,

                                         les TRX VHF et UHF (réception DTMF) basés sur des modules DRA818,

                                         le module de commandes d'alimentation des émetteurs (1255,10220 et 10260MHz),

                                         la platine de commutation Vidéo/audio fixée sur le rack du relais.

 

Le dernier module OSD (On Screen Display, affichage d'informations sur les caméras) est en communication avec le Raspberry via une communication SPI(Serial Périphérie Interface), ce module contient l'OSD pour la sortie 1255MHz, un deuxième OSD est prévu pour alimenter les Tx 10GHz, mais non installé pour le moment.

 

  

 

   

                     1.3.     Codes DTMF

 

Tous les codes DTMF commence par les codes # et 4, le troisième code DTMF spécifie le ou les émetteurs concernés et le quatrième fait le choix de la source vidéo/audio.

Code dtmf3 = 1, 1er groupe

Notes:

Une fois la commande envoyée et validée, l'émetteur ou les émetteurs démarrent pour une durée de 60 mn. Une nouvelle commande redémarre la minuterie, hormis la demande du menu (#411) qui ne la redémarre pas. Le menu affiche les temps écoulés pour les émetteurs (#411).

Si les émetteurs sont en parallèle, la commande du premier groupe agit sur l'ensemble des émetteurs.

Cet état est visible dans le menu et infos(#411)

 

 

dtmf 1

dtmf2

dtmf3

dtmf4

                     Fonctions Vidéo

          Audio

#

4

1

0

Arrêt émissions du relais

 

#

4

1

1

Menu et infos

            1000Hz

#

4

1

2

Entrée utilisateur 2308MHz

        RX, 6,5Mhz

#

4

1

3

Réception F5ZAJ (Marseille)

         RX, 6,5Mhz

#

4

1

4

Réception F1ZUT (Mont Bouquet) non op.

            non op.

#

4

1

5

Réception DATV 437MHz sr1024 pid1000

               Rx

 
 

 

dtmf 1

Dtmf2

dtmf3

dtmf4

                                  Fonctions Vidéo

                Audio

#

4

1

6

Réception DATV Minitioune( non op.)

Rx

#

4

1

7

Caméra Ouest

Rx 144,625MHz

#

4

1

8

Caméra Nord/Est

Rx 439,8125MHz

#

4

1

9

Mire Animée

1000Hz

#

4

1

0

Arrêt des émetteurs

 

#

4

1

*

Mire fixe barres de couleurs

1000Hz

#

4

1

#

Mire fixe détail

1000Hz

#

4

1

#

Mire fixe détail

1000Hz

#

4

1

A

Commande les émetteurs 1,255 et 10GHz en //

 

#

4

1

B

Sépare la commande des émetteurs 1,255 et 10GHz.

 

 

Code dtmf3 = 2, 2ième groupe

 

Concerne uniquement les émetteurs 10GHz, si la commande (#41B) a été validée.

 

dtmf 1

Dtmf2

dtmf3

dtmf4

                             Fonctions Vidéo

                Audio

#

4

2

0

Arrêt émissions du relais

 

#

4

2

1

Menu et infos

                 1000Hz

#

4

2

2

Entrée utilisateur 2308MHz

               RX, 6,5Mhz

#

4

2

3

Réception F5ZAJ (Marseille)

               RX, 6,5Mhz

#

4

2

4

Réception F1ZUT (Mont Bouquet) non op.

                  non op.

#

4

2

5

Réception DATV 437MHz sr1024 pid1000

                    Rx

#

4

2

6

Réception DATV Minitioune( non op.)

                     Rx

#

4

2

7

Caméra Ouest

         Rx 144,625MHz

#

4

2

8

Caméra Nord/Est

          Rx 439,8125MHz

#

4

2

9

Mire Animée

               1000Hz

#

4

2

0

Arrêt des émetteurs

 

#

4

2

*

Mire fixe barres de couleurs

               1000Hz

#

4

2

#

Mire fixe détail

               1000Hz

 

1.4.         Les Évolutions à venir

 

Les évolutions à venir dans les prochains mois:

-   Liaison Hamnet pour une gestion du raspberry à distance

-   Extension des codes DTMF pour avoir :

-        un menu complété avec des informations sur l'état du relais, alimentation, niveau de réception, mesures de la puissance de sortie et retour.

-        l'accès à l’historique des niveaux de réception et valeurs alimentations gérés par une base de données

-        etc...

-        réception 437MHz en TNT

-        antenne big wheel 437MHz pour réception omnidirectionnelle

-        émission Mire DATV sur 23cm (fréquence à définir)

-        liaisons RS485 avec les TX 10GHz

-        etc...

 

1.5.         Principe de fonctionnement

 

Le raspberry est en liaison avec les modules en I2C, hormis la liaison avec l'OSD qui est en SPI. Dans cette version, les liaisons I2C et RS485 avec les TX's (1255Mhz,10220MHz et 10260MHz) ne sont pas opérationnelles.

Chaque type de module ou groupe de même module installé dans le rack portent un numéro.

Principe d'intercommunication entre les différents modules.

  

Implantation des modules dans le rack: en partant de la gauche

 

 

Type 1

Modules d'alimentation 12Vcc >7Vcc, 2 modules, chaque module possède 2 alimentations.

Module 1A 7V pour les récepteurs, module 1B 7V pour le raspberry Module 2A 7V pour le TRX UHF, module 2B pour le TRX VHF

Type 2

Raspberry PI3 avec le convertisseur de niveau 5v/3,3V pour l'I2C

Type 3

OSD (inscription sur image) MAX7456

Type 4

Module de commandes d'alimentation des émetteurs via 8 relais et de l'horloge RTC

Type 5

Modules Récepteurs ATV 1 module pour la réception de F5ZAJ, 1 module pour la réception utilisateurs 2308MHz, emplacement prévu pour la réception de F1ZUT

Type 6

Modulateurs bande de base pour les 2 TX 10GHZ

Type 7

Emplacement pour l'exciter TX1255MHz

Type 8

Module TRX VHF et Modules UHF à base de DRA818

type 9

Réserve

Type 10

Commutation Vidéo/audio situé sue la dessus du rack

 

 

Implantions des modules dans le rack

 

 

                                                       note: ce schéma n'est pas à l'échelle.

                                                       Les émetteurs 10GHz (module 6) ont la même source et une seule entrée est opérationnelle.

                        2. Description Technique

 

 

2.1.         Alimentations:

L'alimentation générale est de 12Vcc, chaque convertisseur alimenté par les modules de type 1(modules d'alimentation), sont suivis par une régulation 7V > 5Vcc (7805) intégrée.

 

2.2.         Consommation

Relevés le 21 juin 2017

en réception                            1,78A

avec Tx 1255MHz                  7,18A

avec TX 10220MHz               8,02A

avec Tx 10260MHz                8,63A

 

 

2.3.          Couleurs des fils Rouge 10Vcc, ou 7Vcc, ou 5Vcc Noir ou bleu = Masse

Jaune SDA I2C Gris SCL I2C

 

2.4.         Interconnexion des modules

les interconnections entre les modules sont réalisées par un câblage avec fils sur des connecteurs de type DB9 et DB25 pour le raspberry.

Les connections sont détaillées ci-dessous.

                                                                                                   a) Modules d'alimentation de type 1 connecteur DB9 femelle

 

                                                                                                    b) Module OSD type 3 connecteur DB9 mâle

 

 

                                                                                         c)  Modules d'alimentation de type 4 à 8 inclus connecteur DB9 mâle

Note : les modules 8 TRX_VHF et TRX_UHF ont la sortie interruption à la pin N° 4, et non à la masse.

 

                                                                                          d) Module Raspberry type 2 DB25 femelle

 

 

 

              3 .  Principe des communications I2C

 

La communication I2C est gérée par le raspberry à travers son GPIO (port d'entrées/sorties). Un convertisseur de niveau installé sur le module Raspberry convertit ces signaux de 3,3Vcc en 5Vcc, et vice versa, ce convertisseur est décrit dans le paragraphe du Raspberry.

Le raspberry est le maître sur le réseau I2C, c'est lui qui initialise les communications avec les modules qui sont esclaves. Chaque module est équipé du même type de PIC, un PIC16F88 chaque PIC possède une seule et unique adresse suivant le tableau ci-dessous.

 

 

3.1.         Adresse I2C

 

Adresse I2C

Désignation

Adresse PIC

h'29'

Récepteur link F5ZAJ

 

h'2A'

Récepteur entrée analogique 2308MHz

 

h'2B'

Récepteur link F1ZUT, non opérationnel 

 

h'2C'

Récepteur réserve

 

h'2E'

TRX 144MHz

 

h'2F'

TRX 439MHz

 

h'31'

Commutation Vidéo Audio

 

h'33'

Commandes TRX

 

h'48'

Température LM75 (capteur intégré sur la carte commandes TRX

 

h'57'

EEPROM sur circuit RTC

 

h'68'

Horloge RTC, utilisé par Raspbian

 

 

 

A travers chaque adresse, le raspberry peut lire et également écrire dans la mémoire du PIC adressé. Le principe des programmes à l'intérieur de chaque PIC est identique, à la mise sous tension, chaque PIC charge des valeurs par défaut, contenues en EEPROM, et spécifiques aux périphériques qu'il contrôle, par exemple:

 

Les récepteurs, chaque récepteur charge dans son module Comtech la valeur par défaut de la fréquence à recevoir, le shift positif ou négatif de 479,5 Mhz, etc,,.

Les TRX DTMF, passe en réception et charge les fréquences de réception et d'émission La baie de commutation vidéo/audio est positionnée sur la mire avec émission du 1000Hz etc...

 

Après l'exécution de leur programme d'initialisation chaque PIC lit en boucle le contenu d'une variable contenue en mémoire RAM. Cette variable est modifiée par Raspberry à travers le réseau I2C pour demander au PIC concerné l'exécution d'une application spécifique. Une fois cette application réalisée la variable est remise à zéro pour indiquer son bon déroulement et repart dans la boucle, en attendant une nouvelle demande. Cette variable porte le nom de status_pgre dans les programmes qui sont tous écrit en assembleur.

Dans la description de chaque module est décrit précisément les fonctions disponibles, c'est à dire les valeurs que la variable status_pgre est capable de reconnaître.

 

3.2.         Méthode de communication en python3 avec les modules I2C

 

Une suite d'exemple tiré du programme de F5ZMP présente la façon d’accéder à la mémoire des PIC implantés sur ces modules.

                              a) Lecture d'un octet :

                                  status_pgre_RX1 = bus.read_byte_data(DEVICE_ADDRESS_RX1,6) status_pgre_RX1 variable qui contiendra la valeur de l'octet

                                  bus. Constante spécifiant le bus 1, read_byte_data, commande de lecture,

                                   DEVICE_ADRESS_RX1, adresse du récepteur RX1, correspond à la valeur h'29' (voir paragraphe précédemment).

 

                               b) Écriture d'un octet :

                                    write_byte_data(DEVICE_ADDRESS_TRX_VHF,0x12,4) bus, idem lecture

                                    write_byte_data, commande d'écriture DEVICE_ADDRESS_TRX_VHF,

                                    adresse du module TRX_VHF 0x12 adresse de la mémoire où sera rangée l'octet en hexadécimal,

                                    4,valeur décimale qui sera placée à l'adresse ci-dessus.

 

                                 c) Lecture d'un bloc de 32 octets dma_cde_tor=bus.read_i2c_block_data(DEVICE_ADDRESS_COMMANDES_RE LAIS,0x00)

                                    dma_cde_tor, variable contenant les 32 octets read_i2c_block_data, commande de lecture des blocs

                                    DEVICE_ADDRESS_COMMANDES_RELAIS, adresse du module commande relais

                                    00, adresse du premier octet lu.

 

                                   d) Écriture d'une série de

                                     QRG = [49, 52, 52, 54, 50, 53, 48, 49, 52, 52, 54, 50, 53, 48]

                                      bus.write_i2c_block_data(DEVICE_ADDRESS_TRX_VHF, 0, QRG)

                                      QRG = bloc de variables

                                      write_i2c_block_data, commande d'écriture du bloc DEVICE_ADDRESS_TRX_VHF,

                                      adresse du module TRX_VHF 0,

                                      adresse du premier octet

                                      et les variables.

 

Python3 permet l'utilisation d'autres fonctions en relation avec le réseau i2c, voir la documentation. Vous trouverez au chapitre suivant l'adresse et les octets pour chaque module en liaison i2C avec le raspberry.

             4.   Description des modules

4.1.         Module de Type 1, Alimentations

 

Chaque module intègre 2 convertisseurs de tension qui fournissent du 7,5 Vcc à partir du 12Vcc, ils sont référencés A et B.

Ces convertisseurs utilisent des circuits achetés sur e-bay à base de LM2596, ces circuits sont donnés pour un maximum de 1A. Chaque convertisseur est protégé par un fusible de 1A, ils sont suivis par des filtres passe bas, pour se protéger du 150KHz, fréquence de fonctionnement des LM2596.

   

                                                                                          Schéma de simulation avec RF99.

 


 

En sortie de chaque convertisseur une led verte indique la présence de tension en sortie, de plus le module de type 4 (Commandes des relais et horloge RTC mesure les tensions de sortie de chacun des convertisseurs et les affichent sur le Menu et infos #411).

Le module de type 1 gauche, en haut (A) alimente les récepteurs (modules Comtech), en bas le raspberry (B).

Le module de type 1 droit, en haut alimente le TRX UHF (A), en bas le TRX VHF (B).

 

             4.2    Module Raspberry

 

Le module Raspberry contient le régulateur 7805 pour alimenter le raspberry et le convertisseur de niveau sur le réseau I2C (3,3V/5V).

Le raspberry à l'origine était un PI2 modèle B, aujourd'hui c'est un PI3 modèle B. La carte SD mémoire est d'une capacité de 16GB. Le système d'exploitation utilise Raspbian, la version déclinée de Debian.

La version de Rasbian est là suivante:           Version: July 2017

                                                                 Release date: 2017-07-05

                                                                  Kernel version: 4.9

 

La mission principale du raspberry, est l'exécution du programme du relais D/ATV écrit en Python3. A ce jour la charge du fonctionnement est inférieur à 5% de ses capacités. Ce qui permettra d’accueillir d'autres évolutions et fonctions.

 

Les entrées/sorties câblées sont

  • l'alimentation 5Vcc provenant du régulateur 7805, qui lui-même est alimenté par l'alimentation 7,5Vcc provenant du module de type1B.
  • La sortie vidéo composite (la sortie HDMI n'est pas utilisé), sur cette sortie nous avons la possibilité d'entrer sous le système d'exploitation pour les opérations de maintenance, mise à jour, etc...avec l'aide du clavier et de la souris connectés en USB, en face avant du module. C'est aussi par cette sortie que le raspberry génère la vidéo des mires animées ou fixes, et le menu principal envoyée aux émetteurs. La définition est de 768 x 576 en PAL.
  • La liaison Ethernet qui permet en local d'intervenir dans le système d'exploitation et le programme du raspberry à travers un PC sous Windows ou Linux.
  • Sur le connecteur GPIO (Entrées/Sorties) est raccordé ;

◦          le réseau I2C raccordé au convertisseur de niveau 3,3Vcc/5Vcc (SCL et SDA)

◦          Les deux entrées logiques qui proviennent des modules TRX DTMF, qui informe au programme du raspberry sous forme d'interruption, l'arrivée d'un code DTMF.

◦          Les connexions SPI avec les OSD, ces signaux sont l'horloge, l'entrée, la sortie et les sélections des l'OSD's

◦          les connexions série (RS485) ne sont pas encore câblées et seront utilisées dans le futur pour dialoguer avec les émetteurs.

 

                                          Le convertisseur de niveau I2C est un module fabriqué à partir de la note AN10441 de NXP semiconductors.

                                          Le schéma est le suivant :

Les transistors sont des 2N7000, les résistances de rappel Rp coté 3,3Vcc (Raspberry) sont intégrées sur la carte mère du Rasperry (1,8Kohm), les résistances de rappel côté I2C 5Vcc sont des 4,7Kohm.

 

En sortie de chaque convertisseur une led verte indique la présence de tension en sortie, de plus le module de type 4 (Commandes des relais et horloge RTC mesure les tensions de sortie de chacun des convertisseurs et les affichent sur le Menu et infos #411).

Le module de type 1 gauche, en haut (A) alimente les récepteurs (modules Comtech), en bas le raspberry (B).

Le module de type 1 droit, en haut alimente le TRX UHF (A), en bas le TRX VHF (B)

            4.3.         Module OSD

 

Le module OSD utilise un composants CMS MAX7456 spécialisé dans la vidéo analogique. Ce circuit intégré nécessite peut de composants et il est piloté par le raspberry à travers les liaisons SPI. Le circuit monté est un circuit trouvé chez sparkfun sur lequel les deux connecteurs RCA ont été supprimés. Un régulateur 7805 alimente ce circuit à partir du 12Vcc de service.

Le deuxième OSD prévu pour la sortie 2 en alimentation des émetteurs 10GHz sera fait sur un circuit spécifique, le société sparkfun a arrêtée sa commercialisation.

             4.4.          Module de commandes des relais (émetteurs) et horloge.

 

Ce module est constitué de deux circuits :

l'horloge RTC qui permet de conserver l'heure même pendant un arrêt du Raspberry ou de perte d'alimentation générale. A chaque démarrage du raspberry, il récupère son horloge auprès de ce module par la liaison I2C. Ce circuit trouvé sur ebay fonctionne avec un DS3231 et une batterie de 3,3Vcc

Le module de commande des relais d'alimentation des émetteurs, ce module à trois fonctions écrit dans le PIC16F88 qui communique à travers le réseau I2C :

Piloté chaque relais à partir des ordres donnés par le raspberry, et de veiller que le relais retombe au bout du temps alloué, par défaut 60mn. Ce système est une sécurité, dans le cas ou il y a une perte de la demande d'arrêt (arrêt raspberry, perte réseau I2C, etc...)

Mesurer les tensions de sortie des alimentations et les affichées dans le menu et infos (#411) Mesurer la température ambiante et l'affichée dans le menu (au degré près).

 

 

Ci-dessous les variables accessibles par le raspberry

 

 

Non de la variable   adresse ram pic  adresse PI2                                                             Définition

0               tempo1                              0x20                0x00      temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

1               tempo2                              0x21                 0x1        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

2               tempo3                              0x22                 0x2        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

3               tempo4                              0x23                 0x3        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

4               tempo5                              0x24                 0x4        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

5               tempo6                              0x25                 0x5        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

6               tempo7                              0x26                 0x6        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

7               tempo8                              0x27                 0x7        temporisation nbre de mn, proviennent de l'eeprom à initialisation, si tempo = 0 = sortie permanente

8               status_out                              0x28                 0x8        sorties des 8 relais

9               Ani0                                   0x29                 0x9        entrée analogique 0 - alimentation générale

10               Ani1                                   0x2A                 0xA       entrée analogique 1 - alimentation BlocA haut

11               Ani2                                   0x2B                 0xB       entrée analogique 2 - alimentation BlocA bas

12               Ani3                                   0x2C                 0xC       entrée analogique 3 - alimentation Bloc B haut

13               Ani4                                   0x2D                 0xD       entrée analogique 4 - alimentation Bloc B bas

14               status_pgre                             0x2E                 0xE       status_programme, voir table des fonctions

15               nber_error                          0x2F                 0xF        nombre d'erreur sur l'I2C interne communication avec le PCF8574

16               count0sec                          0x30                0x10      compte les secondes,repasse à 0 après 60 incrémentations

17               count1sec                          0x31                0x11      compte les secondes,repasse à 0 après 60 incrémentations

18               count2sec                          0x32                0x12      compte les secondes,repasse à 0 après 60 incrémentations

19               count3sec                          0x33                0x13      compte les secondes,repasse à 0 après 60 incrémentations

20               count4sec                          0x34                0x14      compte les secondes,repasse à 0 après 60 incrémentations

21               count5sec                          0x35                0x15      compte les secondes,repasse à 0 après 60 incrémentations

22               count6sec                          0x36                0x16      compte les secondes,repasse à 0 après 60 incrémentations

23               count7sec                          0x37                0x17      compte les secondes,repasse à 0 après 60 incrémentations

24               count0mn                          0x38                0x18      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo1

25               count1mn                          0x39                0x19      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo2

26               count2mn                          0x3A                0x1A      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo3

27               count3mn                          0x3B                0x1B      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo4

28               count4mn                          0x3C                0x1C      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo5

29               count5mn                          0x3D                0x1D      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo6

30               count6mn                          0x3E                0x1E      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo7

31               count7mn                          0x3F                0x1F      compte les minutes, repasse à 0 après avoir compté le nbre dans tempo8

 

Note: tempo1 à 8 valeur exprimée en minutes, 0 = état maintenu.

 

Ci-dessous les commandes envoyées par le raspberry au PIC dans la variable "status_pgre"

 

0              action terminée, en attente d'une nouvelle demande

1              initialisation total avec lecture EEPROM et chargement module

2              écriture de la config en EEPROM, suite à modification(s) de la configuration des minuteries

10             reset sortie 1

11             monte la sortie 1

20             reset sortie 2

21             monte la sortie 2

30             reset sortie 3

31             monte la sortie 3

40             reset sortie 4

41             monte la sortie 4

50             reset sortie 5

51             monte la sortie 5

60             reset sortie 6

61             monte la sortie 6

70             reset sortie 7

71             monte la sortie 7

80             reset sortie 8

81             monte la sortie 8

 

 

            4.5.       Module récepteurs

Ces modules sont aux nombre de deux, un pour la réception du link de Marseille, un deuxième pour la réception de l'entrée utilisateurs en 2308MHz. Ils sont construits de façon identique, seul le type de module Comtech est différent. Il est prévu de construire un troisième récepteurs si le link avec le mont Bouquet se réalise.

Synoptique

           

Le régulateur 7805 est raccordé à l'alimentation 7,5Vcc du module 1(A) et il fournit le 5Vcc au module Comtech et à la carte PIC16F88. Le 12Vcc alimente le vco du tuner, et la carte de démodulation de conception de F5AD.

Le rôle du PIC16F88 est

à l'initialisation d'envoyer la fréquence sauvegardée en eeprom au module Comtech au pas de 125KHz, avec le décalage supradyne/infradyne

de mesurer la tension issue du signal RSSI (CAG) niveau de réception de conserver toutes ces informations en eeprom

Une particularité de la carte 16F88 est de pouvoir l'utiliser de façon autonome à travers une liaison série 9600bd 8bit pour réaliser un récepteur et/ou émetteur indépendant. A travers cette liaison série les commandes alphanumérique sont

                       lettre d : affiche la fréquence,

                       lettre r : transfère le contenu de l'eeprom en ram

                       lettre w : écrit les paramètres fréquence et décalage en eeprom

                       lettre f : attend la fréquence à rentrer dans le module comtech et le décalage ex : 12551+ pour fréquence 1255,125MHz avec décalage positif, le signe - pour décalage négatif

                       et espace pour sans décalage.

                       signe + incrémente la fréquence de 1 MHZ

                       signe – décrémente la fréquence de 1MHz

 

Le circuit de démodulation est un schéma réalisé par F5AD, par rapport à l'origine le circuit fait appel à des composants montés en surface, on trouve un potentiomètre pour le gain vidéo et un autre pour la sortie audio. La sous porteuse est de 6,5MHz dans l'ensemble du relais.

 

 

 

Table de la mémoire du PIC16F88

 

0

R0_1

0x20

0x00

; 1 Ghz

1

R1_1

0x21

0x1

; 100 Mhz

2

R2_1

0x22

0x2

; 10 Mhz

3

R3_1

0x23

0x3

; 1 Mhz

4

R4_1

0x24

0x4

; 100 Khz

5

conf_FI

0x25

0x5

2bits par rx, FI 01=+, 10= - ,11=aucun décalage,00 pas de module

6

status_rx                        

0x26

0x6

0 = action terminée

7

RSSI

0x27

0x7

niveau de réception (brute)

8

alim_LNB

0x28

0x8

tension alim

9

count_temp

0x29

0x9

compteur de tempo à 1Sec

10

count_4mn

0x2A

0xA

compteur de tempo à 4mn

11

nbre_error

0x2B

0xB

Nbre d'erreur de com avec la communication du Comtech (I2C interne)

 

Note : la valeur du signal RSSI est brute, c'est à dire issue directement du convertisseur A/N du PIC sans traitement sur une conversion de 0 à 5Vcc. Pour le signal mesuré auprès du module Comtech 1200MHz, le valeur affiché dans le menu et infos(#411) du RSSI est soustrait à 255 pour obtenir une valeur cohérente avec le module de réception 2308MHz (Utilisateur). Vous trouverez la relation entre la tension de RSSI et le niveau d'entrée des deux modules, et vous pouvez constater que la valeur du RRSI est inversée.

                                                                                                           

 

                                                          RSSI module 2400 Mhz RT2400                                                                               RSSI module 1200MHz BSU479

 

 

                                ci-dessous les commandes envoyées par le raspberry au PIC dans la variable "status_pgre" 

 

                             0                action terminée

                             1                initialisation total avec lecture EEPROM et chargement module

                             2                écriture de la fréquence et de la config en EEPROM

                             3                incrémente la fréquence de 1Mhz

                             4                décrémente la fréquence de 1 Mhz

                             5                lecture du module I2C interne

 

 

 

                                 4.6.         Module Bande de Base

 

Ce module contient les deux modulateurs de bande de base qui alimentent les deux émetteurs 10GHz. Un amplificateur vidéo 1 voie à deux sorties, est également installé dans ce module pour alimenter les modulateurs en parallèle. La source vidéo provient de la deuxième sortie vidéo de la commutation vidéo (voir chapitre 5,9).

La sous porteuse audio est réglée à 6,5 Mhz.

                       Schéma de l'amplificateur vidéo 1E/2S

 

            
      

                                   Schéma d'un modulateur.

 

             4.7.         Exciteur 1255 MHz

 

Ce module contient l'exciteur d'origine qui fournit le signal 1255MHz avec le modulateur Audio/Vidéo, sous porteuse à 6,5MHz.

 

 

             4.8.         Modules TRX DTMF

 

Ces modules VHF et UHF reçoivent les codes DTMF et envoie en CW les accusés de réception. Ils possèdent aussi la possibilité d'être des perroquets. Ces modules sont identiques et sont basés sur l’utilisation de module DRA818 V et U qui sont pilotés par des PIC16F88 via une liaison série à 9600 bd, La détection des codes DTMF utilise un décodeur MT8870 et la génération des notes BF et codes DTMF est faite par un circuit intégré HT9200. Les modules DRA818 sont des TRX complets que l'on retrouve dans certaines production chinoise. Le module VHF est équipé d'un amplificateur qui permet de porter la puissance de sortie à 10W. Cet amplificateur utilise un RD15HVF et il est alimenté sous 12Vcc, il contient la commande des relais de commutations (Alim et HF).

 

 

 



 

Table de la mémoire du PIC16F88

 

 

Non de la variable

adresse PIC

adresse PI2

Définition

0

CenMhzTX

0x20

0x0

; 100 Mhz

1

DizMhzTX

0x21

0x1

; 10 Mhz

2

UnitMhzTX

0x22

0x2

; 1 Mhz

3

CentKhzTX

0x23

0x3

; 100 Khz

4

DizKhzTX

0x24

0x4

; 10 Khz

5

UnitKhzTX

0x25

0x5

; 1 Khz

6

CentHzTX

0x26

0x6

; 100 hz

7

CenMhzRX

0x27

0x7

; 100 Mhz

8

DizMhzRX

0x28

0x8

; 10 Mhz

9

UnitMhzRX

0x29

0x9

; 1 Mhz

10

CentKhzRX

0x2a

0xa

; 100 Khz

11

DizKhzRX

0x2b

0xb

; 10 Khz

12

UnitKhzRX

0x2c

0xc

; 1 Khz

13

CentHzRX

0x2d

0xd

; 100 hz

14

BW

0x2e

0xe

band width

15

RX_CTSS

0x2f

0xf

code CTSS RX

16

TX_CTSS

0x30

0x10

code CTSS TX

17

SQ

0x31

0x11

squelch

 

18

 

Status_Pgre          

 

0x32

 

0x12

 

0= ok chargement réalisé, 1 code DTMF 1, 2 etc, up to 24, 25=demande chargement DTMF

19

count_dtmf

0x33

0x13

nbre de codes dtmf à envoyer

20

DTMF1

0x34

0x14

Codes DTMF différent de 0

21

DTMF2

0x35

0x15

 

22

DTMF3

0x36

0x16

 

23

DTMF4

0x37

0x17

 

24

DTMF5

0x38

0x18

 

25

DTMF6

0x39

0x19

 

26

DTMF7

0x3a

0x1a

 

27

DTMF8

0x3b

0x1b

 

28

DTMF9

0x3c

0x1c

 

29

DTMF10

0x3d

0x1d

 

29

volume

0x3e

0x1e

 

30

filtre

0x3f

0x1f

 

31

filtre passe haut

0x40

0x20

 

32

filtre passe bas

0x41

0x21

 

33

dtmf_received

0x42

0x22

reçu par le MT8870

34

code_dtmf

0x43

0x23

au chargement dans le HT9200

35

count_error

0x44

0x24

nbre d'erreur de com avec le DRA818

36

count_table

0x45

0x25

 

37

count_L_HT9200

0x46

0x26

 

38

count_dtmf_received

0x47

0x27

nbre de dtmf reçu

39

count_delay_dtmf

0x48

0x28

nbre de 500ms, au delà de cette valeur, le compteur ci-dessus est remis à 0

 

La commande 4 charge à travers la liaison série les données contenues en mémoire RAM (0 à 17) La commande 5, permet d'émettre la suite de 10 codes DTMF, l'adresse en mémoire RAM 19 contient le nombre de codes et l'adresse 20 à 29 contient les codes. La vitesse est de 200ms pour chaque code.

 

 

Table des commandes

                                   N°                                               Action

 

                                  1                initialise DRA

                                  2                écrit en EEPROM le contenu de la RAM

                                  3                Lit l'EEPROM et met en RAM

                                  4                charge le DRA avec le contenu de la RAM

                                  5                émission des codes DTMF

                                  6                émission de la lettre K

                                  7                émission du ?

                                  8                réglage du volume

                                  9                envoie F5ZMP

                                 10               émission avec note 941 Hz

                                 11               émission avec note 1209 Hz

                                 12               passage en réception

                                 13               envoie les valeurs des filtres

 

                                 24       erreur de chargement du DRA, le status pgre est remis à 0 par le code python

 

 

                4.9.         Commutation Vidéo/Audio

 

Ce module est placé au-dessus du rack principal et sa fonction est de diriger sur les sorties vidéo et audio les signaux venant des différentes sources.

 

Architecture commutation Vidéo/Audio.

 

Principe de fonctionnement :

 

Un microprocesseur PIC 16F88 permet la communication avec le réseau I2C du raspberry, et initialise les commutations vidéo et audio à la mise sous tension. Une fonction générateur 1000HZ est implanté suivi par un filtre passe bas à deux cellules et transforme le signal carré en un signal sinusoïdal. Un potentiomètre permet de fixer le niveau en entrée de la commutation audio. Ce PIC génère un deuxième réseau I2C, totalement indépendant du réseau I2C inter-modules et raspberry, avec la fonction maître pour communiquer avec les circuits intégrés de commutation vidéo et audio.

 

Description commutation vidéo :

 

La partie commutation vidéo utilise deux commutateurs vidéo TDA8540, alimentés par un régulateur de 8Vcc (78L08). Chaque commutateur accepte 4 entrées vidéo et redirige sur 4 sorties vidéo sous un niveau de 1Vcc, les sorties vidéo possèdent un mode tri-state ce qui permet de mettre les commutateurs en parallèle. Vous trouverez ci-après l'affectation des E/S sur ces commutateurs, les sorties 1 et 2 sont dirigées vers l'exciter 1255Mhz et les émetteurs 10Ghz, les sorties 3 et 4 sont non utilisées.

Description commutation audio :

Cette partie utilise deux commutateurs audio TEA6420, alimentés par un régulateur de 9Vcc (78L09). Chaque commutateur accepte 5 entrées et redirige sur 4 sorties, et ceci deux fois, ce circuit a été conçu pour la stéréo, dans notre besoin nous en utiliserons qu'une partie. Au contraire de la commutation vidéo, les sorties de ces commutateurs ne peuvent être mis en parallèle, ceci explique le montage en série des deux commutateurs; la sortie audio du premier rentre dans la première entrée du deuxième. Comme sur la commutation vidéo, les sorties 1 et 2 sont dirigées vers l'exciter 1255Mhz et les émetteurs 10Ghz, les sorties 3 et 4 sont non utilisées.

 

Table de la mémoire du PIC16F88

 

 

Non de la variable

adresse ram pic

adresse PI2

Définition

0

SW1_1

0x20

0x00

switch1

1

GCO1

0x21

0x1

switch1

2

OEN_1

0x22

0x2

switch1

3

SW1_2

0x23

0x3

switch2

4

GCO_2

0x24

0x4

switch2

5

OEN_2

0x25

0x5

switch2

6

status_TEA1

0x26

0x6

Audio 1

7

status_TEA2

0x27

0x7

Audio2

8

tension alim

0x28

0x8

valeur de la tension d'alimentation

9

nbr-error

0x29

0x9

nbre d'erreur I2C1

10

status_pgre_V

0x2a

0xA

Commutation Vidéo

11

status_pgre_A

0x2b

0xb

Commutation Audio

 

Note: Voir les paramètres GCO et OEN dans la documentation du TDA8540 table des commandes

Description des codes

Sortie 1 correspond à la sortie 1

vidéo Sortie 2 correspond à la sortie 2

vidéo Sortie 3 correspond à la sortie 1

audio Sortie 4 correspond à la sortie 2 audio

exemples

le code 21 = entrée vidéo 2 sur sortie vidéo 1

le code 82 = entrée vidéo 8 sur sortie vidéo 2

le code 33 = entrée audio 3 sur sortie audio 1

ex..

particularités

le code 103 ou 104 envoie la sortie 1000Hz sur la sortie 3 et/ou 4

 

limites

8 entrées vidéo, 2 sorties vidéo

9 entées audio, 2sorties audio

          5.   Le programme du Raspberry

 

Comme déjà indiqué, le raspberry a été programmé en Python3 principalement pour des raisons de disponibilités de modules logiciels, comme "pygame" pour la création des mires et du menu, SMBUS pour la communication I2C, etc.

 

Les principales taches réalisées par le programme sont l'initialisation et la vérification de la communication I2C

Une boucle principale qui gère les différentes temporisations suivant le choix en sortie Mire animée

Mise à jour des informations contenues dans le menu Les textes ou informations envoyés à l'OSD.

La réception des 4 codes sous une temporisation de 10 secondes.

La réception de chaque code DTMF appelle un sous-programme de vérification,

une fois les    4   codes reconnus, un programme 'matrice' permet de déterminer si la commande est conforme et envoie aux PIC concernés les valeurs dans leur variable (status_pgre).

 

Ce programme est en perpétuelle modification, et il est disponible sous simple demande.

          6.  Commandes Linux

 

6.1.         Adresse du raspberry

A travers le port ethernet 192 .168 .1.110

 

6.2.         Connexion au raspberry

login : pi

password : XXXXXXX.

 

 

6.3.         Commandes terminal

Test de présence des modules I2C: sudo I2Cdetect -y 1

 

 

6.4.         Lanceur automatique du programme. dans le fichier /etc/rc.local

ajouter avant la ligne exit0

bash /home/pi/F5ZMP/Raspberry/lanceur.sh

 

le fichier lanceur.sh contient:

 

#!/bin/bash

python3 /home/pi/F5ZMP/xxxxxxxx.py

 

les xxxxxxx.py sont remplacés par le nom du fichier python.

 

6.5.        Arrêt du pgre

après connexion au raspberry

ps -faux : donne toutes les taches actives pour arrêter la tache

sudo kill -9 N° de la tache.

L'arrêt peut être aussi demandé par code dtmf administrateur.

 

6.6.        Commandes par Hamnet

Le programme principal de F5ZMP lance un programme serveur en parallèle. Les commandes sont envoyées par un client installé dans un autre pc ou raspberry. Les paramètres sont l'adresse IP et le N° de port est 12800.

Deux programmes python sont disponibles sous le répertoire hamnet du raspberry de F5ZMP. Un programme client.py permet l'envoie au serveur de la valeur "dtmf_hamnet", un deuxième programme menu_hamnet.py fait l'envoie à travers une petite interface.

 

6.7.         Mise à l'heure de l'horloge RTC

 

L'heure et la date sont gérées par un module (Horloge RTC à base de DS3231) indépendant alimenté par une batterie de 3V qui communique par la liaison I2C.

 

A chaque démarrage du raspberry, les informations sont transférées à l'horloge du raspberry. Le logiciel utilisé est hwclock distribué avec Raspbian. (https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=145511)

 

Les fonctions sont :

-   lecture de l'heure et de la date sudo hwclock -r

-   Mise à l'heure et date du raspberry sudo date -s "29 AUG 1997 13:00:05"

-   Ecriture dans l'horloge RTC sudo hwclock -w

 

  1. Conclusion

 

L'ensemble des schémas, circuit imprimés, photos et logiciels sont disponibles sur simple demande. Le logiciel des schémas est sPlan7

Le logiciel de circuit imprimé est Sprint-Layout 6

L'atelier logiciel pour la programmation des PIC est MPLAB X La suite logiciel de création de documents est OpenOffice.

 

                                      Fin de L article      F1BFZ