Archives par mot-clé : PIC32

A l’étroit avec un Arduino ou un LaunchPad ?

Texas Instruments fait encore une fois très fort! Si vous vous sentez restreints dans vos ambitions par les performances et les capacités mémoires limitées des ATMega328 ou MSP430G2553 des Arduino (http://arduino NULL.cc/en/Main/Hardware) ou LaunchPad, courrez acheter un Stellaris LaunchPad.

StellarPad (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/10/med_ek-lm4f120xl_stellarislaunchpad_tool NULL.jpg)Non seulement le Stellaris LaunchPad LM4F120 (http://www NULL.ti NULL.com/tool/ek-lm4f120xl#buy) embarque un processeur beaucoup plus puissant que tout ceux dont j’ai parlé jusqu’à présent, mais offert au prix de 5 USD par TI il est à peine plus cher que le LaunchPad et surtout 4 fois moins cher que n’importe lequel des Arduino!!! Ce nouveau petit jouet embarque un processeur 32 bits Stellaris LM4F120H5QR (http://www NULL.ti NULL.com/product/lm4f120h5qr) construit sur l’architecture Cortex M4F d’ARM, la version “électronique embarquée” des processeur tournant aujourd’hui des les iPad, iPhone. Tournant à 80MHz et possédant 256Ko de flash et 32Ko de SRAM, il est le chaînon manquant entre la catégorie “Arduino” et la catégorie “Rabsperry Pi”, plus proche des ChipKIT dont je vous parlais récemment (http://xv4y NULL.radioclub NULL.asia/2012/09/20/programmer-un-micro-controleur-pic-comme-un-arduino/). Le nombre des entrées-sorties, périphérique et canaux de communications est aussi à l’avenant, de quoi penser à de gros projets…

Cerise sur le gâteau, Robert Wessels vient de m’informer qu’il travaille sur l’incorporation du StellarPad (plus court que Stellaris LaunchPad) à Energia et qu’il sera donc très prochainement possible de programmer ce micro-contrôleur exactement comme un LaunchPad MSP430 ou un Arduino. Si après tout cela vous n’avez pas encore commandé celui-ci chez Texas Instruments, je ne sais pas ce qu’il me reste à faire!

Programmer un micro-contrôleur PIC comme un Arduino [MAJ]

ChipKIT Max32 (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/09/chipKIT-Max32-obl-500 NULL.jpg)Après Energia pour la plateforme LaunchPad à MSP430 de Texas Instruments (http://xv4y NULL.radioclub NULL.asia/2012/04/27/les-micro-controleurs-msp430-de-texas-instruments/), voici une autre alternative sérieuse à Arduino. Sérieuse d’une part parce qu’elle est 100% fonctionnelle et disponible facilement, et d’autre part parce qu’elle offre des spécificités intéressantes par rapport à Arduino ou LaunchPad.

Il s’agit de l’initiative ChipKIT (http://chipkit NULL.org/wiki/index NULL.php?title=Main_Page) de Microchip (le créateur de la famille de micro-contrôleurs PIC). Cette plateforme est composée d’un côté de circuits reprenant volontairement le format des Arduino UNO, Mega et consorts, et qui sont vendus par Digilent sous le nom de ChipKIT Uno32, ChipKIT Max32, etc (http://www NULL.digilentinc NULL.com/Products/Catalog NULL.cfm?NavPath=2,892&Cat=18), et d’un autre côté d’un environnement de développement (IDE) appelé MPIDE et basé sur Arduino mais produisant du code pour les PIC.

ChipKIT-WiFi (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/09/chipKIT-WiFi-Shield-obl-600 NULL.jpg)Je ne rentrerais pas dans le débat de savoir quelle architecture est supérieure à l’autre entre AVR, PIC ou   MSP430, car tout dépend de vos besoins. Il est toutefois intéressant de noter que ces cartes intègrent des microprocesseurs PIC32 qui bien qu’ils portent le même nom utilisent une architecture interne toute différente des PIC16 traditionnels. Les PIC32 sont des processeurs 32bits de type MIPS32 et qui sont cadencés à 80MHz sur les cartes ChipKIT. La mémoire Flash embarquée va de 128Ko à 512Ko et la RAM de 16Ko à 128Ko. Contrairement aux AVR les PIC32 ne contiennent pas d’EEPROM, mais la carte ChipKIT MAX32 inclue un circuit EEPROM accessible par I2C. Comparer les performances entre deux architectures différentes est très difficile et il ne faut pas se fier aux chiffres. Toutefois il est fort probable que pour un prix équivalent les ChipKIT offrent des performances et des fonctionnalités supérieures aux Arduino, sans égaler le rapport qualité / prix du LaunchPad (http://www NULL.ti NULL.com/tool/msp-exp430g2) bien entendu.

MAJ : J’ai eu le temps de me documenter un peu plus sur l’architecture PIC32 (http://www NULL.microchip NULL.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en542879 NULL.pdf) et c’est vraiment une architecture plus avancée que l’AVR d’Atmel. Elle offre des performances plus grandes (1,5 Drystone MIPS / MHz), un système de bus matriciel à haute vitesse, un cache à anticipation pour l’accès à la Flash et un mécanisme pour améliorer la compacité code (mélange d’instructions 16 et 32 bits apportant une réduction de 40% du code). L’architecture comparable chez Atmel s’appelle AVR32 (http://en NULL.wikipedia NULL.org/wiki/AVR32) et possède d’autre arguments en sa faveur (instructions SIMD et DSP, machine virtuelle JAVA par exemple). Actuellement aucun projet comparable à Arduino n’est disponible pour AVR32. Après tout cela, même si PIC32 est plus puissante que AVR, cela ne veut pas dire que vous en tirerez parti. Pour faire clignoter une LED, faire un manipulateur électronique ou même piloter un DDS, les Arduino actuels sont plus que largement suffisants.

Il est intéressant de noter que Microchip fait ouvertement référence à Arduino et vante la compatibilité physique et la portabilité du code entre les deux. Les shields proposés par Digilent sont aussi très intéressants et l’idée d’accéder à un Arduino par WiFi me trotte toujours dans la tête (le problème c’est que je n’ai pas trouvé d’application pratique et concrète!). A noter que comme le MSP430, le PIC32 utilise des tensions de 3,3V là où les ATMega sont en 5V. En pratique ça ne pose pas de problèmes, mais c’est à prendre en compte quand vous concevez vos circuits ou adaptez un circuit existant venant du monde Arduino.

On entend souvent la remarque suivante : ” Pour le même prix qu’un Arduino Mega (ou un ChipKIT MAX32) on peut avoir un Rapsberry PI ou une platine de développement à base (http://www NULL.arm9board NULL.net/sel/prddetail NULL.aspx?id=337&pid=199)Carte ARM9 OK6410 (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/09/OK6410_itf NULL.jpg)d’ARM (http://www NULL.arm9board NULL.net/sel/prddetail NULL.aspx?id=337&pid=199) qui sera beaucoup plus puissante! “. C’est à la fois vrai et faux. C’est vrai qu’en terme de puissance brute, de mémoire et de fonctionnalités, une carte à base d’ARM9 fait beaucoup mieux qu’un Arduino Mega. Toutefois, en terme de facilité d’accès aux périphériques et de robustesse, le micro-contrôleur l’emporte haut la main. Sur un “PC embarqué”, le système d’exploitation rajoute une couche non négligeable et le temps de développement pour un petit projet sera multiplié par 10. L’autre avantage net du micro-contrôleur c’est qu’une fois votre code rodé, vous pouvez très facilement concevoir vos circuits indépendants utilisant le micro-contrôleur sans la carte autour. Si vous voulez concevoir des petites séries, la réduction des coûts et la simplification du matériel sont très importantes. Là encore, tout dépend de vos besoins, mais pour le bricoleur occasionnel comme moi, le micro-contrôleur est ce qui offre le plus d’avantages.