Skyduino:~#
Articles
Autre, C/C++, Corrigé, programmation, test, tutoriel

[Test] Launchpad MSP430, low-cost mais trés complet !

Bonjour tout le monde !

Aujourd’hui je vais vous présenter une carte de développement qui fait parler d’elle depuis déjà quelques temps, mais que je n’avais pas encore pu tester.
La carte en question n’est autre que la désormais célèbre MSP430 « Launchpad ».

A 4.5€ pièce, pourquoi se priver, mieux vaut en prendre deux 🙂
(Lisez bien l’intégralité de ce test avant de vous lancer, vous comprendrez pourquoi ;))

La launchpad est livrée dans une jolie boite en carton, qui au premier coup d’œil semble bien grosse pour ce qu’elle devrait contenir.
On remarque de suite la phrase « Ultra-low power, analog integration, Easy to get started ».
Je suis totalement d’accord avec les 2 premiers point, mais je reviendrai plus en détail sur le « Easy to get started » qui n’est pas aussi « Easy » qu’on veut bien le dire.

Au passage je donne le « point bonus » à TI pour la fusée dessinée sur le carton 🙂

Si on regarde de plus prêt l’arrière de la boite, on peut lire plusieurs petites choses intéressante, comme par exemple :
« 14 and 20 pin DIP target socket » -> support pour CI 14 ou 20 « classique » au format DIP (donc utilisable sur breadboard),
« Embedded flash emulation » -> présence d’un programmateur/debuggeur intégré à la carte, avec un port série virtuel en supplément,
« Free downloadable software compiler/debugger » -> logiciel de développement gratuit

Quand on ouvre la boite on se retrouve nez à nez avec un flyer nous proposant de découvrir la launchpad.
Si j’ai acheté la carte c’est pas pour la regarder, donc quitte à faire regardons un peu ce que ce flyer nous apprend.

en lisant le flyer on nous montre comment installer IAR ou code composer studio (CCS), comment brancher la carte, et comment lancer le code d’exemple.

Attendez ! J’ai bien lu IAR ou CCS !?
unrestricted compiler and debugger including :
Code Composer Studio,
IAR Embedded Workbench

C’est une blague !? CCS ou IAR en version complète gratuitement …

Je suis allez jeter un coup d’oeil sur le site de IAR par pur curiosité :

Version complète :
Limitations :
The evaluation edition corresponds to the latest release of the full edition of IAR Embedded Workbench, with the following exceptions:• It has a 30-days time limitation.
• It does (normally) not include source code for runtime libraries.
• It does not include support for MISRA C.
• Limited Technical Support only.

Version kickstart :
Limitations :
The kickstart edition corresponds to the latest release of the full edition of IAR Embedded Workbench, with the following exceptions:• It has a code size limitation: 4 Kbytes for traditional MSP430 devices and 8 Kbytes for MSP430X devices (with extended memory, such as CC430F6125, CC430F6126, CC430F6127, CC430F6135, CC430F6137, CC430F5133, CC430F5135, CC430F5137, MSP430F2416, MSP430F2417, MSP430F2418, MSP430F2419, MSP430F2616, MSP430F2617, MSP430F2618, MSP430F2619, MSP430CG4619, MSP430FG4616, MSP430FG4617, MSP430FG4618, MSP430FG4619, MSP430F5419, MSP430F5436, MSP430F5438, MSP430F47166, MSP430F47167, MSP430F47176, MSP430F47177, MSP430F47186, MSP430F47187, MSP430F47196, MSP430F47197, MSP430F5418, MSP430F5435, MSP430F5437, XMS430F5438, MSP430F5513, MSP430F5514, MSP430F5515, MSP430F5517, MSP430F5519 MSP430F5521, MSP430F5522, MSP430F5524, MSP430F5525, MSP430F5526, MSP430F5527, MSP430F5528, MSP430F5529 MSP430F5418a, MSP430F5419a MSP430F5435a, MSP430F5436a, MSP430F5437a, MSP430F5438a)
• It does (normally) not include source code for runtime libraries.
• It does not include support for MISRA C.
• Very limited Technical Support.

En gros pour les deux versions c’est plus ou moins la même chose, à savoir une version « vitrine », gratuite, mais pas vraiment pleinement utilisable …

Bref passons, le flyer n’est qu’une pub en réalité …
Ce qui est largement plus utile c’est le wiki de TI sur la launchpad, qui lui est vraiment complet et d’une grande aide !

Au passage quand j’ai ouvert le flyer j’ai vu des truc en tomber … tient ! Des stickers ! Sympa 🙂

(Toute ressemblances avec le packaging boite/flyer/sticker d’un certain projet nommé « arduino » serait une pure coïncidence hein ? *sifflote*)

Bref mettons de coté le flyer, les sticker, et allons à l’essentielle, le contenu !
Le design intérieur est plutôt sympa, mais un truc attire mon attention, le « start here » sur le coté …

Woo! Mais c’est qu’il y a du monde là dedans !
Donc en plus de la carte il y a plein de petits sachets …
… flash-back, il y avait une liste du contenu sur l’arrière de la boite.

Et du coup en lisant la liste on découvre qu’il y a encore des trucs cachés dans le fond de la boite …
Un câble mini-sub, et de la mousse, … mais où vont ils chercher tout ça !

Bon essayons de faire le tri dans tout ça.
Il y a donc un deuxième micro-contrôleur, un lot de connecteurs, et un quartz miniature.
Le tout joyeusement emballé et étiqueté dans des sachets anti-ESD individuels !

De même la carte principale est emballée dans un sachet scellé anti-ESD.
Y a pas à dire ils font pas les choses à moitié chez TI !

Pour 4.5€ je m’attendais à avoir la launchpad et un malheureux sachet pour l’emballer !
Mais non, il y a la carte, un câble usb, des connecteurs, un quartz 32KHz, un 2eme micro-contrôleurs, un boite bien épaisse …

Du coup j’ai relis le flyer, histoire de voir si j’avais rien raté, et un truc me fait ticker !
Ça parle que de windows, IAR et CCS, logiciel que je connais déjà bien puisse qu’il s’agit des même ide que pour les cartes STM32.

Du coup je me suis demandé si l’astuce de TI ne serait pas de faire un hardware hyper low-cost et méga attirant pour nous forcer à prendre une licence dont le prix est exorbitant.
J’ai donc fait quelques recherches à ce sujet.

J’ai fait un truc simple, j’ai regardé s’il était possible (et si oui comment) d’utiliser la launchpad sous linux. Je suis alors tombé sur le wiki de TI, puis sur divers articles parlant de MSPGCC, MSPDEBUG, MSPASM, … tous des logiciels open source (et par conséquent gratuit) …

Vous comprendrez que ça laisse perplexe … comment font-ils chez TI pour se faire une marge sur un hardware si peu cher dont même le wiki officiel met en avant des solutions open source (sur lesquels TI ne se fera pas un centime) … bizarre …
(Vous aurez la réponse à la fin de ce test ;))

Pour le moment ce que j’ai pu découvrir c’est qu’il est possible d’utiliser la launchpad sous windows, linux et mac sans avoir à utiliser le moindre logiciel proprio.
Du coup avec le prix méga low-cost ça devient très intéressant !

Tient un petit message de la team TI ?

Ce pourrait-il que TI est vraiment créée la launchpad avec comme seul but de fournir un environnement de travail agréable et low-cost pour les amateurs ?
Software opensource dispo, prix low-cost, CI utilisable sur breadboard, …

Ce serait un coup bien placé par rapport aux autres fabricants qui ne se soucient pas vraiment du marché des « DIYer ».
Cette carte launchpad attise de plus en plus ma curiosité !

Regardons la carte un peu plus en détail.

Celle ci est composée de deux parties, une partie débuggeur et une partie « target ».
Truc méga bien foutu, c’est que, comme sur les cartes LPCxpresso, on peut séparer la partie target de la partie debug, ce qui permet par exemple, d’embarquer la partie target sur un projet, tout en gardant la partie debug pour un autre projet !

Edit: Ou presque trop bien foutu …
La masse du circuit n’est pas déportée sur les connecteurs, donc si on veut séparer les deux parties il faut prévoir de re-câbler à la main le GND entre les deux cartes, ce qui n’est pas terrible.
En fait c’est tout le plan de masse qui recouvre l’arrière de la carte qui sert de liaison …
Donc séparer les deux morceaux est réalisable, mais avec un petit peu de bricolage.

L’arrière de la carte est on ne peut plus sobre, pas de skillscreen, pas d’annotations, juste 4 patins antidérapant empêchant la carte de glisser pendant qu’on travail.
(Je dit « juste » mais le fait d’avoir ajouté des patins antidérapant est vraiment une bonne idée ! C’est très pratique pour travailler !)

La partie debug est composée d’un port mini-usb et de tout un système d’émulation qui permet de débugger la partie target via le protocole Spy-Wire de Texas Instrument.
La partie debug sert aussi de port série virtuelle pour communiquer en série avec le msp430 de la partie target.

Cerise sur le gâteau, sous windows les drivers usb sont reconnus et installés de base via windows update, perfect !
(Remarque: il faudra changer le driver de la partie debug afin que mspdebug (que je détaillerai plus bas) fonctionne)

La partie target est quand à elle composée d’un support pour CI DIP 14 ou DIP 20, de deux boutons, de deux led, et de deux connecteurs SIL « classique ».
On notera la présence d’une empreinte pour quartz 32KHz, quartz qui (je vous le rappelle) nous a été fournie avec la carte.

Quelques détails sur la partie boutons/led.

Les led étant câblées avec une résistance de limitation de courant elles pourraient empêcher l’utilisation des broches sur lesquels elles sont câblées.
C’est pourquoi il y a deux jumpers permettant de déconnecter les led du circuit. Ça c’est bien pensé !
Au passage on remarquera que les broches sont annotées, ainsi on sait que les led sont sur P1.6 et P1.0, et que le bouton est sur P1.3.

Au sujet des boutons, le 1er bouton (à gauche) est totalement libre d’utilisation par l’utilisateur (comme pour les led), le second (à droite) est quand à lui utilisé pour reset le micro-contrôleur.
On remarquera aussi la présence d’un connecteur 3 broches à côté du bouton de reset permettant d’avoir accès aux lignes GND / VCC.

Comme je l’avais très vite dit plus haut, le wiki de Texas Instrument est d’une grande aide.
Il comporte énormément de détails sur le hardware, le software, les projets basés sur MSP430, les divers tutoriels sur la launchpad, et j’en passe …
S’il y a un problème il suffit d’aller voir le wiki, la réponse s’y trouvera.

Allez un mini tutoriel ! 🙂
Comment monter le quartz 32KHz fourni avec la carte ?

Souder les connecteurs SIL c’est facile, souder le quartz miniature l’est beaucoup moins, mais ça ce fait sans trop de problèmes 😉
Il vous faudra par contre une fer à souder avec un tête relativement fine, pas la peine d’espérer pouvoir souder le quartz avec un fer à souder de chantier 😉

Tout d’abord il vous faut :
– la carte
– le quartz
– un fer à souder
– de la soudure
– une pince fine

Notre but : Souder ce p*tain de microscopique quartz !

Le probléme : sa taille, moins de 2mm …

1er étape : Trouver une pince à cms et placer le quartz sur son empreinte

2eme étape : Ajuster avec précision le quartz pour qu’il rentre dans son empreinte sans que les broches du quartz ne se touchent

Astuce : mettre un bon morceau de scotch pour tenir le quartz avant de souder le tout

3eme et derniére étape : Souder le quartz, il y a trois points de soudure à réaliser, les deux pattes et le corps.
/!\ Ne pas y aller comme une brute en mettant trop de soudure, sinon la soudure va remonter le long du quartz par capillarité, et il sera complètement recouvert (et inutilisable).
Souder d’abord les pattes puis le corps, sinon ça donnera un truc immonde à la fin et il y aura de grande chance que ça marche pas.

Hop! Mission réussi !

Souder le quartz 32KHz n’est pas obligatoire, il est possible d’utiliser l’oscillateur interne du MSP430, mais avec un quartz externe la précision des timing sera fortement accrue.

Bon j’ai beaucoup parlé de la boite, du design, de plein de truc, mais j’ai pas parlé de deux trucs HYPER importants … le hardware et le software …

Le hardware

Voici les spécifications de base des MSP430 fournies avec la launchpad :
- Low Supply-Voltage Range: 1.8 V to 3.6 V
- Ultra-Low Power Consumption :
Active Mode: 220 µA at 1 MHz, 2.2 V
Standby Mode: 0.5 µA
Off Mode (RAM Retention): 0.1 µA
- Five Power-Saving Mode
- Ultra-Fast Wake-Up From Standby Mode in Less Than 1 µs
- 16-Bit RISC Architecture, 62.5-ns Instruction Cycle Time
- Basic Clock Module Configurations :
Internal Frequencies up to 16 MHz With One Calibrated Frequency
Internal Very Low Power Low-Frequency (LF) Oscillator
32-kHz Crystal
External Digital Clock Source
- 16-Bit Timer_A With Two Capture/Compare Registers
- Universal Serial Interface (USI) Supporting SPI and I2C
- Brownout Detector
- 10-Bit 200-ksps A/D Converter With Internal Reference, Sample-and-Hold, and Autoscan
- Serial Onboard Programming, No External Programming Voltage Needed,
- Programmable Code Protection by Security Fuse
- On-Chip Emulation Logic With Spy-Bi-Wire Interface

C’est tout à fait correcte pour des micro-contrôleurs 16bits !
Rien de bien impressionnant, on reste quand même dans un domaine proche des micro-contrôleurs 8bits classique.

A par ça, sont inclus dans la boite :
1x MSP430G2231
-> Tourne jusqu’à 16MHz, 2Ko de flash, 128 octets de Ram, 10 I/O, 1 timer 16bits, un port USI (= I2C ou SPI, /!\ pas de port série), un capteur de température, 8 convertisseurs analogique/numérique 10bits (200K conversion seconde).

1x MSP430G2211
-> Tourne jusqu’à 16MHz, 2Ko de flash, 128 octets de Ram, 10 I/O, 1 timer 16bits, PAS de port USI, un capteur de température, PAS de convertisseurs analogique/numérique mais un comparateur analogique.

. . .

Tout de suite ça le fait beaucoup moins ! 2Ko de flash et 128 octets de Ram …
Même un ATtiny45 a 2 fois plus de flash/ram !!

Comme on dit dans ce genre de cas, quand la boite semble trop grosse et bien trop remplis c’est qu’il y a un problème !

Edit: Depuis peu TI fourni des MSP430G2452 / MSP430G2553 avec la launchpad (16K flash, 512o ram, uart hardware, …).
En faite j’ai la version 1.4, or il faut la derniére version (la 1.5) pour pouvoir avoir les deux nouveau CI … Zut !
Au passage ils ont ajouté un jumper pour choisir si on souhaite utiliser le port série hardware ou software (vu que les deux nouveau CI ont un port série hardware).
Donc mon mini coup de gueule n’est plus qu’a moitié valable … c’est un peu la loterie, on tombent soit sur une v1.4, soit sur une v1.5, selon les stock …

Sérieusement, qu’est il possible de faire avec 2Ko de flash et 128 octets de ram !?
A par sortir le chausse pied et l’assembleur, c’est vraiment léger …
Ceci explique cela … 4.5€ oui mais voila … c’est bien beau d’avoir un µc 16bits, mais si niveau périphériques et fonctionnalités, ça ne suit pas, ça ne sert à rien, mieux vaut encore prendre un micro-contrôleurs 8bits classique.

Mais attendez c’est pas tout !

Je vous avez parlé des logiciels opensource, oui mais voila, il faut les compiler à la main (c’est pas la mort mais bon) …
Il y a donc :
– MSP-GCC (le compilateur C) : http://mspgcc.sourceforge.net/
– MSP-DEBUG (le client de debug qui s’occupe de la prog/debug) : http://mspdebug.sourceforge.net/index.html
– MSP-ASM (l’assembleur / linkeur) : http://www.mikekohn.net/micro/naken430asm_msp430_assembler.php

Make, MinGW, libusb ça vous dit quelque chose ? Si oui vous êtes ok, si non vous êtes mal barrés !

(Sous windows)
Pour pouvoir utiliser mspgcc il faut avoir installé mingw.
Pour pouvoir utiliser mspdebug il faut avoir mingw avec en plus les librairies libusb, readlines, regex, que vous aurez préalablement installé dans mingw (à la main).
Il vous faudra ensuite compiler avec make mspdebug, et utiliser l’utilitaire de création de driver de libusb pour installer le driver du debuggeur (voir ici pour + d’info),
Ensuite il vous faudra installer l’exécutable compilé de mspdebug dans l’installation de mingw et faire la même opération pour mspasm,
Le tout pour pouvoir compiler un simple blink disponible ici

(Au passage HackADay a fait un très bon tutoriel sur comment compiler/utiliser la launchpad sous linux : http://hackaday.com/2010/08/11/how-to-launchpad-programming-with-linux/)

Vous voulez savoir ce que j’en pense ?
Perso ça ne me pose aucun probléme de faire toutes ces manip, je travaille sous linux et windows h24 donc mingw et make je maitrise …
Mais je pense à tout les débutants attirés par cette carte, pas chère et si médiatisée, qui vont galérer comme des perdus pour arriver à faire un simple blink.

« Easy to get started » hein ?

C’est vrai, il y a IAR et CCS, qui sont gratuit, et très simple à utiliser, oui mais voila, en fait il s’agit belle est bien de version limitée !

Si on regarde dans le wiki de TI :
These IDEs will run full-featured on the available MSP430 Value Line devices, as these devices will not encounter the 4kB size limit of IAR, or the 16kB size limit of CCS.
En gros, ok ils sont limités mais vu que les micro-contrôleurs fournis n’ont que 2Ko de flash ils ne pourront jamais atteindre la limite d’utilisation.
C’est pas faux, mais j’appellerai pas ça « gratuit et non limité », surtout qu’il faut se taper tout une procédure pour avoir une licence, avant de pouvoir utiliser l’ide (comme avec le LPCxpresso IDE en gros …).

Alors c’est une question de gout, je suis pour le logiciel libre donc les IDE comme IAR et CCS me donne des boutons, après libre à chacun de faire sont choix 😉
La toolchain proprio à l’avantage d’être simple d’installation mais … proprio, alors que la toolchain opensource est … opensource, mais plus « difficile » à installer.

Bref une fois tout bien installée et prét à utiliser, il y a une grosse communauté pour aider en cas de problèmes et un wiki trés détaillé :
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Learning_Community

Et c’est vrai, je suis un peu méchant, même avec 2Ko de ram et 128 octets de ram il est possible de faire des choses très sympa comme on peut le voir sur le wiki :
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2) (milieu de page, section « Projects »)

A la question « Comment est ce possible d’avoir autant de choses pour si peu cher !? » voici ma réponse :
Je pense que TI vend ses cartes (presque) à perte, histoire de promouvoir au maximum sa ligne de µc MSP430 en grillant tous les autres fabricants avec des prix qui leurs sont totalement inaccessible, et de se faire au passage un gros buzz.
Ceci expliquant cela vous comprendrez pourquoi les micro-contrôleurs fournit sont si « léger » niveau perf, histoire de donner envie de passer sur un solution « pro » beaucoup plus chère, même chose pour la licence IAR ou CCS.

Edit: Je viens de tomber sur le MSP430G2553 (http://www.ti.com/product/msp430g2553), il a un port série hardware, 16Ko de flash, et 512o de ram.
Apparemment c’est le MSP430 DIP20 le plus puissant utilisable avec la launchpad.
Sinon il y a aussi le MSP430G2452 (http://www.ti.com/product/msp430g2452) mais il est très bof …

Ma conclusion :
Je suis très mitigé.
La launchpad est une carte certes très intéressante, pas chère, etc etc mais voila je trouve que niveau perf et hardware c’est pas la joie.
Niveau software on a le choix, coder sous windows avec des IDE pseudo-illimités, ou coder sous linux/mac/windows avec des logiciels opensource mais devoir se taper tout le bordel que représentante la phase de compilation de la toolchain.
Cette carte peut être vraiment intéréssante pour des projets robotique, ou embarqués, mais uniquement pour des personnes maitrisant déja bien le développement embarqué et l’optimisation de mémoire.
Pour vous donner une idée 128 octets de ram c’est équivalent à un tableau de 16 float, autant dire pas grand chose …

Discussion

39 réflexions sur “[Test] Launchpad MSP430, low-cost mais trés complet !

  1. merci pour le test (et dommage pour la flash et la ram :/) je me demande si il existe pas des puces compatibles a la place de celle par défault qui possedent de meilleurs caracteristiques comme se fut le cas avec al atmega328 et la duemilanove

    Publié par zilators | 25 février 2012, 15 h 09 min
    • Oui il existe des CI plus puissant compatible avec la launchpad (enfin tout est relatif) 😉

      Pour ma pars je vais essayer d’avoir deux ou trois MSP430G2452
      http://www.ti.com/product/msp430g2452
      (cpu 16bits, 8Ko flash, 256o ram, 16 I/O avec capteur capacitif, 1 timer, watchdog, brown-out, 1 USI (i2c/spi), comparateur analogique, 8 can 10bits)

      Ça reste très léger niveau hardware, et pourtant c’est la version la plus puissante de la série MSP430G2xx :/
      Pour de gros applicatifs c’est clair qu’un bon vieux ATmega328p est bien plus commode à utiliser !

      Publié par skywodd | 25 février 2012, 15 h 31 min
  2. Attention ! L’idée de séparer la partie Debug et la partie Target est tentante, mais le problème est que la masse n’est pas présente sur le connecteur reliant les deux parties. Si on les sépare il faudra trouver un moyen de relier les GND des deux côtés, ce qui n’est pas forcément pratique/propre/cool 😦

    Publié par David | 25 février 2012, 15 h 20 min
    • Damned! J’avais pas vu …
      Effectivement ça complique la tache si on veut séparer les deux morceaux …

      Je vais éditer mon article pour préciser ce point 😉

      Publié par skywodd | 25 février 2012, 15 h 37 min
  3. Les msp430 ont pour cible des applications ultra basse consommation, avec une consommation de l’ordre du micro-ampère, en idle. La cible est clairement de pouvoir mettre un peu d’intelligence derrière des capteurs, sur des applications qui fonctionnent sur batterie (ou solaire ?) pendant des semaines/mois. Et forcément ça se fait au sacrifice de transistors à inclure dans le bidule.
    Alors oui, on va dire que mettre 2 fois plus de ram ça aurait pas changé grand chose. Mais avec le double de ram, la critique serait la même 🙂

    Publié par domi | 25 février 2012, 16 h 30 min
    • Disons que c’est pas vraiment la ram/flash qui pose probléme (bien que 4Ko de flash au lieu de 2Ko aurait était un plus indéniable), niveau mémoire on est dans une fourchette équivalente à un pic16f low-cost.

      C’est niveau périphérique que ça pose probléme selon moi.
      Pas de UART, juste un USI (et ceux pour les chips les plus puissants), en fait les msp430 ne peuvent pas vraiment communiquer … c’est un peu des pic16F84A avec plus de mémoire …

      Mais pour 4.5€ la launchpad, et 2.5€ le CI MSP430G2452 je vais pas non plus me plaindre 🙂

      Publié par skywodd | 25 février 2012, 16 h 37 min
  4. Cette carte à l’air pas mal mais est il possible de communiquer avec via un port serie comme c’est le cas avec un arduino ? La complexite de programmation n’est pas trop un problème.

    Publié par coliss | 25 février 2012, 20 h 52 min
    • Il est possible de faire une communication série uniquement en software. Pour avoir une communication série hardware il faut ce tourner vers des CI plus puissants type MSP430G2452 …

      Donc NON, il n’est pas possible de faire un port série comme avec une carte arduino. Il est juste possible de faire un pseudo port série software, mais ça demande ~40% des 2Ko disponible …

      Publié par skywodd | 25 février 2012, 21 h 27 min
      • Ok ca me va bien 🙂 en fouillant un peu le net, j’ai trouvé des explications sur la communication UART.

        Où as tu acheté cette platine ? Sur le site de ti, lorsque je cree un nouveau compte, j’ai le droit à un beau message d’erreur serveur 😥

        Publié par coliss | 26 février 2012, 15 h 13 min
  5. Un truc qui joue en faveur de la Launchpad, c’est la politique assez cool de TI sur les samples …

    Publié par JyB | 26 février 2012, 11 h 53 min
    • Hoho! Tu m’intéresse là !
      Je croyais qu’il fallait être professionnel pour pouvoir demander des sample (comme avec microchip) ?

      Avoir 4x MSP430G2452 en tant qu’étudiant c’est possible chez TI ?

      Publié par skywodd | 26 février 2012, 14 h 12 min
      • je verifierai sur mon compte mais je n’ai rien déclaré de particulier pour toper des msp430 et des machins rf pour 0€, livré par ups. Après, peut être se basent ils sur l’adresse ou le mail et vu que je fais tout livrer au taf …

        Publié par jyb | 26 février 2012, 22 h 10 min
  6. @COLISS: J’ai acheté ma carte chez watterott (http://www.watterott.com/en/MSP430-LaunchPad-MSP-EXP430G2)
    Pour le site de TI je sait pas pourquoi mais j’ai des erreurs 403 partout >_<

    Edit: Je viens de tomber sur le MSP430G2553 (http://www.ti.com/product/msp430g2553), il a un port série hardware, 16Ko de flash, et 512o de ram.
    Apparemment c’est le MSP430 DIP20 le plus puissant utilisable avec la launchpad …

    Publié par skywodd | 26 février 2012, 15 h 31 min
  7. @JYB: Ok
    Sinon j’ai vu qu’il fallait laisser un numéro de téléphone, et qu’il pouvait appeler pour avoir plus d’info sur l’utilisation des samples … ça me dérange pas de leur donner mon numéro de téléphone, mais j’ai pas envie d’être emmerdé h24 par des commerciaux de TI & associé …
    Donc j’hésite, ils appèlent ou ils appèlent pas ? Des samples gratos livré sans fdp/tva ça donne bien envie …

    Publié par skywodd | 26 février 2012, 22 h 15 min
  8. @Skywood : oui sans frais de port 🙂 attention, le prix c’est : 4.5 $, J’en ai pris 2 et au final ca revient a 6.59 € payé avec paypal. Dc ca revient encore moins cher. Le site dont tu m’avais parlé mettait des fdp de 10 €.

    Publié par coliss | 26 février 2012, 22 h 20 min
  9. Salut a toi et a tous ! J’adis j’avais commenter ton billet sur la carte STM32 C’etais moi qui t’avais demander de faire un tuto rapide blink led.

    On avais eu une petite discutions, tu m’avais parler des MSP430, il se trouve que dans la semaine j’en avait acheter 2 aussi !

    En revanche moi je n’avais pas vue qu’il y avait un quartz interne (j’avais comme toi plusieurs sachet dans la boite (connecteurs, 2CI. usb) mais pour le quartz je n’avais meme pas fait gafe (ou il n’y etait pas, je regarderais !)

    Pour se qui est du développement « multi plateforme » il y a juste un truck qui me gène, c’est qu’ils y a quelques « choses » qui changent selon avec quoi tu compile, je m’explique, sous windows avec CSS, les interrupts se font d’une facon, sous ubuntu quand tu compile avec MSPGCC (de mémoire c’est sa, (sa sort un fichier ELF)) sa ne « s’implémente » pas pareil, actuellement je bidouille, j’avais trouver des site sympa qui expliquaient la programmation MSP430 sous linux.

    Mais au debut l’histoire des « interruptions » qui ne s’implémentent pas pareil je ne comprenait pas ..

    Bon si non, jadis je t’avais parler il me semble que j’etais sur un projet, hé bien il avance a grand pas 🙂 C’est une « voiture » (type char) « radio commander » Actuellement j’ai fait les carte moteurs, qui sont reliées a une MSP430 qui elle seras reliée a une neufbox (sous openwrt) et mon PC commanderas la voiture par un serveur TCP qui se trouveras sur la neufbox (avec la liaison WIFI de la box).

    Actuellement la MSP430 est programmé pour ecouter sur le port serie, si elle recoit 0 elle fait juste blinker la led 1.0, si elle reçoit 1 sa commande mes carte pour faire avancer, si elle reçoit 2 sa comande mes carte pour faire reculer, si j’envoie 3 sa comande les carte moteur pour tourner a droite, 4 a gauche, 5 a droite sur place (avec un moteur inversé) 6 a gauche sur place

    le port serie sous ubuntu est reconnue en temps que « /dev/ttyACM0 » sa marche nickel
    sous windows je suis a chaque fois sur COM3

    La actuellement je suis en train de voir si openwrt me permettrais de dialoguer directement avec la msp430 avec le serial / usb de la lauchpad, ou si je suis obliger de passer par le port serie interne de la neufbox (qui est en 3.3v)

    Bref je vais t’envoyer une video pour que tu vois un peu la bidouille,

    Publié par biloute | 27 février 2012, 16 h 40 min
    • Excellent ton projet
      Comment est relié ton msp430 à ta neuf box ? uniquement en USB ?
      Y a moyen d’avoir les sources de ton programme stp ? Le pilotage d’une sortie en fonction d’une info reçue sur le port serie est exactement ce que je vais me faire pour ma domotique !

      Publié par Coliss | 27 février 2012, 17 h 51 min
    • >> En revanche moi je n’avais pas vue qu’il y avait un quartz interne (j’avais comme toi plusieurs sachet dans la
      >> boite (connecteurs, 2CI. usb) mais pour le quartz je n’avais meme pas fait gafe (ou il n’y etait pas, je
      >> regarderais !)
      Il sont inclut dans toutes les package launchpad, ya pas de raison que tu ne l’ai pas eu 😉

      >> Pour se qui est du développement “multi plateforme” il y a juste un truck qui me gène, c’est qu’ils y a
      >> quelques “choses” qui changent selon avec quoi tu compile, je m’explique, sous windows avec CSS, les
      >> interrupts se font d’une façon, sous ubuntu quand tu compile avec MSPGCC (de mémoire c’est sa, (sa sort
      >> un fichier ELF)) sa ne “s’implémente” pas pareil, actuellement je bidouille, j’avais trouver des site sympa qui
      >> expliquaient la programmation MSP430 sous linux.
      C’est une évidence que la syntaxe entre le compilateur CCS et msp-gcc soit différente !
      msp-gcc respecte la syntaxe commune à gcc, et IAR/CCS respectent leurs propres syntaxe.
      Dans tout les cas les deux compilateurs fournissent la même chose au final et par convention un compilateur sort des .o .lst .elf .bin/.out comme fichiers de sortie.

      La programmation linux / windows (+mingw) / mac avec msp-gcc est totalement identique car le compilateur et la toolchain sont les mêmes.
      Exemple simple, mon prochain article montrera comment utiliser msp-gcc sous windows, si tu reprend les étapes sous linux ou mac ça marchera exactement de la même façon (excepté que je vais utiliser MinGw pour avoir une console unix sous window).

      >> Mais au début l’histoire des “interruptions” qui ne s’implémentent pas pareil je ne comprenait pas ..
      Toujours lire le manuel du compilateur, les commandes pré-processeur #…, les interruptions, les commandes bas niveau (__asm__, etc…) et divers autres points sont trés différents d’un compilateurs à un autre.
      C’est pourquoi quand je peut j’utilise toujours un compilateur dérivé de gcc, dont je connais déjà la syntaxe qui lui est propre.

      >> Actuellement la MSP430 est programmé pour écouter sur le port serie, si elle reçoit 0 elle fait juste blinker la
      >> led 1.0, si elle recoit 1 sa commande mes carte pour faire avancer, si elle recoit 2 sa commande mes carte
      >> pour faire reculer, si j’envoie 3 sa commande les carte moteur pour tourner a droite, 4 a gauche, 5 a droite
      >> sur place (avec un moteur inversé) 6 a gauche sur place.
      Tu utilise le MSP430G2231 fourni de base ou un autre MSP430 ?
      J’ai eu beau chercher je n’ai trouver aucun moyen d’utiliser un port série autre que software.
      Tout ce que j’ai trouvé : http://dainaccio.wordpress.com/2011/06/11/msp430-serialconnection/

      Publié par skywodd | 27 février 2012, 22 h 12 min
  10. http://www.youtube.com/watch?v=bS2QIQlYa5w Voila une video faite vite fait pour montrer un peut la MSP430 lauchpad qui controle mes deux cartes moteurs, donc mes cartes moteurs sont faite comme ceci http://oi44.tinypic.com/33vyqn8.jpg circuit fait par moi même, et je fournis également le typon si sa intéresse, je ne me porte pas garant cependant sur l’efficacité du circuit, cependant sa devrait aller (j’ai deja tester sa tourne et sans fumer :D) mais prévoir un fusible en amont, le MOSFET est compatible TTL et tient un amperage assez élever, quand au relais lui c’est lui qui « bride » le system, il ne tien que jusqu’a 8A (mais sa vas meme en phase de démarage) l’idée de mon circuit : vous gerez le PWM grâce au mosfet qui ouvre / ferme l’alim des moteurs, et vous gérez le sens du moteur en activant le relais ou en le laissant désactiver. (je trouvais un pont H beaucoup plus chiant a réaliser et plus couteux!)

    Les résistances de 100K c’est pour avoir un point a la masse si la MSP se débranche sa évite que le relais joue a « s’ouvrir / fermer » rapidement (se qui claquerais surement la carte (moteur dans un sens + changement brutale de sens = grosse intensités)

    Bon actuellement c’etait pour tester donc je controle les moteurs par contacts sec,
    sur la video quand j’appuis sur
    1 : marche avant (deux moteurs en sens AV)
    2 : Arret
    3 : Tourne a droite
    4 : Tourne a gauche
    5 : Tourne a gauche 360°
    6 : Tourne a droite 360°

    Le systéme des petites diodes verte et rouge me permet de « voir » le sens du moteur pour la phase de test / programmation, car il faut en effet prévoir des « sécurités » vous remarquerez que pour les changement de sens moteurs (lors des 360) sa prend du temps, en faite j’ai lors de la programmation prévus des « dead time » pour éviter qu’un moteur ne change de sens de façon « trop seche » = gros appel de jus.

    Dans le futur sa seras commander par deux potentiomètre rectiligne un pour chaque moteurs (potentiomètre rectiligne c’est genre ceux des crossfader de tables de mixage) en faisant en sorte que

    la position centrale valent l’équivalent de « moteur arreter »,
    les positions au dessus du centre = moteur en sens direct
    les positions sous le centre = moteur en sens inverse

    après plus le potar est avancé ou moins il l’est et plus sa joue (ou pas) sur le PWM
    Actuellement j’essaie de voir si ma neufbox (sous openwrt) reconait ou non la msp430 launchpad comme usb/serial, mais c’est assez long car je doit faire des recompilations du FW a chaque fois qu’il me manque un truck .. (j’utilise la version trunk de openwrt = tu monte ton FW comme tu le souhaite, tu prend se qui t’intéresse mais si t’oublis un truck t’a plus qu’a recompiler :s)

    Je bidouille avec minicom 👿

    Publié par biloute | 27 février 2012, 18 h 07 min
    • >> Voila une video faite vite fait pour montrer un peut la MSP430 lauchpad qui controle mes deux cartes
      >> moteurs, donc mes cartes moteurs sont faite comme ceci http://oi44.tinypic.com/33vyqn8.jpg circuit fait par
      >> moi même, et je fournis également le typon si sa intéresse, je ne me porte pas garant cependant sur
      >> l’efficacité du circuit.
      Une diode 1N4148 en diode de roue libre … je donne pas chère de sa peau sur le long terme.
      Dans ce genre de cas il vaut mieux utiliser une diode 1N4007 de puissance.

      Ensuite le montage Relay + Mosfet … je trouve vraiment pas que c’est une bonne idée ! Un pont en H avec des IRFZ44, voir même avec un pont en H tout fait ça coute rien et c’est beaucoup plus propre !

      Ps: pour les recompile kernel, bienvenue dans le monde du build-trunk 🙂
      (Heureusement qu’il existe les compilations partielles par makefile, sinon tout devoir recompiler à chaque fois … pff la loose !)

      Publié par skywodd | 27 février 2012, 22 h 26 min
      • Oui actuellement je vais de compilation en compilation, heuresement j’ai trouver un gars sur l’irc qui a fait un patch pour faire fonctionner les MSP430 avec openwrt cependant se n’est pas encore tout a fait bon pour moi mais sa vas venir 😀

        Concernant le circuit, pour les diodes c’est bien des 4007 que j’ai mis sur mon circuit : http://oi43.tinypic.com/9ieoeg.jpg mais sur le schema j’avais mis 4148 (bref)
        Concernant le choix de faire le circuit comme sa, il est vrai que c’est pas top si on veut changer rapidement de sens et compagnie sans compter l’usure du relais, mais pour mon utilisation sa devrait faire l’affaire, le pont h a la base c’est se que j’avais prevus (mais on est obliger de passer par des driver de mos dans se cas (meme si c’est des compatible TTL : en effet on ne commande pas la partie haute a la meme tension que la partie basse , c’est la que vient le driver de mos « high and low side driver »)) bref sa compliquait un peu, et me pimentait le prix (2 carte a faire = 8x mosfet + 4x ir2111) (ir2111 prend en compte un dead time qui permet d’eviter que « la partie haute et basse d’une branche » se retrouve conductrice en meme temps)

        En amont des cartes moteurs il y auras un fusible pour chaque (en cas de court jus) et je metrais une faible resistance de bonne puissance, qui me serviras de shunt et permetras de « relever l’intensitée en mesurant la tension a ces bornes » (avec une entrée ADC par exemple)

        Je vous tiendrais au jus pour faire tourner la MSP430 avec openwrt, c’est pas si simple que sa n’y parrait :s
        Bonne journée 🙂

        Publié par biloute | 28 février 2012, 11 h 43 min
  11. je n’avais pas vue ton message, donc en faite actuellement la msp430 je cherche a la relier a la neufbox par le port usb mais j’ai du mal; mais dans le pire des cas la neufbox contient un port série interne (a souder) mais en 3.3V, donc je vérais,

    Pour la neufbox tu en a a 10 € sur le boncoin, mais évite de bricoler la tienne, (en général lors d’un changement d’opérateurs ils ne demandent pas a la récupérer CEPENDANT une box que tu LOUE tu n’a en théorie pas le droit de la trafiquer),

    pour le bricolage des neufbox je te renvoie sur http://www.neufbox4.org/blog/ il y a longtemps j’y avais fait un tuto (cyber37) mais se n’est plus d’actualité, cependant je peu t’aider si sa t’interesse.

    Pour les sources de mon programme je te montre deja un site du quel je me suis inspirer :
    http://markoez.pirategames.co.uk/index.php/blog/msp430-controlling-leds-through-pc-serial-connection/

    (sont site est très intéressent, le code fonctionne avec CSS)

    Et moi ma source je te la met ici :
    http://pastebin.com/vWAcS5Tn

    Publié par biloute | 27 février 2012, 18 h 24 min
    • Super merci !

      Publié par coliss | 27 février 2012, 22 h 33 min
      • Salut si sa peu t’interesser voila une video de l’enssemble http://www.youtube.com/watch?v=SxtOetBrEwA j’ai reussis a faire passer la msp avec openwrt, il a fallus bricoler un peut, je ferais surement un tuto sur le forum openwrt ou ailleur,

        Avec ces petites MSP430 launchpad, on peu vraiment faire pas mal de chose ! A partir de se point sa rend l’utilisation possible a l’autre bout du monde 😀 (heu peu etre pas en chine)

        Actuellement j’ai commencer la prog, donc j’ai fais un programme en JAVA (sous ubuntu) qui dialogueras avec un programme en C sur la neufbox (en TCP par liaison WiFi) qui lui meme dialogueras avec la MSP par le biais d’un port serie virtuel le /dev/ttyACM0

        j’ai fait la prog du programme sur PC, me reste le programme de la neufbox a faire et celui de la MSP430 😉

        cette fois sa prendras en compte un PWM !

        Je vous tient au jus !
        Niveau conso se n’est pas tres jolis tout sa, mais pour l’instant sa fera l’affaire (le soucis de conso je le règlerais avec le temps, car tout ces choses ont un coup (#€_€#)

        Tiens moi au jus pour ton projet de domotique

        Bonne journée

        Publié par Cyber37iloute | 1 mars 2012, 15 h 02 min
  12. >> je n’avais pas vue ton message, donc en faite actuellement la msp430 je cherche a la relier a la neufbox par le
    >> port usb mais j’ai du mal; mais dans le pire des cas la neufbox contient un port série interne (a souder) mais en >> 3.3V, donc je vérais,
    Pour le 3v3 il ne devrait pas y avoir de probléme vu que la launchpad est sous 3v3 aussi.

    >> Pour la neufbox tu en a a 10 € sur le boncoin, mais évite de bricoler la tienne, (en général lors d’un
    >> changement d’opérateurs ils ne demandent pas a la récupérer CEPENDANT une box que tu LOUE tu n’a en
    >> théorie pas le droit de la trafiquer),
    Je sait bien que les box loué ne doivent pas être bricolé 😉
    De toute manière je ne compte pas toucher à ma neufbox, j’en est besoin !
    (En plus j’ai un WRT54GL tout prét avec dd-wrt alors pourquoi m’embêter)

    >> Et moi ma source je te la met ici :
    >> http://pastebin.com/vWAcS5Tn
    Je regarderai ça (enfin surtout la partie série) mais pour le moment j’ai d’autre chose à finir.

    Publié par skywodd | 27 février 2012, 22 h 36 min
  13. @SKywood : as tu vu que les photos de ton post ne sont pas redimmensionnées mais en pleine résolution. Tu devrais les redimmensionner, le chargement de la page n’en sera que plus rapide ! surtout sur 26 photos ! 🙂

    Publié par coliss | 27 février 2012, 22 h 39 min
    • J’ai pas le choix … le systéme de gestion des média de wordpress.com plante une fois sur deux (et je parle même pas du systéme de planification d’article).

      Je ne peut pas faire de miniature, et comme je ne peut pas utiliser de plugin je ne peut même pas remplacer les images de +3.5Mo que je n’avais pas encodé au début quand j’ai créer mon blog …

      Pas de miniatures / pas de possibilité de faire du chargement dynamique / pas de possibilité de compresser les images = chargement long … j’y peut rien …

      Publié par skywodd | 27 février 2012, 22 h 49 min
      • Bah pourquoi tu ne les redimensionnes pas chez toi avant l’upload ? Ca se scripte en plus… 🙂 imagemagick est ton amis !

        Publié par Coliss | 28 février 2012, 12 h 12 min
  14. @biloute:
    >> Oui actuellement je vais de compilation en compilation, heuresement j’ai trouver un gars sur l’irc qui a fait un
    >> patch pour faire fonctionner les MSP430 avec openwrt cependant se n’est pas encore tout a fait bon pour moi
    >> mais sa vas venir.
    Un petit lien vers ce patch ? 🙂

    >> Concernant le circuit, pour les diodes c’est bien des 4007 que j’ai mis sur mon circuit :
    >> http://oi43.tinypic.com/9ieoeg.jpg mais sur le schema j’avais mis 4148 (bref)
    Ok,
    Ralala j’aime pas les schéma erroné, ça induit en erreur 😉
    Enfin si tu as mis des 1N4007 ça devrait aller.

    >> Concernant le choix de faire le circuit comme sa, il est vrai que c’est pas top si on veut changer rapidement de
    >> sens et compagnie sans compter l’usure du relais, mais pour mon utilisation sa devrait faire l’affaire, le pont h a
    >> la base c’est se que j’avais prevus (mais on est obliger de passer par des driver de mos dans se cas (meme si
    bof quand même … niveau usure, temps de contact, encombrement, poids, bruit, …
    Des mosfet c’est un peu plus « hardware » mais pour du controle de moteur c’est ce qu’il y a de mieux.
    Aprés les gouts et les couleurs, chacun fait ce qu’il veut 🙂

    >> bref sa compliquait un peu, et me pimentait le prix (2 carte a faire = 8x mosfet + 4x ir2111)
    IRF7105 😉 le pont en H du pauvre, 3A max mais ça suffit largement pour un moteur DC classique.
    (http://www.scienceprog.com/ease-h-bridge-on-mosfet-irf7105-transistors/))

    Publié par skywodd | 28 février 2012, 20 h 06 min
  15. Juste pour info, la nouvelle version du kit launchpad a un MSP430G2553 et un MSP430G2452 en bundlé à la place des anciens chips, du coup c’est beaucoup plus intéressant !

    En plus la partie debug permet de bosser avec tous les chips MSP430f5xxx qui sont en cms, du coup un simple adaptateur smd=>dip approprié, et le launchpad permet d’avoir juqu’à 256k de flash et 16k de SRAM… (et pour un prix largement inférieur au chip de l’arduino mega, btw, pour le MSP430F5437a).

    Publié par Jonathan | 29 février 2012, 10 h 15 min
  16. @Jonathan:
    En plus d’après ton lien ils ont ajouté un jumper pour choisir si on veut utiliser l’USI ou l’USCI …
    Je commence à bien aimer les MSP430 en plus 🙂

    Je vais tenter un truc. Demander des samples de quelques CI qui m’intéresse, et prendre deux nouvelles launchpad (en priant pour que ce soit les nouvelles version) depuis le shop de TI (6.59€ … ça va j’ai encore le budget pour ^^).

    Publié par skywodd | 29 février 2012, 12 h 43 min
  17. J’utilise Energia sur Mac pour mon Launchpad MSP463G2553, je trouve cela bien pratique 🙂

    Publié par jipnb | 25 décembre 2015, 15 h 06 min

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.