Carte AVR mySmartControl

Transcription

Carte AVR mySmartControl
Carte AVR mySmartControl
Extrait du PoBot
http://www.pobot.org
Carte AVR mySmartControl
- Composants - Les contrôleurs - Autres plateformes -
Date de mise en ligne : mercredi 17 décembre 2008
Description :
Test d'une carte minimale à base de microcontrôleur ATmega8 (Atmel AVR) offerte par Devtronic.
PoBot
Copyright © PoBot
Page 1/6
Carte AVR mySmartControl
Sommaire
• Caractéristiques
• Découverte
Aujourd'hui, on retrouve un circuit bien connu : un microcontrôleur ATmega8 de la famille AVR d'Atmel et juste le
strict minimum autour. C'est similaire à ce que propose une Arduino ou une ICmega8.
Il s'agit de la carte "mySmartControl" de Devtronic, le distributeur français de la gamme myAvr. Ils nous ont
gracieusement envoyé plusieurs de leurs cartes et on commence avec ce qu'on connait le mieux avant de tester
leurs autres cartes.
Caractéristiques
myAvrControl ATmega8
Le principal atout de cette carte est son connecteur qui a été standardisé pour toutes les cartes de la famille "my",
permettant de connecter sans fil une carte de contrôle, une carte de capteur I2C, une carte de relais, une carte LCD,
etc.
Une autre différence par rapport à ses cousines est le peu de composant. Comme la carte est de taille standard
(pour se connecter aux autres circuits), tous les trous sont présents pour avoir une alimentation externe ou un
connecteur ISP, mais les composants ne sont pas installés par défaut, ce qui fait qu'au final on ne trouve que :
le microcontrôleur en CMS
le quartz en CMS
le chip CP210x convertisseur USB-UART
le port USB
le bouton reset
le connecteur I/O femelle à plat
les leds et résistances CMS qui vont bien
Pour autant, la carte reste beaucoup trop haute par rapport à ce qu'elle pourrait être, car c'est un bon gros
connecteur USB "B" et pas un mini-USB en CMS comme on en trouve de plus en plus !
Copyright © PoBot
Page 2/6
Carte AVR mySmartControl
Comparaison des connecteurs USB
Le mini-USB (ici sur une carte Sparkfun) est même plus petit que les connecteurs I/O !
La carte se rattrape en étant facile à manipuler. Petit détail qui a de l'importance pour un débutant, 4 petits patins en
silicone permettent de garder la carte au-dessus de toute surface plane métallique (évitant les court-circuits) et très
stable (ce qui est pratique quand on a l'habitude de développer avec un ordinateur portable sur les genoux et des
circuits électroniques en équilibre sur un avant-bras.. si si on en a vu).
Patins de silicone
Le quartz
C'est un point intéressant : alors que la plupart des boards à base d'AVR (Arduino, EasyAVR, ICmega8, etc..)
utilisent un quartz de la valeur maximale possible pour le microcontrôleur concerné (8 ou 16 MHz), les concepteurs
teutons de la mySmartControl ont choisi un quartz à 3.6864 MHz. Cela réduit la vitesse disponible (inconvénient car
votre code mettra plus de temps à s'exécuter, ce qui peut poser problème, surtout dans les interruptions), mais
améliore les transmissions sur liaison série (taux d'erreur nul).
Avec cette fréquence, un tic d'horloge vaut 271 nanosecondes.
Découverte
Nous allons commencer par connecter la carte, écrire un programme ultrasimple et l'envoyer dans le
microcontrôleur, puis vérifier son bon fonctionnement.
Test
Recherche du port série dans les propriétés de matériel Windows :
Copyright © PoBot
Page 3/6
Carte AVR mySmartControl
Détection automatique par le logiciel ProgTool :
La carte est détectée automatiquement
Test de la communication peu pratique (non traduite) :
Test de la connexion automatique
Il faut faire le reset manuellement :
Reset manuel demandé lors de l'écriture
Même en allemand, l'utilisation du logiciel est intuitive grâce aux couleurs :
Rouge = erreur de chargement
Copyright © PoBot
Page 4/6
Carte AVR mySmartControl
Vert = upload OK
Connexion de notre analyseur Saleae Logic :
Connexion de l'analyseur logique
Le code
Il faut bien penser à configurer le fichier global.h avec le bon quartz, un 3,6864 Mhz qui est assez inhabituel
(ICmega8 et Arduino sont à 8 Mhz).
// CPU clock speed //#define F_CPU
16000000
// 16MHz processor //#define F_CPU
14745000
// 14.745MHz processor //#define F_CPU
8000000
// 8MHz processor //#define F_CPU
7372800
// 7.37MHz processor //#define F_CPU
4000000
// 4MHz processor #define F_CPU
3686400
// 3.69MHz processor #define CYCLES_PER_US ((F_CPU+500000)/1000000) // cpu cycles
per microsecond
Un code ultra-simple :
int main(void) { // port B all output DDRB = 0xFF; PORTB = 0x00; // timerInit(); uartInit();
uartSetBaudRate(9600); rprintfInit(uartSendByte); vt100Init(); vt100ClearScreen(); // while (1) { rprintf("Cool
program\r\n"); PORTB += 1; delay_ms(500); } return 0; }
Et ça fonctionne !
Alternance haut/bas toutes les 500 ms
Voici une archive du projet. N'hésitez pas à nous contacter pour des questions ou partager vos tests avec les cartes
myAVR.
Copyright © PoBot
Page 5/6
Carte AVR mySmartControl
Projet WinAVR de test
Copyright © PoBot
Page 6/6

Documents pareils

Installation de Robocode

Installation de Robocode Installation Sous Windows, double-cliquez sur le fichier robocode-setup.jar, et si l'extension jar est associée au lanceur "javaw", l'installation va démarrer automatiquement. Sinon (sous Linux ou ...

Plus en détail

Le PCF8591

Le PCF8591 Les plus observateurs d'entre vous auront remarqué que l'adresse I2C figurant sur les chronogrammes est 0x48. Et pourtant je vous ai tout le temps parlé de 0x90. Vous aurais-je abusé à l'insu de vo...

Plus en détail