CONFIGURATION DE LA CARTE RTk.GPIO POUR L’EXPÉRIMENTATION


MENU

  1. Présentation de la carte

  2. Propriétés de la liaison série

  3. Microcontrôleur, 32bit, 8 ko RAM, 64 Ko, 48MHz, LQFP 48, série STM32F0

  4. Installation
    1. Connexion à un ordinateur portable fonctionnant sous Ubuntu 22.04LTS
    2. Connexion à un Raspberry Pi 4B
    3. Connexion à un Raspberry Pi 5

  5. Propriétés de carte RTk.GPIO - Résumé et restrictions


1 Présentation de la carte

La carte RTk.GPIO de Ryanteck permet d'abord de connecter le monde de l'informatique physique (par l'intermédiaire de ses ports GPIO) à un PC de bureau, un ordinateur portable ou un Raspberry Pi (par l'intermédiaire d'un port USB).

Elle peut donc aussi compléter (mais avec limitations) les broches GPIO d'un Raspberry Pi en cas de besoin de broches supplémentaires.

En fait, le connecteur 40 broches de la carte RTk.GPIO émule, dans ses fonctions de base, le connecteur GPIO 40 broches d'un Raspberry Pi permettant ainsi de tester sur un ordinateur, des programmes destinés à un Raspberry Pi. Cependant les potentialités sont réduites par rapport au connecteur J8.

La carte est entièrement compatible avec Windows, Mac OS et Linux (mais on n'utilise ici que Linux) et prend en charge une gamme de langages de programmation tels que Python, Java ou Scratch.

Il ne faut installer aucun logiciel sur le PC Linux avant de le relier à la carte RTk.GPIO.
La liaison entre le PC et la carte RTk.GPIO se fait par l'intermédiaire d'un câble USB avec un connecteur micro-USB du côté carte et un connecteur USBA du côté PC.

Voici quelques images de la carte et de détails :


Dimensions en mm : 19*56*85


9.jpg 11.jpg

2 Propriétés de la liaison série

La carte RTk.GPIO est un disposif qui produit un nouveau sous-répertoire dans le répertoire /dev/. Ainsi, avant et après le branchement de la carte RTk.GPIO par exemple à odinateur portable fonctionnant sous Ubuntu, la commande ls /dev/tty* dans un terminal fournit par différence le répertoire /dev/ttyUSB0 ou /dev/ttyUSB1, ou ... .

Toujours par différence, la commande lsusb permet de découvrir que la carte est identifiée par : QinHeng Electronics CH340 serial converter et la commande lsusb -v donne des détails et en particulier :iProduct 2 USB2.0-Serial.
La commandelsusb -t permet de découvrir que le pilote de la carte est : Driver=ch341, 12M

Supposons que le nouveau répertoire soit /dev/ttyUSB0, alors la commande stty -F /dev/ttyUSB0 donne les caratéristiques initiales de la liaison série :
speed 9600 baud; line = 0;
-brkint -imaxbel

Pour la commande stty et ses options, voir
https://fr.manpages.org/stty.

Maintenant, dans un autre terminal, on lance la commande python3 qui permet d'utiliser python en ligne de commande, et on envoie
>>> import RTk.GPIO produisant la réponse
RTk.GPIO Found on port: /dev/ttyUSB0

Si maintenant, en revenant au premier terminal, on envoie de nouveau la commande stty -F /dev/ttyUSB0, alors on s'aperçoit que les caractéristiques de la liaison série ont changé :
speed 230400 baud; line = 0;
min = 0; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke


3 Composants de la carte

3.1 Schéma de la carte RTk.GPIO



https://www.parlezvoustech.com/bridge-usb-uart-tout-comprendre-en-animations/

L'architecture du système faisant intervenir la carte RTk.GPIO est simple : Le système hôte est relié par l'intermédiaire du port USB à la puce CH340G qui est un convertisseur série bidirectionnel servant d'interface avec le dispositif série qui lui est connecté (ici le microcontrôleur STM32F et ses périphériques). Lors de sa connexion de la carte RTk.GPIO, le système hôte détecte donc le convertisseur série CH340 qui est "Plug and Play" et non pas le dispositif série qui lui est connecté.


https://wch-ic.com/products/CH340.html

3.1 Connecteur GPIO

Le connecteur GPIO est semblable à celui du Raspberry Pi 4B et est décrit dans la partie 2 qui lui est consacrée.

3.2 Microcontrôleur STM32F030C8T6

Le composant principal de la carte est le microcontrôleur, 32bit, 8 ko RAM, 64 Ko, 48MHz, LQFP 48, série STM32F0.

Il s’agit ici de la puce STM32F030C8T6. Ce microcontrôleur, fondé sur l'ARM Cortex-M0 est muni du cœur RISC 32 bits ARM Cortex™-M0 de niveau d'entrée. La série STM32F030 Value Line intègre une mémoire à haute vitesse, ainsi qu'une vaste gamme d'E/S et de périphériques avancés. Il existe des interfaces de communication telles que I2C, SPI et USART, plus ADC 12 bits, minuteurs 16 bits et minuteur PWM de commande avancée.

L'architecture de pointe des microcontrôleurs STMicroelectronics STM32, combinée avec la plate-forme STM32, permet la conception d'applications de faible puissance qui sont proposées dans différents types de boîtier. Le processeur à cœur ARM Cortex™-M0 avec mémoire Flash et mémoire statique intégrées est compatible avec tous les outils et logiciels ARM.

Les microcontrôleurs munis d'un processeur ARM STM32F030 sont adaptés à une vaste gamme d'applications comme le contrôle d'applications et les interfaces utilisateurs, les équipements portables, les récepteurs A/V, les périphériques de PC, les consoles de jeux, les appareils ménagers, les imprimantes, les systèmes d'alarme et les installations de CVCR.

uProc.jpg

Le processeur ARM Cortex™ M de la famille STM32 de STMicroelectronics bénéficie des améliorations architecturales du Cortex-M0, incluant traitement numérique du signal, performances en temps réel, faible tension et faible consommation. La série générique ARM® STM32 F0 de ST offre des performances 32 bits. Grâce à ses fonctions faciles à utiliser, elle est idéale pour les décisions de petits projets ou plates-formes.

3.3 Connecteur I2C

Le connecteur I2C est un connecteur dérivé du connecteur GPIO à 40 broches. Il permet de connecter directement des appareils I2C à la carte RTK.GPIO et de garder le connecteur GPIO libre.
    BROCHES :
  1. 5V
  2. SDA
  3. SCL
  4. GND

3.4 Connecteur UART

Le connecteur UART est un autre moyen de connecter la carte RTK.GPIO à l'ordinateur en utilisant la communication série vers USB. Le connecteur UART est connecté au circuit intégré CH340G, qui convertit le signal et l'envoie au microprocesseur. Le connecteur est séparé pour pouvoir envoyer des commandes directement au RTk.GPIO en se connectant à ces broches.
    BROCHES :
  1. 5V
  2. RX
  3. TX
  4. GND

3.5 Connecteur PROG

Le connecteur PROG permet de programmer directement le microprocesseur STM32F030 à l'aide des programmeurs ST Link, ST Nucleo Programmer ou Clone ST Link.
    BROCHES :
  1. SWDIO
  2. SWCLK
  3. Reset
  4. GND

3.6 CH340G - Pont USB/UART

Les connecteurs micro USB et UART sont connectés à l'interface de la puce série, qui convertit l'USB en série UART ou vice versa lors de la communication entre le MCU et l'ordinateur.

Le CH340G sur le RTk.GPIO utilise le mode UART en 3V3. Le RTk.GPIO utilise un débit de 230400bauds.

4 Installation de la carte RTk.GPIO

4.1 Connexion à un ordinateur portable fonctionnant sous Ubuntu 22.04LTS

Voici les étapes pour installer la carte RTk.GPIO sous Linux :
  1. Changement d'autorisation

    Pour commencer, on ajoute l'utilisateur au groupe dialout". Cela signifie qu'après l'installation, il n’y a plus besoin d'utiliser sudo pour exécuter les programmes python. Ouvrir un terminal Linux et taper la commande suivante :
    sudo usermod -a -G dialout $USER

  2. Exigences Python

    Il faut naturellement que python et ses bibliothèques soient installés. En principe, c’est déjà fait. Pour s’en assurer, dans un terminal, on peut taper la commande suivante :
    sudo apt-get install python3-pip python3-setuptools python3-wheel

  3. Redémarrer et brancher

    Pour s’assurer que tout est bien installé et synchronisé, il est recommandé de redémarrer. Après avoir redémarré le système, on peut brancher la carte RTk.GPIO dans un port USB et on doit voir la LED rouge de la carte s'allumer.

    On peut vérifier que la carte est bien reconnue en lançant l'instruction Linux
    lsusb
    Dans la liste, on reconnait :

    QinHeng Electronics CH340 serial converter

  4. Installation de la bibliothèque RTk.GPIO

    Il existe plusieurs façons d'installer la bibliothèque RTk.GPIO. Le moyen le plus simple consiste à utiliser le système de gestion "Python in Package" (PIP3). Pour installer la bibliothèque RTk.GPIO, il faut taper la commande suivante depuis un terminal :
    sudo pip3 install RTk La remarque désobligeante qui s’en suit suggère d’envoyer aussi la commande suivante :
    pip3 install RTk

    Deux difficultés sont apparues avec Ubuntu 24.04 LTS et python3.12 :

    1 - L'utilisation de pip3 conduit à un échec "This environment is externally managed".
    Pour y remédier, on envoie l'instruction
    sudo rm /usr/lib/python3.12/EXTERNALLY-MANAGED
    et on peut reprendre l'installation en échec.

    2 - Malheureusement RTk.GPIO ne semble plus être apprécié par python3.12. Il a donc fallu télécharger le ficher
    RTk-0.3.14-py2.py3-none-any.whl
    et procéder directement à son installation
    pip3 install RTk-0.3.14-py2.py3-none-any.whl

  5. Test

    La carte RTk.GPIO a été acquise en complément du Raspberry Pi 4B déjà testé. C'est pourquoi, sa prise en main fait usage des connaissances acquises sur le Raspberry Pi 4B.

    Dans le petit programme python LedOnOff2.py , présenté plus loin pour tester RPi.GPIO, on remplace

    import RPi.GPIO as gp
    par
    import RTk.GPIO as gp
    et le programme peut alors être exécuté.

    Malheureusement, ça ne fonctionne pas pour toutes les distributions. Nous avons rencontré le message suivant généré à l’exécution :
    Error: RTk.GPIO not detected.
    For more support please visit our website at http://Ryanteck.com/rtk-000-00C
    Press enter to close.

    La raison et la solution de ce problème est loin d’être évidente. La référence donne la solution.
    Il faut taper dans un terminal l’instruction suivante :
    sudo apt remove brltty
    qui supprime l’utilisation d’un afficheur braille !!!
    Il faut ensuite débrancher puis rebrancher la carte Rtk.GPIO.
    Maintenant, le programme fonctionne.

4.2 Connexion à un Raspberry Pi 4B

Faire fonctionner la carte RTk.GPIO sur RaspberryPi 4B n'a posé aucun autre problème. Il suffit d'installer la bibliothèque RTk.

4.3 Connexion à un Raspberry Pi 5

Installer le logiciel sur Raspberry Pi 5 n'a pas été de soi. Bien que la commande lsusb dans un terminal montre que le module (QinHeng Electronics CH340 serial converter) est bien reconnu, la commande d'installation pip3 install RTk (ou toute autre bibliothèque d'ailleurs) conduit à un échec "This environment is externally managed".
Pour y remédier, on envoie l'instruction sudo rm EXTERNALLY-MANAGED et on peut reprendre l'installation en échec.

5 Propriétés de carte RTk.GPIO - Résumé et restrictions

Protocole RTK.GPIO
Le RTK.GPIO est un système à microprocesseur doté d'une interface série et d'un connecteur GIO RPi 40 broches.

USB – CH340 UART – STM cpu – RPi GPIO 40 broches Le RPi est électriquement identique au RPi (tous les signaux à 3.3V E/S).
Parmi les connecteurs RPi, les suivants sont pris en charge : Protocole série (basé sur l'étude de la source du firmware main.cpp version RTk-2016-01-05-FINAL)
Un protocole simple et peu robuste, pas d'ACK, juste un message d'erreur E1, pas de vérification d'erreur complète, la commande de version renvoie une chaîne sans CRLF
Physique : Après la mise sous tension