1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2012
    Messages : 5
    Points : 3
    Points
    3

    Par défaut Cours sur les registres, leur adressage et la programmation des µc

    Bonsoir,
    je suis un passionné des systems embarques mais malheureusement j´ai aucune connaissance dans le domaine. De ce fait j´aimerai comprendre comment se manipule les registres, on reconnait les interface qui nous sont utile sur uc, en bref un cours ou livre qui pourra méxpliquer en detail le uc. J´ai une connaissance avancée en programmation c/c++.
    je souhaiterai mieux comprendre la signification des termes comme avr32, EEPROM et pourquoi il doit toujours se trouver dans un pcb etc..

    Merci d´avance

  2. #2
    Modérateur
    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 601
    Points : 4 981
    Points
    4 981

    Par défaut

    Salut,
    La question est vaste. Je ne pense pas qu'un seul livre puisse regrouper les thèmes :
    - Microcontrôleur (µC)
    - Électronique (Mémoire EEPROM, ...)
    - Les circuits imprimés (PCB)

    On pourrait écrire une livre complet rien que sur les PCB et la manière dont on doit le concevoir tellement c'est technique. Pourtant on dirait pas ! Dessiner un plan de masse efficace, les plans 0V, les freins thermiques, les empreintes de composants en fonction du process de fabrication, les pièges de la CEM avec les couplages inductifs/capacitifs, couplage carte chassie, boucle de masse, le cross talk (diaphonie), ligne de garde, les pistes wiggle (zigzag, on en voit sur le Raspberry) .....

    Tu as plusieurs manières de voir les choses :
    1) Vision Informatique des systèmes embarqués, orientée software au dessus de la couche HAL (Hardware Layer Abstraction)
    - Se tourner vers Arduino car il permet de se concentrer sur le soft.
    - Pas besoin de trop se préoccuper du micro en tant que tel ni même des registres.
    - Beaucoup de shield (carte électroniques) existent et forment des accessoires/périphériques
    - Beaucoup de ressources sur le internet

    2) Vision Électronique des systèmes embarqués, orientées hardware et soft en dessous de la couche HAL
    - Éplucher un microcontrôleur de A à Z
    - Un peu de notion d'électronique seront nécessaires pour comprendre les mécanismes d'un micro.
    - Manipuler les registres au coeur du micro
    - Le soft se fera a partir de rien (pas de bibliothèque) et pour faire bien il te faut connaître l'ensemble du micro et de ses registres.

    Les visions 1 et 2 ont des avantages et inconvénients.

    Vision 1)
    Avantages : Motivant ! Travail de prototypage rapide, efficace à court terme, grosse communauté, simple car bibliothèques déjà faites...
    Inconvénients : Peu de maîtrise du micro, passer sur une autre cible est donc très compliqué, débogage compliqué.

    Vision 2)
    Avantages : Maîtrise du micro, migration facile vers d'autres cible, débogage facilité puisque tu es à l'origine des bibliothèques.
    Inconvénients : Décourageant, plus long à prendre en main car les outils ne sont pas les mêmes, refaire la couche HAL ou certaine partie, les communautés dépendent des fabricants de micro par exemple Microchip est probablement le microcontrôleur le plus rependue, entre autre car il est majoritairement utilisé par les amateurs. Ensuite tu as le fabricant Atmel avec sa gamme de micro AVR (Arduino UNO est basé sur un micro Atmel ATMEGA328P) que tu retrouves chez beaucoup de professionnel avec un pied dans le grand public via Arduino. Puis il y a tous les autres, avec les communautés moins grandes mais plus pointues car professionnelles : Texas Instruments, Freescale, NXP, ST, Renesas, TOSHIBA, ...

    C'est un curseur a placer entre "Maîtrise et Efficacité" tout simplement.

    Puisque tu es dans l'informatique, je peux prendre une image très concrète d'un tel choix :
    Souhaites tu utiliser un framework ou souhaites tu réaliser un framework ?


    ps : Arduino c'est excellent pour démarrer ensuite tout dépendra du choix que tu veux faire.
    Regarde, les tutoriels de f-leb http://f-leb.developpez.com/ ça te donnera un très bonne idée.

    Puis dit nous ce que tu souhaites apprendre.

    A+
    Vincent

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2012
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Merci deja Vincent pour ton temps et l´explication apportée. Le lien je le trouve très interessant. De ce fait je commencerai d´abord par la et toujours dans l´intention dans un futur proche d´aller dans la vision electronique.
    Je souhaiterai de ce fait realiser un framework et serai ravis aussi si tu(si je peux tutoyer ) m´envoies des liens dans ce sens.

    Merci A+
    Wilsonstevo

  4. #4
    Modérateur
    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 601
    Points : 4 981
    Points
    4 981

    Par défaut

    Salut,
    Bien sur que tu peux me tutoyer !

    Par contre, je pense que quand tu parles du lien que j'ai donné, tu fais référence à l'autre sujet que tu as posté dans le forum. Je pense que dans un soucis de clarté, il faudrait que tu répondes dans les sujets concernés
    Sinon, un personne qui serait intéressé par la même chose que toi, ne va pas comprendre pourquoi une question est posée à un endroit et la réponse autre part. Pire encore, il pourrait ne pas voir que la réponse est ailleurs.
    Je vais donc répondre uniquement à la question initiale (si tu avais des questions sur Wake et Inhibt du protocole LIN, pose les dans l'autre sujet que tu as ouvert comme ça tous les autres membres pourront aussi voir et participer)

    Ok, donc tu veux explorer un micro-contrôleur.

    Je te conseille de prendre plusieurs points en considérations :
    Comme tu te doutes, des micro-contrôleurs il y en a beaucoup et surtout à tous les prix.

    Il y a des microcontôleurs 8 bits, 16 bits, 32 bits ARM et bien entendu plus ils sont gros et plus leur apprentissage est complexe. Je te recommande un petit microcontrôleur le temps de la prise en main et la découverte car tu vas vite te rendre compte qu'ils fonctionnent quasiment tous de la même façon, peu importe.

    Le prix est la disponibilité des outils de programmation/débogage/développement représente un coût.

    Généralement le kit pour développer comprend
    Compilateur C -> Débogueur -> Sonde débogage/programmateur (l'interface PC/micro) -> Micro-contrôleur souvent sur une carte de développement.

    Suivant le micro-contrôleur que tu choisis, le prix va changer.


    Exemple avec Arduino (prix approximatif)
    Compilateur C = GCC-AVR + Eclipse comme IDE donc gratuit
    Débogueur = GDB/Avarice/Avrdude donc gratuit
    Sonde de débogage/programmateur = ATMEL ICE à 80€
    Microcontrôleur sur sa carte de développement = Arduino UNO à 20€

    On est à 100€ pour le top du top. Tu peux te passer de la sonde de débogage à 80€ pourquoi pas, tu pourras toujours programmer ton micro, je te rassure ! Mais sans elle, tu ne pourras pas voir l'état de tes registres en direct, pas de possibilité de faire des points d'arrêt, de faire du mode pas à pas etc... Tu programmes et tu essayes. Quand il y a un gros bug genre pointeur qui déborde sur un micro, il y a pas d'erreur Segment Fault car pas d'OS, si la pile déborde idem et sans débogueur c'est pas du tout évident de voir.
    Très répendu donc il y a beaucoup de ressources sur le net.
    Il y a de la littérature française sur le sujet.
    Souvent les utilisateurs se passent de la sonde alors que dans l'industrie c'est tout simplement inimaginable !


    Exemple avec Microchip (prix approximatif)
    Compilateur C = C18 C compiler + MPLAB tout est gratuit
    Débogueur = Intégré à MPLAB donc gratuit
    Sonde de débogage/programmateur = PICkit à 50€
    Microcontrôleur sur sa carte de développement = PICDEM, il y en a vers les 20€

    On est à 70€ pour le tout mais il y a la possibilité de déboguer en pas à pas + point d'arrêt + voir les registres en direct etc...
    Très répendu chez les amateurs d'électronique donc il y a beaucoup de ressources sur le net.
    La sonde PICkit est obligatoire car elle fait office de programmateur + débogueur en même temps
    Il y a de la littérature française sur le sujet.


    Exemple avec Texas Instruments (prix approximatif)
    Compilateur C = GCC-MSP + Eclipse comme IDE donc gratuit
    Débogueur = GDB-MSP + MSPDEBUG donc gratuit
    Sonde de débogage/programmateur = Intégré dans la carte de développement donc gratuit
    Microcontrôleur sur sa carte de développement = LaunchPad de Texas Instruments, il y en a vers les 12€

    On est à juste 12€ pour le tout et il y a la possibilité de déboguer en pas à pas + point d'arrêt + voir les registres en direct etc...
    Par contre Texas Instruments est très répendu mais plus chez les pro que chez les amateurs donc il y a beaucoup moins de ressources sur le net.
    Il n'y a pas (encore) de littérature française sur le sujet mais en anglais oui il y en a.


    Tu peux faire ce comparatif avec n'importe quel autre micro, tu verras que certain n'ont que des compilateurs payants et chers (Keil ou IAR.) Le choix est vaste et il y a des avantages et des inconvénients mais ça tu t'en doutais car en informatique c'est la même chose. Il suffit de devoir choisir un langage en fonction d'un projet donné pour voir apparaître beaucoup de questions, de compromis et de choix à faire.

    Qu'est ce qui t'intéresserait le plus ?
    https://www.arduino.cc/en/Main/ArduinoBoardUno
    http://www.microchip.com/Development...1-f410ae4069dc
    http://www.ti.com/ww/en/launchpad/la...-msp.html#tabs

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2012
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Merci une fois de plus, l´arduino uno kit je l´ai acheté il y´a de cela peu et je me suis justement rendu compte que les bibliothèque me sont deja disponible a utilisé mais j´ai pas de sonde de debogage(ou peut-être c´est dans le kit mais je me rend pas compte) que je trouve deja cher car l´arduino uno m´a couté aussi environ 90euro. Mais jaurai surement souhaité acheté un microcontroller séparé et pouvoir inserer les composant que j´aurais besoin et utilise GCC+ elcipse pour le developement.
    Qu´en penses tu?
    ou serait-il mieux actuellement de commencer par arduino uno? si tu connais aussi ou je pourrai suivre une bonne formation a bon prix(moin cher) dans les environs de straßbourg je serai ravi.

    Merci d´avance
    A+

  6. #6
    Modérateur
    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 601
    Points : 4 981
    Points
    4 981

    Par défaut

    L'apprentissage d'un microcontrôleur n'est pas forcément long a condition de :
    - Avoir les bases communes entre l'électronique et l'informatique (le binaire)
    - Ne pas griller les étapes
    - Ne pas être fâché avec l'anglais car toutes les doc constructeurs sont en anglais (anglais technique, heureusement)

    Donc tu as déjà un Arduino UNO. Pour la sonde Atmel ICE, elle n'est pas livrée avec, tu as simplement dans ce kit : le PCB (circuit imprimé) Arduino équipé du microcontrôleur avec le nécessaire pour le programmer mais rien pour le déboguer. Donc tu ne peux que programmer, lancer le soft et voir si ça fait ce que tu voulais ou pas. Bien sur il y a des moyens de faire du débogage logiciel en faisant des "println", autrement dit comme tu fais probablement avec ton PC lorsque tu programmes en langage C, c'est à dire faire des "printf" pour aider au débogage/mise au point.
    Tu l'as vraiment payé 90€ ?????



    Citation Envoyé par wilsonstevo
    Mais jaurai surement souhaité acheté un microcontroller séparé et pouvoir inserer les composant que j´aurais besoin
    Si tu regardes sur le PCB, tu vas voir qu'il n'y a pas grand chose de plus que le micro Atmel ATMEGA328P.

    Concernant le logiciel, tu as 2 choix possibles :
    - Soit tu prends l'environnement de développement Arduino
    - Soit tu prends Eclipse + GCC-AVR + AVRDUDE, le dernier étant celui qui te servira à programmer le micro-contrôleur depuis Eclipse. Il existe des plugins tout fait pour gérer ça (je l'ai fait il y a environ 10 mois).

    Moi a ta place et vu que tu souhaites vraiment voir le coeur du micro, je commencerai avec Eclipse + le plugin qui va bien + GCC-AVR + AVRDUDE.
    Pour commencer en langage C, tu as ça par exemple http://brittonkerin.com/cduino/lessons.html
    Et avec la datasheet http://www.atmel.com/images/Atmel-82...t_Complete.pdf tu décodes le programme.

    Exemple :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include <avr/io.h>
    #include <util/delay.h>
     
    //
    // Assumptions:
    // 	- LED connected to PORTB (arduino boards have LED L onboard)
    // 	- F_CPU is defined to be your cpu speed (preprocessor define)
    //
    // NOTE: the file in blink/blink.c is a better place for look for an example of 
    // how to address individual IO pins.
    //
    // WARNING: this technique doesn't translate to all the other IO pins on a
    // typical arduino, because the arduino bootloader uses some of them for its
    // own purposes (e.g. PD0 is set up as the RX pin for serial communication,
    // which precludes its use as an output).  The unconnected IO pins are
    // presumably ok to use, or you can just nuke the bootloader with an
    // AVRISPmkII or similar device.
     
    int main (void)
    {
    	/* set all pins of PORTB for output*/
    	DDRB = 0xFF;
     
    	while (1) {
    		/* set all pins of PORTB high */
    		PORTB = 0xFF;
    		_delay_ms(500);
     
    		/* set all pins of PORTB low */
    		PORTB = 0x00;
    		_delay_ms(500);
    	}
    	return 0;
    }

    A l'aide de la doc constructeur, tu essayes de comprendre ce que c'est que ces registres DDRB et PORTB, comment on les manipule et à quoi ils servent dans le micro ? Voir le chapitre 14.2.1 (page 76)

    ps : La première fois qu'on ouvre une doc constructeur ça fait très peur mais une fois qu'on s'est forcé un peu on comprend vite comment lire efficacement une datasheet et tout son contenue (c'est le mode d'emploi du micro) Bien sur il y a des choses que tu ne comprendras pas tout de suite et le forum est justement là pour ça.

  7. #7
    Expert éminent
    Avatar de Auteur
    Profil pro
    Inscrit en
    avril 2004
    Messages
    6 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 6 699
    Points : 9 026
    Points
    9 026

    Par défaut

    Citation Envoyé par Vincent PETIT Voir le message
    Donc tu as déjà un Arduino UNO. (...) Tu l'as vraiment payé 90€ ?????
    Il existe des kits de démarrage qui contiennent un Arduino, des composants de base (résistances, led, condensateurs, transistors, etc.), une breadboard, un moteur, un servo-moteur, des straps...


    Une chose qui est possible avec l'Arduino UNO (version DIP) : après l'avoir programmé en utilisant la platine et l'environnement de développement on peut le séparer de sa platine et l'installer dans un circuit de sa création.

    Pour les formations avec Arduino (en tout cas pour la base et réaliser des petits projets), il y a les MJC ou les FabLab. Mais pour aller plus loin, il faut regarder sur le net. L'Arduino étant assez populaire on peut trouver facilement des idées.


    Parmi les microcontrôleurs ARM, il y a aussi les STM32 montés sur les platines Nucleo. La platine coûte une dizaine d'euros : http://www.st.com/web/catalog/tools/...sc=stm32nucleo

  8. #8
    Modérateur
    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 601
    Points : 4 981
    Points
    4 981

    Par défaut

    Citation Envoyé par Auteur Voir le message
    Il existe des kits de démarrage qui contiennent un Arduino, des composants de base (résistances, led, condensateurs, transistors, etc.), une breadboard, un moteur, un servo-moteur, des straps...
    Ok, alors je comprends mieux le prix.

Discussions similaires

  1. Recherche d'un cours sur les bdd réparties
    Par abdo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 03/10/2005, 13h12
  2. Cours sur les DLL.
    Par elf dans le forum Windows
    Réponses: 2
    Dernier message: 29/09/2005, 14h33
  3. [LG]J'ai honte : question de cours sur les paramètres
    Par letibdesneiges dans le forum Langage
    Réponses: 14
    Dernier message: 17/01/2004, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo