Article réservé aux abonnés

Raspberry Pi Pico : PIO, DMA et mémoire flash

Raspberry Pi Pico : PIO, DMA et mémoire flash
Spécialité(s)


Résumé

Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.


Comme nous l'avons vu dans un article précédent, le sous-système PIO intégré au RP2040 est constitué de deux instances PIO disposant chacune de quatre machines à états. Celles-ci peuvent exécuter un programme, placé dans une mémoire spécifique de 32 instructions pour chaque instance, et ont pour tâche principale de contrôler les GPIO. La raison d'être primaire de ce sous-système est d'éliminer totalement la nécessité d'avoir recours au bit-banging ou, en d'autres termes, d'implémenter de façon logicielle des protocoles de communication ou de signalement.

Il en résulte la possibilité de créer de nouveaux périphériques, au cœur même du composant, sans surcharger le code ARM inutilement, celui-ci se contentant de configurer la ou les machines à états et de communiquer avec elles via des buffers FIFO. Le programme exécuté par une machine à états est écrit dans un langage assembleur basique utilisant une dizaine d'instructions. Ce code est...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous