Écrire un programme AVR

Eiyrioü von Kauyf

Écrire un programme AVR


J’ai donc vu un article parler de la faisabilité commerciale d’un Arduino (http://electronics.stackexchange.com/questions/11333/commercial-use-of-arduino-is-it-suitable). À partir de cela, il a dit qu’une excellente idée serait d’écrire votre propre programme AVR, je crois.

Qu’est-ce que cela signifie pour:

1) Écrire un programme AVR? Qu’est-ce qu’un programme AVR? 2) Programmer votre propre microcontrôleur?

Est-il possible de créer son propre microcontrôleur et comment procéder? Souhaitez-vous toujours utiliser quelque chose comme un ATMEGA? Qu’est-ce que cela changerait et comment « télécharger » un AVR à cela?

Modifier (après le commentaire # 1): Mes questions est-ce que j’utiliserais encore l’Arduino ou serait-il préférable pour moi d’acheter … un autre? microcontrôleur et programme cela? Pour affiner mon autre question, comment programmeriez-vous … un microcontrôleur? quelle interface serait utilisée pour télécharger le code?

JustJeff

« AVR » est juste un autre nom pour le processeur de l’Arduino. Il existe de nombreux processeurs AVR différents, mais l’Arduino n’utilise que quelques types d’AVR différents. En outre, les mots «microcontrôleur» et «processeur» sont essentiellement synonymes pour vos besoins. Vous ne feriez pas un « microcontrôleur » en utilisant un ATMEGA, car l’ATMEGA est déjà un microcontrôleur.

Kellenjb

Vous avez vraiment besoin d’un meilleur titre.

Eiyrioü von Kauyf

Désolé. les suggestions seront acceptées avec plaisir

Kellenjb

J’allais recommander quelque chose, mais je suis confus quant à ce que votre question est vraiment, vous semblez sauter autour. Formatez votre titre sous forme de question et il sera plus facile de comprendre ce que vous demandez.

Réponses


 AngryEE

C’est une vaste question. Je ne pense pas que la question précédente était censée impliquer qu’un Arduino n’est pas une plate-forme de développement «réelle» ou «professionnelle». Il a sa niche. Chaque microcontrôleur a sa niche – vous devez en choisir un qui vous aide à faire ce que vous essayez de faire. Cela vous semble-t-il vague? Oui. Parce que tout dépend de ce que vous essayez de faire.

Alors revenons en arrière – qu’est-ce que l’Arduino par rapport à tout le reste? Je vais le diviser en matériel et logiciel.

En ce qui concerne le matériel, l’Arduino est une carte de développement . Il existe de nombreuses cartes de développement – des tonnes. Ils sont chacun construits autour d’un ou plusieurs microcontrôleurs. Ils sont, dans une certaine mesure, censés avoir une fonction quelque peu générique – vous devez pouvoir les utiliser pour développer pour à peu près n’importe quelle application. Mais ils peuvent également avoir un objectif – vous pourriez voir des cartes de développement avec des contrôleurs HDMI et Ethernet – ceux-ci sont évidemment destinés à aider les gens à développer des applications de mise en réseau ou des applications visuelles. L’Arduino est une carte de développement solide, mais elle a très peu de fonctionnalités intéressantes. L’approche derrière Arduino est un bac à sable grand ouvert – c’est pourquoi il y a tellement de boucliers disponibles.

Les cartes de développement sont donc construites autour de microcontrôleurs. L’Arduino est construit autour de l’AVR ATMega328. Il s’agit d’un microcontrôleur spécifique fabriqué par Atmel. Il s’agit de l’un des microcontrôleurs 8 bits d’Atmel. Il est destiné aux applications intégrées à usage général qui ne nécessitent pas beaucoup de cloches et de sifflets ou beaucoup d’E / S (il est plutôt limité dans le nombre de broches dont il dispose). Pour mettre cela en perspective, Atmel propose également des offres basées sur ARM 32 bits – c’est un type de microcontrôleur que vous pourriez trouver dans un routeur qui exécute Linux. Il existe, bien sûr, de nombreux fabricants de microcontrôleurs différents – offrant tous des microcontrôleurs différents axés sur certaines applications – automobile, réseau, DSP, etc.

Maintenant, il y a la question du logiciel – qu’est-ce que cela signifie d’écrire un programme AVR? Eh bien, tout ce que vous écrivez pour un Arduino est un programme AVR – c’est juste difficile à dire. Arduino est livré avec un cadre qui vous cache en grande partie la complexité de la programmation des microcontrôleurs. En règle générale, l’écriture de tout code de microcontrôleur (y compris les programmes AVR) implique beaucoup de lecture avec des bits dans les registres, le suivi de la synchronisation, etc. C’est très bas et il y a beaucoup de choses à suivre.

Dans un sens plus large, les microcontrôleurs sont généralement programmés dans une variante de C. Je dis une variante car chaque microcontrôleur a besoin d’un compilateur C spécial avec ses propres règles. Donc, chaque puce différente a sa propre variante de C. Il n’y a pas de différences bouleversantes entre chacune d’entre elles, mais vous pouvez vous tromper sur les différences si vous ne faites pas attention.

Comment les programmez-vous? Il existe de nombreuses façons, mais de nos jours, les puces ont tendance à se programmer elles-mêmes. Ce n’est pas une blague – la plupart des programmeurs implémentent simplement un type spécial de communication série qui leur permet d’être programmés par l’un des nombreux appareils. C’est ce qu’on appelle la programmation dans le système. Vous programmez des microcontrôleurs avec une variété d’appareils – ils peuvent être des dongles USB à 5 $, des périphériques à port parallèle ou des adaptateurs JTAG à 1 200 $. En règle générale, vous avez besoin d’un programmeur spécifique pour une ligne de puces spécifique. C’est-à-dire que vous pouvez acheter un JTAG qui programmera le plus sur toutes les puces ARM, et vous pouvez trouver des programmeurs qui programmeront la plupart sinon toutes les puces AVR.

Donc, programmer votre propre microcontrôleur signifie essentiellement que vous 1) Sélectionnez un microcontrôleur que vous souhaitez utiliser, 2) trouvez une bonne carte de développement pour cela, 3) trouvez une sorte de programmeur – soit un programmeur intégré au système, soit JTAG ou autre chose, 4 ) déterminez de quel compilateur vous avez besoin, de quel éditeur de code utiliser, etc. (Arduino bien sûr, fournit tout cela, donc c’est facile). Ensuite, vous lisez la fiche technique de la puce et découvrez par où commencer.

