La carte Pico de Raspberry Pi est appréciable à bien des égards. Ses ressources, son prix, ses deux cœurs ARM... Mais ce morceau de silicium qu'est le RP2040 renferme une fonctionnalité unique : des blocs PIO permettant de créer librement des périphériques supplémentaires qu'il s'agisse d'éléments standardisés comme SPI, UART ou i2c, ou des choses totalement exotiques et très spécifiques à un projet ou un environnement donné. Voyons ensemble comment prendre en main cette ressource et explorer le monde fantastique des huit machines à états de la Pico !
La plupart des microcontrôleurs intègrent un nombre fini de périphériques comme des compteurs, des ports SPI, des interfaces i2c, des UART/USART ou encore des canaux PWM. Si nous prenons le cas du, maintenant vénérable, mais vieillissant, ATmega328P équipant les Arduino UNO, nous avons par exemple une unique interface USART. Si nous en avons besoin d'une seconde, la seule solution est de migrer vers un autre microcontrôleur et donc une autre carte Arduino comme l'Arduino Mega 2560.
D'autres approches sont possibles comme générer de façon logicielle les signaux et contrôler ainsi les GPIO. Ceci s'appelle du bit banging et est très précisément ce que fait la bibliothèque SoftwareSerial du monde Arduino. Seul problème, ceci reste un hack et impose des limitations évidentes en termes de vitesse et de praticité. SoftwareSerial est incapable de soutenir une communication à 230400 bps et au-delà. Écartons également l'approche consistant à utiliser un FPGA ou un...
- 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