Ma question est très ouverte (peut-être un peu trop d’ailleurs), mais c’est justement parce que je ne sais pas trop dans quelle direction m’orienter.
J’ai déjà réalisé des tas de projets en utilisant des cartes Arduino et ESP, et je m’intéresse maintenant à la miniaturisation de certains de mes projets.
L’idée est donc de dessiner un PCB sur lequel je n’aurais qu’à souder le microcontrôleur (ou le faire souder par JLCPCB par exemple), puis le programmer et le circuit fonctionnerait.
Bien sûr, je sais que ce n’est pas aussi simple…
Il faut au moins :
Installer un firmware sur le microcontrôleur
Disposer d’une interface de programmation (CH340G par exemple)
J’ai déjà fait des circuits n’utilisant qu’un ATmega328P-U et ses composants associés, que je programmais via ses broches RX et TX avec un CH340G.
Mais :
L’ATmega328P avait déjà un firmware, ce qui n’est pas le cas si je l’achète chez un vendeur de composants comme LCSC.
L’ATmega328 n’est pas suffisamment puissant pour certains de mes projets (ni l’ATmega2560).
Alors voici ma question : est-ce que quelqu’un connaîtrait un microcontrôleur du même genre que l’ATmega2560, mais un peu plus puissant, dont le schéma d’application ne soit pas trop complexe (pour que je puisse le reproduire), et qui soit simple à programmer (en partant du principe que le microcontrôleur sort juste de la chaîne d’assemblage) ?
J’ai vu qu’il existait des contrôleurs STM32, mais je n’y ai jamais touché et je ne sais pas du tout si ça pourrait convenir…
Ce qui impose une grosse puce dans un gros boîtier CMS pour sortir tous les signaux nécessaires et un routage plus délicat, même dans les projets dans lesquels il n'y en aura pas autant besoin.
Il existe une solution alternative : MCP23017 (I2C) ou MCP23S17 (SPI).
Chaque boîtier apporte 16 GPIOs supplémentaires.
Regardes quelle est la solution la plus adaptée à ton activité.
RP2040 et 2350 sont des microcontrôleurs développés par Raspberry Pi. Et que l'on retrouve sur les modules Raspberry Pi Pico et Raspberry Pi Pico2.
A ne pas confondre avec les cartes CPU qu'ils développent par ailleurs.
Avant de se lancer dans une étude, il faut bien cerner le besoin et se fixer des limites. Sinon, on a vite fait de partir dans tous les sens et on se retrouve à développer un mouton à 5 pattes avec des fonctions qui ne seront utiles que dans 10% des cas.
Typiquement vouloir beaucoup d'I/O va restreindre les choix et faire grimper les coûts. Voir si c'est réellement un besoin récurrent sinon partir sur un micro plus modeste et envisager la solution proposée par @68tjs .
Tu parles de débug ou juste avoir un œil sur l'usage de la mémoire pendant l'exécution?
Non, il n’y a ni besoin que le microcontrôleur dispose d’un firmware, ni qu’il y ait un interface USB. La programmation par ISP dégage de toutes ces obligations.
La programmation par ISP utilise un simple connecteur. Pour un pro elle présente l’avantage de réduire le coût de la carte, permettre une programmation rapide et un debug total mais ne permet pas une mise à jour client.
Il n'y a pas de rapport entre micro et OS, ce n'est qu'une question de mémoire disponible pour pouvoir y placer l'OS. Le RP2040 peut être utilisé sans OS, avec un RTOS ou un OS
Pour le reste ce n'est qu'une question de programmation un RP2040 avec un OS pourra par exemple t'afficher l'état mémoire en temps réel.
Je ne sais ce que je veux faire (à peut près), mais je n’ai aucune idée de la méthode a utiliser pour dimensionner un microcontrôleur adapté.
En gros, il me faudrait un microcontrôleur capable de gérer :
en entrée
Un télémètre laser qui tournerait a environ 500Hz
Un second télémètre laser UART qui ne fonctionne qu’a 5Hz
Un IMU
En sortie
Un écran couleur SPI
Un module Bluetooth pour envoyer des données vers un téléphone
Un moteur pas a pas (via un driver)
Le pré traitement des donnée obtenu par les télémètre laser et l’IMU, l’affichage et l’envoi de ces donnée.
Plus quelques autre fonctions internes (niveau de charge de la batterie, isolation d’une partie de l’alimentation, …)
Le tout utilise environ 30 broches.
Pour ce que est de la capacité du microcontrôleur, je sais juste que l’ATmega328P n’est pas suffisant (mémoire interne pour le code et mémoire RAM), et que l’ATmega2560 fonctionne pour le moment, mais j’imagine qu’il ne sera pas assez puissant pour réaliser toutes les fonction listés ci-dessus (pour le moment, le premier télémètre laser n’est pas installé et le code n’est pas fini).
Je voudrait des maintenant m’orienter vers une carte dont il sera facile de recréer sur un PCB (pour gagner de la place, et retirer tout ce dont je n’ai pas besoin), sauf que je ne sais pas laquelle choisir…
Si tu as l’intension finale d’intégrer le boîtier microcontroleur à ton circuit imprimé final, à ta place je commencerais par faire des essais en créant ma propre carte.
A mon humble avis ce n’est pas évident que tu arrive à concurencer les faconniers chinois, non pas pour les cartes comme la mega : le format Arduino est gigantesque, mais pour des réalisations a base d’ESP32, qui a le Bluetooth de base, ou RP 2350 (version actualisée du RP2040).
Fais aussi intervenir dans ta décision le cout d’approvisionnement des composants.
JLCPCB rend public les composants qu’il a en stock et leur prix de vente si tu fais équiper les cartes.
De nombreux boitiers de CI ont maintenant le fond qui doit être soudé a la masse. On lit que c’est pour la dissipation thermique, c’est en partie vrai, c’est aussi pour le fonctionnement, ces nouveaux microcontroleurs fonctionnent avec des fréquences d’horloge bien plus élevées que les anciens avr et exigent une meilleure masse.
Mais justement je ne sais pas vers quelle microcontrôleur m’orienter…
Je n’ai pas l’intention de fabriquer des cartes programmables, mais d’intégrer un microcontrôleur à un circuit de ma fabrication.
Je sais bien que le cout de production final sera supérieur a celui d’une carte Chinoise, mais je n’ai pas le choix.
J’ai un budget max. pour le PCB + les composant de 100€/pc environ, donc je pense que je suis assez large vu qu’il n’y pas beaucoup de composant de cher sur le reste du PCB (pour le moment, j’en suis a 20€ environ).
Pour la rentabilité finale du projet, je ne fais pas trop d’illusion, je n’arriverait probablement jamais à faire un véritable bénéfice, mais tant pis…
J'attire ton attention sur le fait qu'implanter un micro 8 bits comme l'ATMega328 ne pose pas de problème particulier.
Il n'en est pas du tout de même pour un "micro nouvelle génération" genre ARM. Faute d'un logiciel CAO performant cela aboutit toujours à des cartes au fonctionnement erratique, sans performance ou ne fonctionnant pas.
Faute d'avoir des pistes précisément de la même longueur entre micro et flash QSPI, le micro ne va, parfois, pas démarrer ou mettre du temps à démarrer. Cela n'est que le défaut le plus courant et le plus connu mais il y en a beaucoup d'autres avec les capacités parasites entre autres.
Atmega : fréquence d’horloge 16 MHz, max 20 MHz.
ESP32 : fréquence d’horloge 160 ou 240 MHz.
Il y a forcément des conséquences, dont la quasi certitude de revoir plusieurs fois le circuit imprimé avant d’en avoir un satisfaisant.
C’est pour cela que je conseille, dans un premier temps, de se limiter a faire un véhicule test qui consisterait a faire une simple carte microcontroleur.
Selon les résultats que tu obtiendras tu affineras tes choix.
Perso j’ai bossé sur des choses miniatures que j’aurais été incapable de câbler, en retraite j’assemble des cartes prêtes a l’emploi.