pymite_stm32f4 / source / index.rst

Documentation sur python et le STM32F4 :

Warning

Cette documentation ne porte que sur la plateforme linux. Il sera donc nécessaire de la compléter pour win32, et Mac Os.

Warning

Pymite ne fonctionne qu'avec PYTHON 2.6 et rien d'autre

Warning

ipm ne fonctionne pas encore sur le STM32F4, pour la simple raison que le code qui devrait assurer cette fonction n'est pas développé (cf le fichier plat.c où il reste à développer la communication avec la liaison série, pour récupérer le code à exécuter ainsi que renvoyer le résultat de l'exécution)

Warning

Il est relativement important de récupérer les sources proposés par J.SCHEMOUL (cf pycon fr 2012) pour le STM32F4. en attendant d'avoir un packaging simple à proposer. sinon les dépôts suivant pour remplacer ces éléments, il restera à vous procurer la toolchain fournie par ST (arm-none-eabi-gdb) :

  • pymite fork (ce dépôt est à jour et résout pas mal de problème de compilation)
  • stlink (ce dépôt est à jour et est nettement plus performant que l'archive de pycon)

Introduction sur la plaque STM32F4 (discovery) :

La rencontre de python et du STM32F4

Le STM32F4 est composé d'un microcontroleur ARM 32 bits,

  • quelques éléments de documentation :

    • sélectionnez ensuite l'archive STM32F4 DSP and standard peripherals library, including 82 examples for 26 different peripherals and template project for 5 different IDEs cette archive contient notamment, un fichier .chm contenant toute la documentation sur la librairie c/c++ mis à disposition ainsi que les 82 exemples en c/c++. Ce qui pourrait faire un point de départ intéressant pour tous les gens qui souhaitent développer des librairies pour permettre d'accéder à des périphériques internes ou externes.
  • Quelques caractéristiques :

    • 32 bit
    • 168 MHZ
    • USB otg
    • ADC
    • SPI,12C
    • Micro 12S, DAC
    • Sortie son
    • Accéléromètre
    • Des leds
    • 3 ADC accessible en DMA
  • En résumé :

    • les plus :

      • Coût/Puissance : Une carte très intéressante (12€ -> 17€ selon les sites) car moins cher qu'un arduino basic,

        mais nettement plus puissante. Comprenez : L'arduino apparait alors comme un tracteur et pour un coût bien plus élevé. Enfin bon, on trouve toujours des fans de moisonneuse :)

      • Des périphériques en plus : (Accéléromètre, leds incorporés, possibilité de lire et d'enregistrer du son)

      • Language : Python 2.6, grâce à la mémoire dont il dispose, on arrive à embarquer

        une vm python et votre programme python. Ceci est rendu possible grâce au projet pymite

      • GPIO : la carte est très riche côté pin /GPIO (un plus face à l'arduino de base)

    • les moins :

      • Documentation :

        très peu de documentation END USER, de blog, tutorial, ou site parlant de cette plateforme. Apparement ce sont des japonais qui se sont intéressés les premiers à cette plateforme pour y intégrer python.

      • Librairies :

        Il y a nettement moins de librairies pour accéder à des périphérique comme un écran LCD. La plateforme est par contre plus récente que l'Arduino et ne bénéficie donc pas d'une communeauté aussi forte ...

      • Packaging & Debug :

        Un manque certain de facilité, par rapport à l'IDE de l'ARDUINO où toutes les difficulté techniques sont masqués à l'utilisateur. Le debug n'est pas inclu également ...

Note

Si vous voulez faire du debug, il vous faut rajouter un petit bout d'électronique (FOCA) pour utiliser la console série (UART) de la carte (on branche deux fils nécessaires : TXD=>PA3 et RXD=>PA2 qui vont bien et on connecte l'engin sur un autre port usb, il ne restera plus qu'à écouter sur l'usb avec putty par exemple :

putty -serial -sercfg 57600 /dev/ttyUSB0

Note

La vitesse (57600 dans l'exemple) dépend de la valeur saisie dans le fichier src/platform/stm32f4/SConscript 57600 fait référence à la valeur utilisée dans le dépôt https://bitbucket.org/tuck/pymite

Pymite :

Ce projet fait partit du projet, python on a chip, pymite permet de faire fonctionner une vm python sur un micro controleur. La vm fonctionne avec des greenthreads, scheduler interne qui gère les threads ...

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.