Eiyrioü von Kauyf

….. comment commencerais-je maintenant?

AndrejaKo

@ user997301 Eh bien, la première étape consiste à obtenir une puce AVR. J’ai moi-même commencé avec ATmega162 et ATmega 16. Ils ont une quantité raisonnablement large de périphériques (rappelez-vous, le microcontrôleur n’est pas seulement un processeur, c’est un ordinateur entier) et n’est pas trop cher pour un débutant. L’étape suivante consiste à obtenir ou à créer un programmeur. Le modèle officiel est AVRISP mkII , mais vous pouvez en créer un vous-même (il suffit de taper dans le programmeur Google AVR et vous obtiendrez des tonnes de résultats).

AndrejaKo

@ user997301 Cet article est agréable pour les débutants à la recherche d’un programmeur et vous trouverez ici comment créer la carte la plus basique dans laquelle vous pourriez programmer un microcontrôleur AVR.


 Boopathy Suntharan

Écrire un programme Avr signifie écrire du code et le charger dans les microcontrôleurs AVR (* la famille AVR possède de nombreuses séries de microcontrôleurs tels que ATMEGA103, ATMEGA128, ATMEGA1280, ,,,,,, etc., ainsi que les contrôleurs populaires tels que TMEGA8, ATMEGA16 etc. …) en utilisant les logiciels comme AVR STUDIO, CODE VISION AVR etc etc …

Programmer votre propre microcontrôleur signifie que c’est une phrase qui vous dit de « prendre votre microcontrôleur préféré, choisir votre logiciel d’écriture de code, puis écrire votre code, le charger sur le microcontrôleur et enfin voir l’application »

par exemple, j’utilise le CONTRÔLEUR ATMEGA 8 POUR CLIGNOTER LES LED

J’ai utilisé le logiciel AVR Studio 6. pour le codage et PRO ISP pour charger le code sur le microcontrôleur

Le code est comme suit:

 #include <avr/io.h> 
 #include <util/delay.h> 

 int  main () 
 { DDRB = 0b11111111 ; DDRD = 0b00000000 ; 


     while ( 1 ) 
     { 
         if   ( PIND = 0b00000001 ) 
         { PORTB = 0b11111111 ; _delay_ms ( 100 ); PORTB = 0b00000000 ; _delay_ms ( 100 ); 
         } 
     } 
     return   0 ; 
 } 

Eiyrioü von Kauyf

haha il y a assez longtemps – j’ai déjà programmé pas mal de microcontrôleurs 🙂

Nick Alexeev ♦

@BoopathySuntharan Veuillez ne pas écrire en majuscules. C’est une mauvaise étiquette sur le Web. Avertissement juste.

 

AVR, écrire, Programme, un

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *