Electronique > Réalisations > Télécommandes > Télécommande 016b - Pro 

Dernière mise à jour : 29/06/2025

Présentation

Cette télécommande a été dévelopée pour traiter des ordres de télécommande à destination ou provenant d'équipements audiovisuels, par le biais d'un réseau local Ethernet.
 
telecommande_016b_pcb_3d_front
 

Dotée de plusieurs entrées logiques (boutons-poussoirs), de plusieurs entrées analogiques (potentiomètres) et de plusieurs entrées/sorties logiques à usage général (GPIO), elle est destinée à être raccordée à un réseau Ethernet local (LAN) en passant par un commutateur (switch) administré. Cette télécommande 016b est une version plus évoluée de ma télécommande 016.

Fonctions principales :
- Ethernet mode client : envoi de commandes en TCP et UDP
- Ethernet mode serveur : réponse à des commandes reçues en TCP et UDP
- Synchronisation horaire de l'horloge interne par le protocole NTP/SNTP
- Ports RS232/422/485 : envoi de commandes
- Ports E/S "directs" : 8 entrées analogiques + 8 entrées logiques
- Ports d'extension GPIO : 16 entrées logiques + 16 sorties logiques

   

Schéma

Le schéma repose sur un PIC 32MX575F512H associé à plusieurs circuits d'interface (Ethernet, RS232-TTL/USB, RS422/RS485). 
   
telecommande_016b
Schéma avec adaptateur Ethernet ENC28J60, d'autres adaptateurs Ethernet peuvent être utilisés

   

Deux liaisons série "RSxxx" sont prévues : Tx2/Rx2 et Tx5/Rx5. La liaison série Tx2/Rx2 du PIC est dédiée aux interfaces RS422 et RS485, tandis que la liaison série Tx5/Rx5 du même PIC est utilisée pour le suivi des actions (log-historique) en RS232. Cette dernière fait appel à un convertisseur RS232-TTL/USB (adaptateur CH340) pour simplifier la liaison avec un ordinateur (pas besoin d'adaptateur externe). 

   
Fonctionnement général
Le PIC est constament en attente de commandes utilisateur locales (boutons-poussoirs) ou de commandes véhiculées par le réseau Ethernet. Dans le premier cas, il délivre des trames de commande TCP ou UDP. Dans le second cas, il active des sorties GPIO via un expandeur de port MCP23S17 ou envoie des ordres par Ethernet. Les ordres émis sur le réseau Ethernet sont au format TCP ou UDP et encapsulent des ordres construits sur le protocole TSL5.0. Les ordres ou états reçus peuvent véhiculer des commandes au format ASCII ou hexa, là aussi éventuellement construits sur le protocole TSL5.0.
   
Commandes utilisateur manuelle
Les commandes utilisateur manuelles sont au nombre de 8 pour les voies logiques et de 8 pour les voies analogiques. Ce nombre de voies d'entrées peut être réduits dans le cas où une journalisation des évènements est requise (ajout d'une horloge RTC non volatile et d'une mémoire flash externe non visibles sur le schéma général montré précédement).
   
Interface Ethernet
Le microcontrôleur PIC32MX utilisé ici ne comporte pas de module Ethernet interne, raison pour laquelle un circuit d'interface Ethernet externe a été ajouté. Le dialogue entre le module Ethernet et le microcontrôleur se fait en SPI. La télécommande a été conçue pour pouvoir travailler avec les modules encodeurs Ethernet suivants :
Nota 1 : le contrôleur Ethernet ENC28J60 ne dispose pas d'une adresse MAC enregistrée, contrairement aux autres encodeurs Ethernet.
Nota 2 : module retenu pour la première version de cette télécommande 

Remarque : le choix d'un PIC comportant en interne un module Ethernet (par exemple PIC32MX675F512L ou PIC18F97J60) n'était pas souhaité par le demandeur qui préférait pouvoir changer facilement de module Ethernet en cas de nécessité. Tous les modules Ethernet sont implantés sur un PCB enfichable au format Mikrobus de Mikroe, exception faite du module Ethernet à base de ENC624J600 qui lui est doté d'un plus grand nombre de connecteurs pour permettre un accès aux données en mode parallèle.

 
Interface série RS232-TTL/USB
Module faisant usage d'un convertisseur RS232-TTL/USB de type CH340. Cette interface étant principalement utilisée pour le journal de bord (log/historique des actions), le module d'horloge temps réel (RTC) du PIC est mis à contribution pour l'horodatage des événements (base de temps traditionnelle de 32,768 kHz avec quartz d'horloger).
   
Interfaces série RS422/RS485
Module faisant usage de circuits d'interface ligne de type MAX485/MAX487 pour les deux liaisons différentielles RS422 et RS485 (une seule des deux liaisons pouvant être active).
   
Configuration (paramètres utilisateurs)
La configuration des paramètres de liaison (vitesse de transfert pour les liaisons RSxxx, adresse IP, masque réseau, passerelle et ports TCP/UDP pour la liaison Ethernet) peut être assurée de deux manières : soit par la liaison série Tx5/Rx5, soit par une interface serveur WEB embarquée.
  
Journalisation (historique des événements)
La sauvegarde de l'historique des événements est assuré par une mémoire externe SPI de 1Mb type 25AA1024. Les événements sont "codés" pour une simple question de place mémoire. Le "décodage" est réalisé en interne par le logiciel du PIC au moment de la visualisation lu log.

Alimentation
L'alimentation requise par cette télécommande est de 3V3. La tension d'alimentation fournie sur place étant de 12V, un circuit de régulation a été prévu. La consommation globale est au maximum de 200 mA, le plus gros consommateur étant ici le module Ethernet. La dissipation de puissance du régulateur de tension est proche de 2 W, ce qui justifie l'emploi d'un dissipateur thermique.

   

Prototype

Réalisé conformément au PCB visible plus loin. J'avoue que le soudage du PIC32 au format CMS m'a donné un peu de fil à retordre.
   
telecommande_016b_proto_rm_001a telecommande_016b_proto_rm_001b telecommande_016b_proto_rm_001c 
 
L'interfaçage Ethernet peut ici être confiée à un module à base de ENC28J60, ENC624J600, W5100, W5500, LAN9250 ou LAN9252. Sur les photos ci-devant, c'est un module ENC624J600 qui est en action. Les photos qui suivent montre les quatres modules compatibles avec la télécommande (sous réserve bien sûr que le logiciel du PIC soit adapté en conséquence).
 
telecommande_016b_proto_rm_001f telecommande_016b_proto_rm_001e  
 
Le module le plus à gauche visible sur la première photo ci-devant est le seul à ne pas être proposé au format "Mikrobus" de la société Mikroe, c'est aussi le seul à ne pas "déborder" de la carte principale. Il possède 44 points de connexion pour une manipulation des données possible en mode parallèle - ici seuls quatres points sont utilisés pour la liaison SPI avec le microcontrôleur. Le module le plus à droite ci-devant est doté de deux ports/PHY (EtherCAT LAN9252). La photo qui suit montre le prototype en phase finale de test :

telecommande_016b_proto_rm_001g

Liaison Ethernet OK en mode serveur/client pour les commandes TCP et UDP. Mise à jour effective de l'horloge RTCC du PIC par le protocole NTP/SNTP. Expandeur de port OK en entrées/sorties. La seule fonction pas encore testée est la journalisation des évènements, faute de mémoire externe sous la main au moment des tests principaux (j'ai opté pour une mémoire de 1 Mb).

   

Circuit imprimé (PCB)

Circuit prototype réalisé en double face.

telecommande_016b_pcb_components_top

Circuit actuellement testé avec succès avec les encodeurs Ethernet ENC28J60 et ENC624J600.

   

Logiciel du PIC

Logiciel de test terminé et fonctionnel (sauf journalisation dans mémoire externe).
Télécommande 016b - PIC32MX575F512H - 29/06/2025
Pro - Logiciel non disponible en libre accès.

   

Historique

29/06/2025
- Ajout photos prototype après tests avancés.
25/05/2025
- Première mise à disposition.