Une approche avancée de programmation Arduino & AVR (2 / 7 étapes)

Étape 2: Quelle est la différence entre le noyau AVR & Arduino

Il s’agit de la première question fondamentale pour ceux qui sont relativement nouveaux trucs Arduino/AVR...

AVR :

Eh bien, AVR est une famille de microcontrôleurs de « Atmel semi-conducteurs »

Comme une famille contienne beaucoup de membres, la famille AVR contient également différents types de microcontrôleurs. Ils sont tous suit architecture de Havard. Ce sont des microcontrôleurs 8 bits. (Il y a 32 bits AVR puces également).

REA peut être principalement classées en trois groupes

1) tinyAVR. (bas pincount avec espace programmation inférieur)

megaAVR 2). (avec l’espace programmation moyenne)

xmegaAVR 3). (plu espace programmation avec certains étendu des fonctionnalités comme « DMA »).

Donc, il y a beaucoup de jetons sous ces 3 groupes.

Comme pour les Ex-.

ATMEGA8/Atmega16/Atmega32/Atmega328 sont tous différents membres de la famille mega avec certaines caractéristiques légèrement différents les uns des autres.

Pour dire, Atmega328p a 32 k flash / 1k EEPROM / 2k SRAM tandis que Atmega8 a 8 octets de flash/512 k EEPROM / 1K SRAM, bien que les deux n’ont même pas de pincount(28).

D’autre part Atmega32 a également 32k flash comme Atmega328p mais avec plus pincount(40).

ATTINY45 est un microcontrôleur populaire de tinyAVR famille avec seulement 8 broches et 4 k flash/512 bytes EEPROM & SRAM.

Il faut donc choisir le que microcontrôleur selon votre circuit a besoin. Comme si vous voulez une seule LED de cligner des yeux, puis ATTINY45 est parfait, mais si vous voulez conduire un complexe LCD 128 x 64 ou 20 x 4, puis vous devez choisir mega8/328/32.

Cette microcontrôleurs sont des puces vierges avec rien programmé dans leur flash/bootloader. Maintenant l’enfer quoi bootloader ? Je parlerai plus tard.

Vous devez concevoir un circuit d’alimentation pour le nourrir, il fournir horloge afin de l’exécuter. Aussi, vous avez besoin d’une sorte de programmeurs graver des programmes en eux.

Ils peuvent être programmés de différentes manières, nous allons voir dans les étapes à venir, comment il peut être fait. Aussi, vous avez besoin d’une sorte de IDE où vous pouvez écrire votre programme. WinAVR est un IDE. Atmel studio est aussi un autre IDE pour écrire des programmes pour les Microcontrôleurs Atmel.

Nous choisirons WinAVR pour programmer notre base de microcontrôleurs.

ARDUINO :

Nous pouvons dire que l’Arduino est plate-forme (y compris les logiciels) principalement utilisé pour le prototypage. Le plus grand bénéfice de l’arduino est qu’il s’agit d’une « open source ».

Eh bien, je suppose que je dois concentrer plus de lumière sur ce... parce que c’est la principale différence entre AVR et Arduino

Par exemple, rev3 Arduino UNO est une carte qui contient un microcontrôleur AVR et tous les périphériques nécessaires pour le faire fonctionner comme comme j’ai déjà dit, l’alimentation, circuit etc. d’horloge. Le microcontrôleur utilisé ici est un Atmega328p.

Il y a également un Conseil sur « arrangement » pour programmer le mega328p sans un programmeur. Maintenant, ce qui est l’arrangement???

Il y a un simple convertisseur USB vers série à bord par lequel vous pouvez programmer le mega328p. Mais comment??? C’est là, le « bootloader » se décline en.

« bootloader » est un petit programme situé dans une zone particulière du flash du microcontrôleur. Lorsque la puce est redémarré/sous tension, la puce tout d’abord entre dans la zone de chargeur de démarrage (cette activité doit également être programmée via les bits de fusible) et exécute le code écrit dedans. Mais comment le code est en mesure de programmer la puce elle-même???

Pour dire que le code est écrit de telle sorte, qu’il attend pour les programmation octets d’arriver de l’USB Serial Converter. Lors de la programmation octets reçus, il stocke les octets dans son programme flash et lorsque tous les octets reçus, il redémarre et exécute le code qui est nouvellement écrit dans flash programme.

Mais maintenant, une question qui pose après la programmation, si le mega328p est le démarrage du flash de programme (en évitant le chargeur de démarrage), puis comment il peut être programmé lors du prochain cycle??

La réponse est assez simple, le mega328p saute jamais à l’emplacement de démarrage du programme flash tout d’abord. Toujours, il saute tout d’abord à la section chargeur de démarrage et y attendre quelque temps pour l’arrivée de databytes via un port série. Si les données arrivent dans la timeperiod, puis il commence à programmer lui-même comme déjà dit, si les données n’arrivent dans ce moment, elle quitte la section chargeur de démarrage et démarre le code qui s’exécute depuis flash programme.

L’octet envoi séquence est connu par les deux le bootloader et le ArduinoIDE.This, c’est comment la programmation arduino fonctionnant sans l’aide d’un programmeur.

MAIS...

Pour pouvoir graver le bootloader dans flash d’AVR, une sorte de programmeur (soit parallèle/ISP) doit être utilisée pour la première fois. C’est là que se la nécessité des programmeurs autonome.

Maintenant sur l’IDE de l’arduino.

Dans l’IDE Arduino, il y a beaucoup de genres de cartes à choisir. Chaque Conseil utilise différents types de microcontrôleurs. Comme l’ONU rev3 Conseil utilise Atmega328p.The mega2560 utilisations Atmega2560 etc etc.

Puis il arrive une autre partie intéressante de l’Arduino. » La bibliothèque". Les bibliothèques sont des tas de programmes pour piloter les différents modules du microcontrôleur (comme TWI, SPI, PORT, etc.) ou de conduire un autre matériel externe comme LCD, Stepper motor, différents types de capteurs et beaucoup d’autres. Afin que le microcontrôleur fonctionne, vous devez écrire certains codes nominales en utilisant les fonctions de la bibliothèque existante. Aussi le langage utilisé dans l’IDE Arduino est C/C++. Mais tu ne dois pas interagir directement avec le matériel de l’atmega. Ceux-ci sont pris en charge en arrière-plan. Les commandes sont beaucoup plus simples qu’avec un noyau « C ». J’ai va programmer la puce atmega dans deux différents IDEs plus tard.

En revanche, si vous avez pour programmer un cœur AVR avec Winavr ou ce autre C basé IDE, alors vous devez connaître les modules du microcontrôleur de bonne architecture, matériel, et alors seulement vous pouvez le programmer. Mais pourquoi on irait dans une telle coplexity??? Il s’agit d’une question de millions de dollars...

Avez-vous déjà senti, que vous utilisez seulement des autres écrits/fonctions de code et vous n’arrivez pas à le modifier selon vos besoins ou vous n’arrivez pas à voir comment le programme total fonctionne en arrière-plan, ou avez-vous déjà senti le besoin de l’exécution de code ligne par ligne???

Si vous jamais senti une de celles mentionnées ci-dessus, alors que son temps pour vous d’écrire la base ' C'code t’AVR.

Aussi si vous voulez libérer la puissance de la programmation bas niveau noyau AVR avec votre propre bibliothèque/code écrit et veulent modifier les codes selon vos besoins et parallèlement une meilleure compréhension de votre code entier... puis vous devez jouer avec la programmation de base AVR.

Espérons que j’ai effacé vos doutes sur les trucs Arduino et AVR. Maintenant le temps pour un petit break avant d’entrer dans la section suivante...

Articles Liés

Comment programmer un AVR (arduino) avec un autre arduino

Comment programmer un AVR (arduino) avec un autre arduino

cette instructables est utile si :* vous avez votre arduino avec atmega168 et vous avez acheté un atmega328 à vous magasin d'électronique. Il n'est pas un bootloader arduino* vous voulez faire un projet qui n'utilise pas arduino - juste une puce AVR
Programmation des AVR avec Arduino, AVRdude et AVR-gcc

Programmation des AVR avec Arduino, AVRdude et AVR-gcc

AVR est un type commun et peu coûteux de microcontrôleur qui peut sembler intimidant pour travailler avec, mais ne vous inquiétez pas ! Une fois que vous avez les outils mis en place et les connaissances de base, ils peuvent devenir non seulement uti
Programmation des AVR avec Arduino comme ISP sans Bootloader et Crystal externe

Programmation des AVR avec Arduino comme ISP sans Bootloader et Crystal externe

Salut!!. Je suis Avra et c'est mon premier instructable. Ici je vais vous expliquer comment graver les codes sur autonome AVR ICs sans utiliser n'importe quel USBASP, tout cristal externe et un chargeur de démarrage. Vous avez seulement besoin d'une
AVRSH : Une interface d’interprète de commande pour Arduino/AVR.

AVRSH : Une interface d’interprète de commande pour Arduino/AVR.

Jamais voulu être « connecté » à votre Microcontrôleur AVR ? Jamais pensé que ce serait cool de « chat » un registre pour voir son contenu ? Avez-vous toujours voulu un moyen d'allumer et éteindre les différents sous-systèmes périphériques de votre A
Programme Arduino Over RFduino

Programme Arduino Over RFduino

Si jamais vous avez une raison ni le désir de programme Arduino au fil de l'air à l'aide de Bluetooth, celui-ci vise à être un bon point de départ.RFduinos sont des dispositifs Bluetooth peu puissants que vous pouvez programmer avec l'IDE Arduino. Ac
Thermostat programmable Arduino WEEKLIMATIC

Thermostat programmable Arduino WEEKLIMATIC

C'est un thermostat programmable Arduino basé.Jusqu'à 9 programmes hebdomadaires peuvent être stockés.Trois modalités : SET PROGRAM, MODE automatique, MODE de programmationDeux modalités de programme : marche / arrêt Mode.. .et plus fuctions, entière
La programmation Arduino Pro Mini en utilisant Arduino Uno et ArduShield - sans les câbles

La programmation Arduino Pro Mini en utilisant Arduino Uno et ArduShield - sans les câbles

L'objectif principal de cette instruction est de vous montrer comment programmer plus facile manière Arduino Mini ou Arduino Pro Mini avec Arduino UNO et ArduShield – sans les câbles.Étape par étape tutoriel, avec aucune mesure pour sauter en PCB gén
Programme Arduino Pro Mini avec Arduino Uno

Programme Arduino Pro Mini avec Arduino Uno

Bonjour tout le monde. Aujourd'hui que je vais vous montrer comment programmer arduino pro mini à l'aide d'arduino uno.Si vous avez déjà eu une arduino uno et vous achetez nouvellement arduino pro mini, alors vous n'avez pas besoin d'acheter le conve
Bouclier de programmation Arduino ATtiny2313

Bouclier de programmation Arduino ATtiny2313

aujourd'hui, j'ai fait un petit 3 x 3 x 3 cube de LED avec un ATtiny2313 que j'ai eu il y a environ 2 semaines. Chaque fois que j'ai dû reprogrammer le cube LED quand j'ai pensé à des modèles plus impressionnants, j'ai dû sortir de ma maquette et pui
La programmation Arduino (Hobbyking ESC) ESC

La programmation Arduino (Hobbyking ESC) ESC

Bonjour la Communauté,Je vais vous montrer comment programmer et utiliser l'ESC Hobbyking. Je viens de trouver quelques informations et des tutoriels qui vraiment ne m'aident pas beaucoup, alors j'ai décidé de programmer une esquisse propre, qui est
Contrôle du programme & Arduino + robot PHIRO simultanément avec poche Code smartphone app

Contrôle du programme & Arduino + robot PHIRO simultanément avec poche Code smartphone app

PHIRO Pro est un robot éducatif qui aide les enfants à apprendre au code. Une des façons de programmer et de contrôler PHIRO est via une application Android appelée Pocket Code disponible sur le jeu de Google pour libre. Code de poche a la capacité d
Telnet à votre Arduino/AVR !

Telnet à votre Arduino/AVR !

L'autre jour je voulais vérifier sur un de mes AVR mais j'étais à l'étage et Dieu sait que c'est trop de tracas pour aller en bas, là où était le microcontrôleur. Mais, il y avait deux ordinateurs ralentis, assis à l'étage à côté de mes fesses paress
Programme arduino de framboise pi

Programme arduino de framboise pi

Dans ce tutoriel, je vais vous montrer comment programmer arduino avec le raspberry pi.Tout ce dont vous avez besoin sont :Raspberry pi avec connexion internetArduino unoCordon de raccordementÉtape 1: Quoi faireAller le lxterminal raspi et taper sudo
Faire une Mini LED Siren (propulsé par Arduino!)

Faire une Mini LED Siren (propulsé par Arduino!)

C'est l'un des premiers projets j'ai fait avec Arduino. C'est une petite sirène avec une LED qui s'estompe et clignote sur et en dehors. Il illustre l'utilisation base de LED et de haut-parleurs. Voir aussi cet article : Bouclier de programmation 8 b