Téléverser le code dans une ESP32S3

Bonjour tout le monde,

Je vais recevoir les dernières pièces de mon projet de véhicule 2 roues auto-équilibré, pour ceux qui m'ont aidé jusqu'à présent ça doit leurs parler. Je vais recevoir ma ESP32-S3 en Dev-Kit, mon L298N, et les 2 moteurs. Mais également toutes les entretoises nécessaires, les fils Dupont en mâle/mâle pour aller de carte en carte (certains me diront, fais attention, ces connecteurs ne sont pas fiables dans le temps) et je les remercie j'en prendrais bonne note pour mon second projet lorsque je serais plus à l'aise. Ma question se porte aujourd'hui sur le code de fonctionnement à téléverser dans le ESP32. Sachant que j'ai 3 cartes à gérer, y a t'il un ordre précis pour injecter le code (ou les lignes de code) ?

Cela dépend de l'organisation du projet.
Est-ce que les 3 parties sont indépendantes?
Il faudrait avoir une vue globale du projet pour être plus exhaustif.

Je ne comprends pas la question - est-ce 3 ESP32-S3 ?

En résumé, une carte ESP32-S3 vers un driver L298N pour le pilotage des moteurs DC et une MPU6050 pour la partie Gyroscope/Accéléromètre. 3 petites cartes, pas une de +

Salut, bin en faite si tu préfères, lorsque tu fais un téléversement de ton code, est-ce que le code de la L298N est stocké dans cette carte et pareil pour la MPU6050. Ou tout le code est stocké uniquement dans la ESP32-S3 et c'est elle qui envoie les infos ou les ordres aux deux autres cartes ?

Le L298N et le MPU6050 ont leur propre firmware embarqué, vous ne les programmez pas. Vous programmez seulement l'ESP.

C'est votre code qui va utiliser les broches des 2 autres composants pour envoyer des commandes et éventuellement (dans le cas du MPU) recevoir des informations

Donc il n'y a qu'un seul téléchargement et quand vous lancez ce code, l'ESP discute avec les autres composants.

Ah bin voilà, merci
C'est tout à fait clair. Mais comme tu dis que les 2 autres PCB, l298N et le MPU6050 ont leur propre firmware, est-ce que ce dernier peut être mis à jour et si oui comment suis-je avertis d'une éventuelle mise à jour et pour terminer, est-ce qu'il faut passer par la ESP32-S3 et sa WiFi pour lancer les mises à jours ?
Merci

non, c'est dans le composant une bonne fois pour toute

Merci à vous deux
@J-M-L

Pour l'électronicien "hardeux", firmware est un terme de "softeux".
Ce terme ne correspond pas au langage de l' "hardeux".

Pour moi il y a deux mondes : le monde des ASIC qui sont des conceptions spécifiques gravées dans le silicium et le monde des circuits programmables qui, eux, reçoivent un "firmware".

Qu'est-ce qu'un ASIC ?
ASIC = Application Specific Integrated Circuit .
C'est un circuit qui ne fait que ce pourquoi il a été spécifiquement prévu.
Il est parfaitement fonctionnel en mode sortie d'usine.
Il n'est pas modifiable, il ne peut pas recevoir de mise à jour, puisque tout est gravé sur le silicium.
C'est pour cela que le terme "firmware" s'il est compréhensible peut être mal compris pour un asic.

Qu'est-ce qu'un circuit programmable ?
C'est un circuit qui en sortie d'usine ne sait rien faire, mais qui est capable de faire ce qu'un programmeur lui demandera de faire.

Exemple d'ASIC :
Une horloge comme la DS3231. On ne peut l'utiliser que comme cela a été prévu par le concepteur.
Le MPU6050 fait aussi partie de ce groupe.

Chaque groupe a son rôle.
Les circuits programmables sont versatiles, ils peuvent à peu près tout faire.
En revanche, si un asic existe pour une action précise, l'asic sera toujours plus rapide que le circuit programmable.

La raison est, au moins, double.
Les ASICS ne font qu'une seule tâche, mais ils sont optimisés.
S'il faut ajouter un transistor pour améliorer le fonctionnement, le concepteur l'ajoute.
Les ASICS peuvent faire plusieurs taches en même temps, le même signal horloge peut être connecté à une dizaine de portes logiques qui régiront toutes en même temps.
Les circuits programmables ne le peuvent pas.

La frontière n'est pas étanche.
Dans les microcontrôleurs, il peut y avoir des "zones ASIC" quand c'est nécessaire pour la rapidité. Comme pour l'UART, le SPI, etc.
C'est possible parce que les protocoles sont parfaitement définis et figés.

Les micro avr (Uno, nano) n'ont qu'une seule liaison série matérielle, un UART qui est dans une zone ASIC.
Il est bien connu qu'on peut créer une deuxième liaison série logicielle, mais cette dernière sera bien plus lente.

Oh punaise, tu m'as filé la migraine. J'en ai pas besoin autant. Mais au moins maintenant, je sais que les ASICS sont comme par exemple L298N, MPU6050...et accessoirement une marque de basket pour le Running. :wink:
Merci pour le cours

Je résume : il y a les circuits qui ne se programment pas et il y a ceux qui se programment.
Ils sont complémentaires et chacun a un rôle bien précis.

C'est plus simple :grinning_face:

Oui, je ne sais pas si on parle d’ASIC pour ce genre de produit très générique mais c’est l’idée.

Le L298N ne contient aucun microcontrôleur ni cœur programmable. C’est un ensemble de transistors bipolaires organisés en doubles ponts en H avec logique d’activation. Il n’y a donc pas de firmware interne.

Le MPU6050 intègre des capteurs MEMS analogiques, des convertisseurs ADC et une logique numérique de traitement. Il contient aussi un Digital Motion Processor interne donc on peut penser qu’il y a un firmware pour cela / asic

J'avais compris, j'ai pas tes connaissances. Je n'ai pas étudié l'électronique, mais simplement l'électrotechnique, pour finalement terminer ma carrière dans un bureau d'études en tant que dessinateur sur AutoCAD et Microstation

La difficulté est d'avoir un langage clair vis-à-vis de ceux qui découvrent.

Personne n'est clair à 100 % et c'est une force de l'être humain que de se comprendre à demi-mot.

Je ne sais pas pour ASIC, ce terme est trop naturel pour moi pour que je puisse juger et détecter les usages non conformes.
Pour firmware j'ai rencontré de nombreuses significations, certes proches, mais bien différentes.

Exemple que j'ai pu remarquer : quand on programme pour le plaisir, on parle de charger un "programme" ou un "code" dans le micro.
Quand on achète un produit qui comporte un micro déjà programmé, on ne parle plus de "code", mais de "firmware".
Cela me fait penser à une notion de propriété intellectuelle.

J'ai même entendu parler de firmware pour parler des bibliothèques Arduino, comme elles sont open source je ne sais plus quoi penser.

L'impotant est que @goldorak57 n'est plus très loin de comprendre lui aussi a demi-mot. :grinning_face:

:rofl: :rofl: :rofl:

Les pros font généralement une différence entre SW (software) pour les microcontrôleurs et le mémoires et FW (firmware) quand il s'agit des composants type FPGA avec des exceptions dont les mémoires type BIOS, epromUV où ils disent également firmware. Mais je n'ai aucune explication à ces dénominations. Traduction, mécanisme de mise à jour...?

Personnellement, quand j’ai lu cela:

Je me suis dit qu’heureusement que j'étais à la retraite et que mes boss ne se sont jamais aperçu de mes méconnaissances parce que le firmware du L298N, je ne l’ai jamais entre aperçu

Le pauvre, il n’a pas de firmeware, rassurez moi!

Certains pros, pas tous. Tout dépend de leur background.

Un FPGA peut servir à construire un micro, c'est même pratiqué par les concepteurs de micro pour tester des nouvelles fonctions avec des FPGA de plusieurs centaines d'euros, voire plus.
Même si ces FPGAs spéciaux sont loin d'être cheap ce n'est rien à coté du coût d'un run de silicium.

Un FPGA ne se programme pas.
Les langages Verilog et VHDL ne sont pas des langages de programmation, mais des langages de description de câblage.

Ils décrivent comment les "modules logiques matériels élémentaires sont associés pour répondre aux équations logiques.

Ce n'est pas parce qu'une partie de la syntaxe est commune que c'est la même chose.

dans «firmware» il y a «firm» et «ware» :
«firm» comme sté, compagnie, entreprise...
et «ware» comme marchandise, objet fabriqué

si on va un peu loin, on peut dire que l'architecture physique d'un composant, même non programmable ni programmé, est une sorte de «firmware» puisqu'il reflète le savoir-faire, la maîtrise de conception et de fabrication de l'entreprise qui l'a créé

(mais là c'est peut-être un peu trop philosophique pour l'heure qu'il est...)