mardi 21 août 2018

blue pill (introduction)

Il y a 1 peu plus d'un an j'ai découvert l'existence d'une carte de développement très économique basée sur un µC STM32F103C8T6. Il s'agit d'un µC 32 bits Cortex M3. Suite à la lecture de l'article suivant sur hackaday, j'en ai commander 5 sur ebay.ca. Cette carte a étée bâptisée blue pill.

Cet article est le premier d'une série sur la programmation de la blue pill en utilisant différents outils.

  • Programmation en utilisant Arduino IDE.
  • Programmation en C en utilisant les outils GNU arm-none-eabi.
  • Programmation en utilisant MECRISP Forth.
  • Programmation en utilisant la plateforme WEB mbed.
  • J'ai créé un dépôt sur github pour cet série d'articles.

Pré-requis

Je travaille sous Ubuntu 16.04 LTS les descriptions que je vais faire sont donc pour cette plateforme. Ça devrait aussi être valide pour une autre distribution Linux basé sur Debian-Linux.

Dans cette première partie je vais décrire comment installer les outils de développement qui seront nécessaires pour les prochains articles.

Blue pill

Voici la schématique de la carte blue pill

Sur les cartes que j'ai en main la résistance R10 a une valeur de 10k au lieu des 4k7 montré sur cette schématique. Ce sera à prendre en considération lorsque viendra le temps d'utiliser cette carte avec Ardruino IDE.

Discription des broches

STM32F103C8T6

Voici les principales caractéristiques du µC qui est installé sur cette carte.

  • Coeur ARM Cortex M3, Fsys maximale 72Mhz.
  • Mémoire flash 64Ko
  • Mémoire RAM 20Ko
  • 3 timers usage général et 1 avancé.
  • 2 SPI
  • 2 I2C
  • 3 USART
  • 1 USB
  • 1 CAN
  • 37 GPIO
  • 2 ADC 10 canaux résolution 12 bits
  • datasheet

STLINK-V2

Pour programmer la carte il faut un programmeur STLINK-V2. Heureusement un clone de ce programmeur est aussi disponible sur ebay.ca à petit prix.

Installation des outils logiciels.

Pour les étapes d'installation logicielle vous devez être membre du groupe sudo car des privilèges root sont requis pour certaines étapes.

utilitaire ST-LINK

Les utilitaires ST-LINK sont disponibles en open-source sur https://github.com/texane/stlink.
Étapes à suivre à partir de la ligne de commande i.e. sous Ubuntu on fait <CTRL>-<ALT>-T pour ouvrir la console de comamdes.

  1. Installer les outils de développement gcc et binutils.
    sudo apt install gcc binutils
  2. Installer l'utilitaire cmake.
    sudo apt install cmake
  3. Installer libusb-dev
    sudo apt install libusb-dev
  4. Cloner le dépôt https://github.com/texane/stlink.
    J'ai créé un dossier ~/Documents/blue pill dans lequel j'ai cloné le dépôt:
    git clone https://github.com/texane/stlink
  5. Lancer cmake à partir du dossier stlink pour créer les fichiers de configurations utilisés par make. N'oubliez pas le point après cmake pour indiquer à cmake qu'il travaille à partir du répertoire courant.
    cmake .
  6. Lancer make
    make
  7. Lancer make install. Utilisez sudo car les privilèges root sont requis.
    sudo make install.
    Les utilitaires sont installés dans /usr/local
  8. Modifier /etc/ld.so.conf pour indiquer le chemin des librairies utilisées par st-link. Utilisez votre éditeur de texte préféré et ajouter à la fin du fichier /etc/ld.so.conf la ligne /usr/local/lib et sauvegarder. sudo est requis.
    sudo gedit /etc/ld.so.conf
    cat /etc/ld.so.conf
    include /etc/ld.so.conf.d/*.conf
    /usr/local/lib
    On recharge la configuration avec la commande.
    $ sudo ldconfig
  9. Maintenant branchez le programmeur ST LINK v2 dans un port USB. Faites la commande
    $ lsusb
    Bus 002 Device 007: ID 0483:3748 STMicroelectronics ST-LINK/V2
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 0461:0010 Primax Electronics, Ltd HP PR1101U / Primax PMX-KPR1101U Keyboard
    Bus 001 Device 003: ID 0000:0538
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Assurez-vous que votre système a bien détecter le programmeur identifié par STMicroelectronics ST-LINK/V2

Branchement de la carte blue pill

Le programmeur viens avec un petit cable à 4 fils. Les connections sont bien identifiées sur le programmeur et sur le connecteur à 4 broches qui dépassent au bout de la carte blue pill.

broche programmeurbroche carte
GND (4)GND
3v3 (8)3v3
SWCLK (6)SWCLK
SWDIO (2)SWIO

Maintenant on va essayer l'utilitaire st-info avec l'option --probe qui devrait nous afficher les informations sur le programmeur et la µC qui y est branché.

$ st-info --probe
Found 1 stlink programmers
serial: 483f6e066772574857351967
openocd: "\x48\x3f\x6e\x06\x67\x72\x57\x48\x57\x35\x19\x67"
flash: 65536 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1 Medium-density device
$
On obtient les informations sur le µC branché au programmeur c'est bon signe, on devrait pouvoir le programmer en utilisant st-flash

Nous avons donc complété la première étape de cette série d'articles dans le prochain article nous allons voir comment programmer la blue pill à partir de l'environnement Arduino IDE.

Aucun commentaire:

Publier un commentaire

Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.