Bonjour à tous.
Quand j'utilise mon arduino, au moment de la mise en route j'ai un petit temps de latence.
Ce petit délais existe-t-il quand vous utilisez un µC ?
Cordialement.
-----
Bonjour à tous.
Quand j'utilise mon arduino, au moment de la mise en route j'ai un petit temps de latence.
Ce petit délais existe-t-il quand vous utilisez un µC ?
Cordialement.
bonjour,
et pifometriquement ce temps est de combien?
JR
l'électronique c'est pas du vaudou!
Bonsoir...!
Oui c'est inévitable il faut le temps à l'alimentation de se stabiliser puis à l'horloge de se stabiliser, puis en général un compteur de x cycles d'horloge avant que le programme ne démarre, ceci avec tous les uC...
Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...
re
oui mais ce n'est pas sensible pour un humain ce sont qqs ms tout au plus, a mon avis il dit s'agir de temps beaucoup plus longs.
JR
Dernière modification par jiherve ; 29/10/2017 à 19h13.
l'électronique c'est pas du vaudou!
Bonjour à tous.
Par exemple, j'ai bricolé récemment pour ma nièce un petit stroboscope réalisé avec un arduino nano et une led de puissance, Quand je mets le contact, il y a un éclaire de la led puis plus rien durant une demi seconde à une seconde environ et il démarre enfin pour sont cycle normal.
Bien entendu, il n'y a rien de gênant dans ce style d'utilisation.
Cordialement
C'est peut-être volontaire, de manière à laisser le temps à tous les circuits raccordés à l'arduino de s'initialiser avant de lancer l'exécution du programme utilisateur.
Bonsoir
Dans un Arduino, il y a un bootloader, c'est-à-dire un logiciel exécuté à chaque démarrage qui tente d'établir une connexion avec le PC afin que celui-ci puisse programmer une nouvelle application dans la mémoire Flash du micro-contrôleur.
Lorsque le protocole de programmation attendu n'a pas démarré après une délai fixé, le bootloader abandonne et lance l'exécution de l'application déjà présente en mémoire Flash.
C'est la raison du délai constaté à chaque remise en route de la carte. Sans cela, comme l'a indiqué jiherve, le temps nécessaire au démarrage du micro-contrôleur et au lancement de l'application ne serait pas sensible à l'échelle humaine.
Au reset les sorties des µc sont normalement en haute impédance si l'on met un transistor (surtout un Mos) sur une sortie il faut impérativement mettre une pull down afin de le bloquer pendant le démarrage.
Ce temps existe sur tous les µc, et sur arduino le bootloader le rend assez long.
Si la logique du transistor est actif à l'état bas ça pause un problème , vu qu'il sera bloqué que lorsque l'alime sera montée et conducteur pendant sa montée.
La solution si on peut inverser la commande soft est de mettre un transistor inverseur qui sera bloqué laissant la pull up du transistor bloquer le transistor final.
Ce défaut classique doit être impérativement corrigé si on commande un moteur ou autres de puissance, si on veut éviter des accidents...
Bonjour à tous.
Et un grand merci pour vos réponses et à PA5CAL qui m'a bien expliqué ce petit retard à l'allumage de l'arduino.
J'en conclus donc que sur les pic il n'y a pas ce bootloader.
Corrigez-moi si je me trompe.
Cordialement.
Sur les Atmel de l'Arduino non plus, sur quasiment aucun µc qui sorte d'usine.
(sauf µc spécialisé)
Les pics ont aussi des versions comme Picaxe ou Picbasic avec bootloader.
Ils existe sur le net pas mal de bootloader gratuits disponibles, ce n'est qu'un petit programme travaillant sur le port série qui permet de programmer le µc.
Enfin.., s'il a un port série et la possibilité de s'auto-programmer.
(je veux dire; écrire sur son EEPROM programme, en évitant d'écrire sur lui même LOL)
Il a existé un pic16F876 Arduino au début d'arduino (introuvable sur le net, je n'ai pas pensé à le copier à l'époque , dommage), il a été abandonné au profit des Atmel plus puissants et avec une architecture plus standard.
Maintenant il existe aussi des cartes Arduino STM32F (Maple) plus puissante que les ATMEGA ...
Il peut également y avoir un bootloader sur les micro-contrôleurs PIC.
Le bootloader est un logiciel enregistré dans la mémoire Flash du micro-contrôleur, et sa présence n'a rien d'obligatoire.
Si on le trouve sur les cartes Arduino, c'est juste parce que les concepteurs du projet du même nom ont choisi ce moyen pour re-programmer les micro-contrôleurs au travers de leur interface série asynchrone (USART, broches RX et TX) ou USB (c.f. Leonardo, Micro, Yún, ...). Mais ils auraient tout aussi bien pu décider de les re-programmer en utilisant les interfaces natives prévues à cet effet (e.g. l'interface SPI sur les micro-contrôleurs ATmega). Ils auraient alors pu se passer du bootloader, et les cartes auraient pu démarrer avec un délai de latence imperceptible.
Il existe maintenant la version Pinguino qui fonctionne avec des 18F et des 32bits de Microchip.
Plus puissant que la série 16F !
Bonjour
Sur certain pic, par exemple sur un 16f88, il y a un réglage qui permet un démarrage rapide, _PWRTE_OFF et on peut régler cet élément du config sur _PWRTE_ON ( c'est même conseillé) pour avoir un certain délai pour attendre la stabilité de l'oscillateur comme expliqué par vincent66 mais il ne s'agit que de ms, au pire environ 72ms dans ce pic.
Gilles
Bonjour.
Merci à tous pour ces compléments d'informations bien utiles.
Cordialement.
Si tu veux démarrer instantanément tu peux flasher directement ton programme dans la flash (et donc supprimer le bootloader).
Mais pour cela il te faut un programmateur et aller récupérer le .hex généré par Arduino lors du build (active le mode Verbose pour voir où il est).
<< L'histoire nous apprend que l'on apprend rien de l'histoire. >>