Archives par mot-clé : AVR

Sproutie : La balise QRSS HiFer de Dave AA7EE

AA7EE carte ATTiny programmateur pour Arduino (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2015/11/AA7EE_programmer_ATTiny NULL.jpg)Il y a quelques temps, Dave AA7EE m’a contacté pour avoir ma version corrigée du code la balise QRSS de G0UPL/G0XAR (http://xv4y NULL.radioclub NULL.asia/2012/01/11/programmer-un-micro-controleur-atmel-attiny-avec-un-arduino/). Il l’a utilisé pour modifier sa propre balise et la placer sur la bande dite HiFer 13553-13567 KHz  autorisée aux USA sans licence. Lisez sur son blog le détail de son projet. Personellement moi j’adore la construction soignée de son programmateur de micro-contrôleur ATTiny.

Librairie pour piloter un DDS AD9850 avec un LaunchPad/MSP430 ou un Arduino

[GTranslate]

Je partage avec vous un de mes premiers résultats dans la mise au point d’une balise WSPR autonome agile avec générateur de signal à DDS (http://xv4y NULL.radioclub NULL.asia/boutique/?slug=product_info NULL.php&products_id=33). Voici en effet une petite librairie qui simplifiera vos projets pour piloter un DDS de chez Analog Devices comme le AD9850. Vous pouvez aussi facilement concevoir un VFO pour vos montages personnel Bitx (http://xv4y NULL.radioclub NULL.asia/category/ham-radio/materiel/bitx/) ou Bingo.

Cette librairie est assez simple puisqu’elle comporte quelques fonctions pour initialiser le circuit et lui programmer une fréquence. Un paramètre permet de passer le circuit en mode Power Down et de le réveiller au cas où. Cela permet d’économiser de l’énergie et même de faire une forme de CW si votre DDS génère le signal directement.

La communication se fait en mode série via 4 broches d’un micro-contrôleur MSP430G2553 par exemple. Bien entendu il faut aussi fournir l’alimentation et la masse. Fait intéressant, l’AD9850 est très flexible et supporte 3,3V ou 5V pour son alimentation. Comme la librairie est aussi très simple et n’utilise qu’un mode de communication logicielle elle est virtuellement portable sur toutes les familles de micro-contrôleurs. Le code est écrit pour les environnement de développements basés sur Wiring comme par exemple Arduino ou Energia.

Vous pouvez télécharger la librairie complète sur la page de téléchargements (http://xv4y NULL.radioclub NULL.asia/boutique/docs/).

Le code pour le fichier de header AD9850.h

/*
 AD9850.h - Library for adding simple AD9850 control capabilities on MSP430

 Copyright 2012 Yannick DEVOS under GPL 3.0 license
 Any commercial use or inclusion in a kit is subject to author approval

 ====
 Revision history :
 v1.00    2012-12-16
 First release

 ====
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You can download a copy of the GNU General Public License at <http://www.gnu.org/licenses/>

 ///////////////////////////////// How to use the lib

 * Create an instance of the object with the pin for CLOCK, LOAD, DATA and RESET

 AD9850 myDDS (P1_5, P2_0, P2_1, P2_2);	 Example for LaunchPad

 * Initialize the AD9850 and do a reset

 myDDS.begin();
 myDDS.reset();

 */

// Core library
#if defined (__AVR_ATmega328P__) || defined(__AVR_ATmega2560__) // Arduino specific
#include "WProgram.h" // #include "Arduino.h" for Arduino 1.0
#elif defined(__32MX320F128H__) || defined(__32MX795F512L__) // chipKIT specific 
#include "WProgram.h"
#elif defined(__AVR_ATmega644P__) // Wiring specific
#include "Wiring.h"
#elif defined(__MSP430G2452__) || defined(__MSP430G2553__) || defined(__MSP430G2231__) // LaunchPad specific
#include "Energia.h"
#elif defined(MCU_STM32F103RB) || defined(MCU_STM32F103ZE) || defined(MCU_STM32F103CB) || defined(MCU_STM32F103RE) // Maple specific
#include "WProgram.h"	
#endif

// ensure this library description is only included once
#ifndef AD9850_h
#define AD9850_h

// library interface description
class AD9850
{
	// user-accessible "public" interface
public:
	AD9850(uint8_t pinClock, uint8_t pinLoad, uint8_t pinData, uint8_t pinReset);
	void begin();
	void reset();
	void SetFrequency(unsigned long frequency, boolean powerdown);	// Set the frequency and send PowerDown command if needed
	// A few private methods
private:
};

#endif

Le code pour le fichier de déclaration des routines AD9850.cpp

/*
 AD9850.h - Library for adding simple AD9850 control capabilities on MSP430

 Copyright 2012 Yannick DEVOS under GPL 3.0 license
 Any commercial use or inclusion in a kit is subject to author approval

 Based on work by G7UVW

 ====
 Revision history :
 v1.00    2012-12-16
 First release

 ====
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You can download a copy of the GNU General Public License at <http://www.gnu.org/licenses/>

 */

// include this library's description file
#include <AD9850.h>
//#include <legacymsp430.h>

#define DDS_CLOCK 125000000

// Constructor /////////////////////////////////////////////////////////////////
uint8_t _DDSpinClock;
uint8_t _DDSpinLoad;
uint8_t _DDSpinData;
uint8_t _DDSpinReset;

AD9850::AD9850(uint8_t pinClock, uint8_t pinLoad, uint8_t pinData, uint8_t pinReset)
{
	_DDSpinClock = pinClock;
	_DDSpinLoad = pinLoad;
	_DDSpinData = pinData;
	_DDSpinReset = pinReset;

};

// Methods /////////////////////////////////////////////////////////////////

void AD9850::begin()
{
    pinMode (_DDSpinClock, OUTPUT); 
    pinMode (_DDSpinLoad,  OUTPUT); 
    pinMode (_DDSpinData,  OUTPUT); 
    pinMode (_DDSpinReset, OUTPUT);

	digitalWrite(_DDSpinReset, LOW);
	digitalWrite(_DDSpinClock, LOW);
	digitalWrite(_DDSpinLoad, LOW);
	digitalWrite(_DDSpinData, LOW);		
}

void AD9850::reset()
{
	//reset sequence is:
	// CLOCK & LOAD = LOW
	//  Pulse RESET high for a few uS (use 5 uS here)
	//  Pulse CLOCK high for a few uS (use 5 uS here)
	//  Set DATA to ZERO and pulse LOAD for a few uS (use 5 uS here)

	// data sheet diagrams show only RESET and CLOCK being used to reset the device, but I see no output unless I also
	// toggle the LOAD line here.

    digitalWrite(_DDSpinClock, LOW);
    digitalWrite(_DDSpinLoad, LOW);

	digitalWrite(_DDSpinReset, LOW);
	delay(5);
	digitalWrite(_DDSpinReset, HIGH);  //pulse RESET
	delay(5);
	digitalWrite(_DDSpinReset, LOW);
	delay(5);

	digitalWrite(_DDSpinClock, LOW);
	delay(5);
	digitalWrite(_DDSpinClock, HIGH);  //pulse CLOCK
	delay(5);
	digitalWrite(_DDSpinClock, LOW);
	delay(5);
	digitalWrite(_DDSpinData, LOW);    //make sure DATA pin is LOW

	digitalWrite(_DDSpinLoad, LOW);
	delay(5);
	digitalWrite(_DDSpinLoad, HIGH);  //pulse LOAD
	delay(5);
	digitalWrite(_DDSpinLoad, LOW);
	// Chip is RESET now
}

void AD9850::SetFrequency(unsigned long frequency, boolean powerdown)
{
	unsigned long tuning_word = (frequency * 4294967296 ) / (DDS_CLOCK*10);  // As frequency is in tens of Hertz, we need to multiply by 10
	digitalWrite (_DDSpinLoad, LOW); 

	shiftOut(_DDSpinData, _DDSpinClock, LSBFIRST, tuning_word);
	shiftOut(_DDSpinData, _DDSpinClock, LSBFIRST, tuning_word >> 8);
	shiftOut(_DDSpinData, _DDSpinClock, LSBFIRST, tuning_word >> 16);
	shiftOut(_DDSpinData, _DDSpinClock, LSBFIRST, tuning_word >> 24);
	if (powerdown)
		shiftOut(_DDSpinData, _DDSpinClock, LSBFIRST, B00000100);	// If powerdown is true then send PowerDown command
	else
		shiftOut(_DDSpinData, _DDSpinClock, LSBFIRST, 0x0);

	digitalWrite (_DDSpinLoad, HIGH); 
}

Futurs projets pour micro-contrôleurs

Ecran LCD 16x2 (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/09/LCD16_2 NULL.jpg)Ce n’est pas pour tout de suite mais je commence à me gratter la tête pour de nouveaux projets autour de mon Arduino (vais-je en acheter un deuxième ?) ou de mon LaunchPad.

Je viens de recevoir un écran LCD 16×2 commandé à très bon prix sur eBay (http://www NULL.ebay NULL.com/itm/1pcs-1602-16x2-HD44780-Character-LCD-Display-Module-LCM-blue-blacklight-New-/251155458075?pt=LH_DefaultDomain_0&hash=item3a7a08281b). Le vendeur basé à Hong Kong s’étant montré très bien, je lui ai commandé un capteur de température et d’humidité (http://www NULL.ebay NULL.com/itm/1pcs-DHT11-Digital-Humidity-Temperature-Sensor-/251056594544?pt=LH_DefaultDomain_0&hash=item3a74239e70), un ensemble émetteur-récepteur 433 MHz (http://www NULL.ebay NULL.com/itm/1pcs-433Mhz-RF-transmitter-and-receiver-kit-Arduino-project-/261041100836?pt=LH_DefaultDomain_0&hash=item3cc7431824) et un convertisseur port USB vers signaux RS232/TTL (http://www NULL.ebay NULL.com/itm/1pcs-PL2303-USB-RS232-TTL-Converter-Adapter-Module-/251082091781?pt=LH_DefaultDomain_0&hash=item3a75a8ad05). Avec les trois premiers, j’aimerai bien essayer de monter un petit capteur météo à distance autour d’un ATTiny8 par exemple. Un Arduino ferait la collecte des résultats et l’affichage sur le LCD. Ensuite le micro-ordinateur viendrait récupérer des points de mesure une fois par jour pour faire des stats… Le convertisseur pour port USB c’est au passage, histoire de pouvoir faire tourner des micro-contrôleurs de manière indépendante.

L’écran LCD me servirait aussi pour un autre projet, celui de faire un analyseur de spectre Audio (par FFT) pour brancher sur le transceiver. Rien de révolutionnaire mais avoir un affichage centré autour de 600 Hz pourrait être une aide intéressante pour se caler sur le bon signal en CW. Je n’ai pas une très bonne oreille et parfois dans le feu de l’action en entendant un indicatif rare je ne me cale pas bien. Je n’ai jamais perdu de QSO à cause de cela mais ce n’est pas très poli pour l’autre opérateur… Plusieurs projets construits autour d’un Arduino existent sur ce sujet dont celui-ci qui me plaît bien (http://lusorobotica NULL.com/index NULL.php?topic=2985 NULL.0).

Video analyseur de spectre audio Arduino (http://www NULL.youtube NULL.com/watch?v=Zpz8XP4go3U)

Ici un autre mais je comprends moins bien le polonais que le portugais (http://www NULL.youtube NULL.com/watch?v=Bn6BIfr_UgY)

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.

Manip électronique compatible Winkeyer avec Arduino sur base K3NG

K3NG contest keyer par XV4Y (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/09/100_3275 NULL.jpg)Ca y est, j’ai enfin fini de monter le petit circuit de mon manipulateur électronique compatible Winkeyer. En fait de circuit il s’agit en gros d’un transistor et de quelques résistances et condensateurs : pas de quoi casser trois pattes à une diode. le plus gros du travail est fait par le micro-contrôleur de la platine Arduino-Nano, et le code qui tourne sur celui-ci est écrit par K3NG (http://sourceforge NULL.net/projects/k3ngarduinocwke/).

Il y a quelques mois mes essais s’étaient avérés infructueux et je n’arrivais pas à avoir un fonctionnement stable du circuit. Avec les dernières versions du logiciel tout semble réglé et j’ai compilé un binaire qui fonctionne parfaitement bien. J’ai toutefois noté que certaines combinaisons de fonctionnalités (activées à la compilation par des #define) sont instables ou ne se compilent tout simplement pas. Faites des tests en ajoutant progressivement des fonctionnalités si vous trouvez que cela ne marche pas comme vous l’attendez.  Le blog de K3NG étant indisponible depuis le Viêt-Nam en ce moment je n’ai pu lui communiquer mes remarques…

Comme vous pouvez le voir sur la photo j’ai fait une implémentation minimaliste du circuit. En fait je compte l’utiliser uniquement en conjonction avec le logiciel de N1MM pour envoyer les numéros de série durant les concours. La grande majorité des composants sont de récupération (les touches et le buzzer piezo viennent d’un vieux téléphone Panasonic) et comme j’avais la place j’ai ajouté trois touches et le connecteur pour le manip. J’ai fait un petit calcul rapide du coût de ce circuit et en comptant comme composant le plus cher l’Arduino Nano 3.0 de Gravitech (http://www NULL.gravitech NULL.us/arna30wiatp NULL.html) à 35 USD (port non inclus), on arrive à environ 50 USD pour un manipulateur plutôt haut de gamme. Bien entendu, si on souhaite ajouter l’écran LCD (j’attends un LCD 16×2 commandé pas cher sur eBay (http://www NULL.ebay NULL.com/itm/New-1602-16x2-Character-LCD-Display-Module-HD44780-Controller-blue-blacklight-/300777230298?_trksid=p4340 NULL.m1850&_trkparms=aid%3D222002%26algo%3DSIC NULL.FIT%26ao%3D1%26asc%3D11%26meid%3D2126416898780744236%26pid%3D100011%26prg%3D1005%26rk%3D1%26)) et le connecteur pour clavier PS/2, le prix peut monter un peu. A noter que K1EL propose maintenant le WKUSB-Lite (http://k1el NULL.tripod NULL.com/WKlite NULL.html) pour 38 USD (+10 USD de port), ce qui est prix franchement attractif même sans le boîtier ou les boutons.

Arduino Nano clone

En faisant cette recherche je suis tombé sur des clones d’Arduino Nano vendus sur eBay (http://www NULL.ebay NULL.com/itm/Nano-V3-ATmega328P-Free-Mini-USB-Cable-Arduino-compatible-/320983464502?pt=LH_DefaultDomain_0&hash=item4abc1afa36) à moins de 10 USD port inclus. Fabriqués en Chine (soit) en vendus à Hong Kong (bien sûr) ils semblent copier à 100% et parfois améliorer un peu le design de Gravitech (http://www NULL.ebay NULL.com/itm/Meduino-Nano-Enchancement-Arduino-Compatible-3-3-5V-adjustable-16MHz-MEGA328-/150889585154?pt=LH_DefaultDomain_0&hash=item2321b85a02). Comme il n’y a rien de sorcier dans celui-ci et que le code du bootloader Arduino est disponible librement, ces alternatives sont tout à fait viable techniquement. Avec un prix divisé par quatre, il est difficile de résister… Je me disais justement qu’avoir un Arduino supplémentaire pour quelques projets que j’ai en tête et dont je vous parlerai bientôt pourrait être utile, car même le LaunchPad et son MSP430 devraient être bloqués sur ma balise WSPR (http://xv4y NULL.radioclub NULL.asia/2012/05/11/balise-autonome-wspr-avec-msp430/) qui aura mon attention dans les semaines qui viennent.

J’ai lu sur des forums que certains de ces clones à bas prix ne marchaient pas. Il semblerait surtout que ce soit comme d’habitude le contrôle qualité qui est défaillant. Certaines soudures sont mal faites ou des ponts électriques involontaires existent entre des broches de l’ATMega328. Si vous êtes un peu bricoleur, cela ne vous effrayera pas, sinon préférés tout de même le modèle original de Gravitech…

Toujours sur le même thème, on peut utiliser avec un Arduino ou un Launchpad l’écran LCD d’un Nokia 5110 (http://www NULL.ebay NULL.com/itm/84-48-LCD-Module-White-backlight-adapter-pcb-for-Nokia-5110-/140730843931?pt=LH_DefaultDomain_0&hash=item20c436431b). Il est plus souple d’utilisation qu’un traditionnel 16×2 caractères et se trouve pour juste un peu plus cher. Le contrôleur n’est pas le même mais les librairies se trouvent facilement que ce soit pour les AVR ou le MSP430. Par contre, adapter le code de K3NG pour cet écran pourrait demander un peu de travail…

Convertisseur port USB vers port parallèle Centronics

Convertisseur USB parallèle - dos PCB (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/05/ul-16i2 NULL.jpg)Au passage, pour ceux qui utilisent encore des interface de programmation à port parallèle pour leurs PIC, AVR ou autres micro-contrôleurs, voici un petit convertisseur à réaliser soit même pour un coût tout à fait modique (http://www-user NULL.tu-chemnitz NULL.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/ul-16 NULL.en NULL.htm). Attention, il semblerait qu’il soit trop lent pour une imprimante par contre…

Les micro-contrôleurs MSP430 de Texas Instruments

Microcontrôleur MSP430 de chez TI (http://www NULL.ti NULL.com/lsds/ti/microcontroller/16-bit_msp430/overview NULL.page)Je vous ai déjà pas mal parlé d’Arduino et de la famille des micro-contrôleurs AVR de chez Atmel. D’autres solutions existent comme les célèbres PIC de MicroChip dont est dérivée la plateforme PICAXE. En me penchant sur le travail de Steve KD1JV, j’ai vu qu’il avait fait le choix d’utiliser des produits de la série MSP430 de chez TI (http://msp430 NULL.com/). Ceux-ci ayant une consommation extrêmement basse (0,1 µA en veille profonde), le choix est plus qu’indiqué pour les transceiver ultra-portable QRP de Steve.

Gamme Value MSP430G2xx

Je ne vais pas me lancer dans une comparaison détaillée des deux architectures. Elles sont à la fois très différentes en terme de choix techniques, et très similaires en terme d’application sur le terrain. Le nombre de modèles et de version de circuits est très grand en particulier chez Texas Instruments et une comparaison face à face est difficile entre AVR et MSP430. En pratique, tout dépendra de vos besoins et de vos contraintes.

Texas Instruments LaunchPad (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/04/300px-LaunchPad_wireframe NULL.png)Pour ce qui nous concerne nous, les amateurs et hobbyistes, je considérerai deux points importants : le coût et la simplicité de mise en oeuvre. Du point de vue coût, une grosse société comme TI peut faire très fort car elle propose sa plateforme de développement LaunchPad (http://www NULL.ti NULL.com/tool/msp-exp430g2) a un coût ridiculement bas : 4,30$ port compris! Les micro-contrôleurs aujourd’hui fournis avec le kit sont peut-être limités, mais c’est aussi 5 fois moins cher qu’un Arduino. Pour ce prix vous avez entre les mains :

  • La platine de développement MSP-EXP430G2 (avec port USB)
  • un microcontrôleur M430G2211 (16 MHz,  2ko de Flash, 128o RAM, 10 entrées-sorties GPIO, un timer 16-bit, WDT, BOR, Comparator A+)
  • un microcontrôleur M430G2231 (16 MHz, 2ko de Flash, 128o RAM, 10 entrées-sorties GPIO, un timer 16-bit, WDT, BOR, un port USI (I2C/SPI), 8 canaux ADC 10 bits)
  • un quartz 32,768 KHz à souder soit même sur la platine en cas de besoin d’une horloge précise
  • Deux jeux de connecteurs
  • Un câble USB
  • Des autocollants TI Launchpad

Pour la simplicité d’utilisation, je vais vous avouer que je n’ai pas encore reçu mon kit LaunchPad donc ce que vous donne est de seconde main. L’environnement de développement de Texas Instrument tourne sous Windows uniquement et semble faire l’unanimité autour de son manque d’ergonomie et de sa complexité de mise en oeuvre. Des tiers ont développé des extensions logiciels pour programmer les MSP430 depuis XCode (Mac OS X) ou Ubuntu, mais l’aide de TI semble limitée. Si on regarde du côté des produits officiels de Atmel, ils sont peut-être bons mais pas gratuits. Par contre la communauté d’utilisateurs est importante et de nombreux outils libres de très bonne qualité existent. Il y a bien entendu Arduino, qui pour moi est la véritable porte d’entrée à l’AVR et qui propose un excellent environnement de développement multiplateforme et une communauté très active. Les platines Arduino me semble aussi mieux conçues et plus évolutive, mais cela est subjectif et peut se régler avec un peu de travail. Un fork de l’IDE Arduino pour le MSP430 semble disponible…

En conclusion le match est très serré. Vu le coût d’une plateforme LaunchPad, je vous conseille vivement d’en commander une et de vous faire votre avis par vous-même… Un wiki très détaillé sur LaunchPad (http://processors NULL.wiki NULL.ti NULL.com/index NULL.php?title=MSP430_LaunchPad_(MSP-EXP430G2)) est disponible avec les liens vers les environnements de développement disponibles.