- Introduction à ESP8285
- Schéma de circuit de la carte de développement ESP
- Fabrication de notre carte de développement ESP8285
- Commande de PCB auprès de PCBWay
- Assemblage et programmation de la carte ESP8285
- Test avec un simple croquis de clignotement de LED
- Test de l'esquisse du serveur Web sur ESP8285
Les contrôleurs ESP d'Espressif deviennent un choix très populaire pour les conceptions basées sur l'IoT. Il existe de nombreux types de modules ESP et de cartes de développement déjà disponibles sur le marché, parmi lesquels NodeMCU est le plus populaire. En dehors de cela, ESP-12E, ESP01 sont également des choix populaires. Mais si vous souhaitez rendre votre conception plus flexible et plus compacte, il est probable que nous devions concevoir notre propre module ESP à partir du niveau de la puce, au lieu d'utiliser directement un module facilement disponible. Dans cet article, nous allons apprendre à concevoir un circuit et un PCB pour utiliser les contrôleurs ESP (ESP8285) directement sans utiliser de module.
Dans ce projet, nous avons utilisé ESP8285 car c'est une petite puce très intéressante. C'est un petit SoC (System on Chip), avec l'IoT (Internet of Things) et des capacités de sommeil profond. Il a la même puissance que son grand frère ESP8266 et en prime, il est livré avec une mémoire flash intégrée de 1 Mo avec beaucoup de GPIO. Vous pouvez également utiliser ESP8266 comme alternative et la plupart des choses discutées dans cet article seront toujours les mêmes.
Dans un article précédent, je vous ai montré comment concevoir votre propre antenne PCB pour 2,4 GHz, en utilisant la même puce ESP8285 comme exemple. Vous pouvez lire cet article pour en savoir plus sur la conception de l'antenne pour ESP8266 / ESP8285.
Donc, dans cet article, je vais couvrir le fonctionnement de tous les circuits et enfin il y aura une vidéo expliquant tout cela. J'ai également couvert en détail la procédure complète de conception et de commande des cartes PCB de PCBWay pour la conception de notre module ESP.
Introduction à ESP8285
Si vous ne connaissez pas cette puce ESP8285 polyvalente, voici une explication rapide avec une liste de fonctionnalités. ESP8285 est une petite puce avec flash et RAM intégrés 1M, elle est assez similaire au module ESP8286, ESP-01 mais la mémoire flash interne le rend beaucoup plus compact et moins cher.
Cette puce abrite le processeur de base 32 bits L106 Diamond de Tensilica et il en va de même pour l'ESP8266, c'est pourquoi tout le code de l'ESP8266 peut être flashé directement sur cette puce sans aucune modification, et il a la même pile réseau que la dose ESp8266.
L'ESP8285 intègre des commutateurs d'antenne, un balun RF, un amplificateur de puissance, un amplificateur de réception à faible bruit, des filtres et des modules de gestion de l'alimentation. La conception compacte minimise la taille du PCB et nécessite un minimum de circuits externes. Si vous souhaitez en savoir plus sur ce circuit intégré, vous pouvez toujours consulter la fiche technique de l'ESP8285 de l'appareil chez Espressif Systems.
Schéma de circuit de la carte de développement ESP
Le circuit est très simple et je l'ai décomposé pour une meilleure compréhension. Le schéma ESP ci-dessous montre l'ensemble du circuit, comme vous pouvez le voir, il y a huit blocs fonctionnels, je vais passer en revue chacun d'eux et expliquer chaque bloc.
ESP8285 SOC:
Au cœur du projet se trouve le SoC ESP8285, tous les GPIO et autres connexions nécessaires sont définis ici.
Filtre d'alimentation: il y a 7 broches d'alimentation sur cet IC, la première est la broche d'alimentation pour l'ADC et les E / S. Je les ai court-circuités ensemble et j'utilise un condensateur de filtre de puissance de 47 uF et un condensateur de découplage de 0,1 uF pour filtrer l'entrée 3,3 V CC.
Filtre PI: Le filtre PI est l'un des blocs les plus importants de cette conception car il est responsable de l'alimentation de l'amplificateur RF et du LNA, tout bruit interne ou externe peut être descriptif pour cette section, donc pour cela, la section RF ne fonctionnera pas. C'est pourquoi le filtre passe-bas pour la section LNA est très important. Vous pouvez en savoir plus sur les filtres PI en suivant le lien.
Oscillateur à cristal: l' oscillateur à cristal de 40 MHz sert de source d'horloge pour le SoC ESP8285, et les condensateurs de découplage 10pF ont été ajoutés comme recommandé par la fiche technique.
Section LNA: Une autre section la plus importante de ce circuit est la section LNA; c'est là que l'antenne PCB est connectée à la broche physique de l'ESP. Comme recommandé par la fiche technique, un condensateur de 5,6 pF est utilisé et il devrait fonctionner parfaitement comme circuit d'adaptation. Mais j'ai ajouté deux espaces réservés pour deux inducteurs comme si, au cas où la dissidence du circuit correspondant fonctionne, je peux toujours mettre des inducteurs, pour ajuster les valeurs pour correspondre à l'impédance de l'antenne.
La section LNA possède également deux cavaliers PCB avec un connecteur UFL. L'antenne PCB est définie par défaut, mais si votre application nécessite un peu plus de portée, vous pouvez dessouder le cavalier PCB et court-circuiter le cavalier du connecteur UFL, et vous pouvez connecter une antenne externe comme ça.
Connecteur d'entrée de batterie:
Vous pouvez voir ci-dessus, j'ai mis trois types de connecteurs de batterie en parallèle car si vous n'étiez pas en mesure d'en trouver un, vous pouvez toujours en mettre un autre.
En-têtes GPIO et en-têtes de programmation:
Les en-têtes GPIO sont là pour accéder aux broches GPIO et l'en-tête de programmation est là pour flasher le Soc principal.
Circuit de réinitialisation automatique:
Dans ce bloc, deux transistors NPN, MMBT2222A forment le circuit de réinitialisation automatique lorsque vous appuyez sur le bouton de téléchargement dans l'IDE Arduino, l'outil python reçoit un appel, cet outil python est l'outil flash pour les périphériques ESP, cet outil pi donne le signal au convertisseur UART de réinitialiser la carte tout en maintenant la broche GPIO à la masse. Après cela, le processus de téléchargement et de vérification commence.
LED d'alimentation, LED embarquée et diviseur de tension:
LED d'alimentation: la LED d'alimentation a un cavalier PCB Si vous utilisez cette carte comme pour une application alimentée par batterie, vous pouvez souder ce cavalier pour économiser un peu d'énergie.
LED intégrée : de nombreuses cartes de développement sur le marché ont une LED intégrée, et cette carte ne fait pas exception; le GPIO16 de l'IC est connecté à une led embarquée. Parallèlement à cela, il existe un espace réservé pour une résistance de 0 OHM en remplissant la résistance de 0 Ohms, vous connectez GPIO16 à la réinitialisation et, comme vous le savez peut-être, il s'agit d'une étape très importante pour mettre un ESP en mode de veille profonde.
Diviseur de tension: comme vous le savez peut-être, la tension d'entrée maximale du CAN est de 1V. Ainsi, pour changer la plage de l'entrée à 3,3 V, le diviseur de tension est utilisé. La configuration est telle que vous pouvez toujours ajouter une résistance en série avec la broche pour changer la gamme en 5V.
HT7333 LDO:
Un LDO ou Low Dropout Voltage Regulator est utilisé pour réguler la tension de l'ESP8285 à partir d'une batterie avec une perte de puissance minimale.
La tension d'entrée maximale du HT7333 LDO est de 12V et il est utilisé pour convertir la tension de la batterie en 3,3V, j'ai choisi ce HT7333 LDO car c'est un appareil avec un courant de repos très faible. Les condensateurs de découplage de 4,7 uF sont utilisés pour stabiliser le LDO.
Bouton poussoir pour le mode de programmation:
Le bouton-poussoir est connecté au GPIO0, si votre convertisseur UART n'a pas de broche RTS ou DTR, vous pouvez utiliser ce bouton-poussoir pour tirer manuellement le GPIO0 à la masse.
Résistances Pullup et Pulldown:
Les résistances pullup et pulldown sont là comme recommandé par la fiche technique.
En dehors de cela, de nombreuses normes et directives de conception ont été suivies lors de la conception du PCB. Si vous voulez en savoir plus à ce sujet, vous pouvez le trouver dans le guide de conception matérielle de l'ESP8266.
Fabrication de notre carte de développement ESP8285
Le schéma est fait et nous pouvons procéder à la mise en page du PCB. Nous avons utilisé le logiciel de conception de PCB Eagle pour fabriquer le PCB, mais vous pouvez concevoir le PCB avec votre logiciel préféré. Notre conception de PCB ressemble à ceci une fois terminée.
La nomenclature et les fichiers Gerber peuvent être téléchargés à partir des liens suivants:
- Fichiers Gerber de la carte de développement ESP8282
- Nomenclature de la carte de développement ESP8282
Maintenant que notre conception est prête, il est temps de fabriquer les circuits imprimés. Pour ce faire, suivez simplement les étapes ci-dessous:
Commande de PCB auprès de PCBWay
Étape 1: accédez à https://www.pcbway.com/, inscrivez-vous si c'est votre première fois. Ensuite, dans l'onglet Prototype PCB, entrez les dimensions de votre PCB, le nombre de couches et le nombre de PCB dont vous avez besoin.
Étape 2: Continuez en cliquant sur le bouton «Devis maintenant». Vous serez redirigé vers une page où définir quelques paramètres supplémentaires tels que le type de carte, les couches, le matériau pour le PCB, l'épaisseur, etc., la plupart d'entre eux sont sélectionnés par défaut, si vous optez pour des paramètres spécifiques, vous pouvez sélectionner en entendre.
Comme vous pouvez le voir, nous avions besoin de nos PCB noirs! donc, j'ai sélectionné le noir dans la section des couleurs du masque de soudure.
Étape 3: La dernière étape consiste à télécharger le fichier Gerber et à procéder au paiement. Pour s'assurer que le processus se déroule sans heurts, PCBWAY vérifie si votre fichier Gerber est valide avant de procéder au paiement. De cette façon, vous pouvez être sûr que votre PCB est facile à fabriquer et vous atteindra comme engagé.
Assemblage et programmation de la carte ESP8285
Après quelques jours, nous avons reçu notre PCB dans une boîte d'emballage soignée, et la qualité du PCB était bonne, comme toujours. La couche supérieure et la couche inférieure de la planche sont indiquées ci-dessous:
Après avoir reçu la carte, j'ai immédiatement commencé à souder la carte. J'ai utilisé une station de soudage à air chaud et beaucoup de flux de soudure pour souder le processeur principal, et d'autres composants sur le PCB sont soudés via un fer à souder. Le module assemblé est illustré ci-dessous.
Une fois que cela est fait, j'ai connecté mon fidèle module FTDI pour tester la carte en téléchargeant un croquis, les broches connectées et une image de la carte ci-dessous:
Module FTDI de la carte de développement ESP8285
3,3 V -> 3,3 V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Une fois, tous les branchements nécessaires, je l' ai mis en place l'IDE Arduino en sélectionnant le Conseil ESP8285 Generic Outils > Conseil > générique ESP8285 Module .
Test avec un simple croquis de clignotement de LED
Ensuite, il est temps de tester la carte en faisant clignoter une LED, pour cela, j'ai utilisé le code suivant:
/ * ESP8285 Clignotement Clignote la LED bleue sur le module ESP828285 * / #define LED_PIN 16 // Définit la broche LED clignotante void setup () {pinMode (LED_PIN, OUTPUT); // Initialise la broche LED en tant que sortie} // la fonction de boucle s'exécute encore et encore pour toujours void loop () {digitalWrite (LED_PIN, LOW); // Allumez la LED (notez que LOW est le niveau de tension) delay (1000); // Attend une seconde digitalWrite (LED_PIN, HIGH); // Éteignez la LED en faisant le retard de tension HIGH (1000); // Attendez deux secondes}
Le code est très simple, j'ai d'abord défini la broche LED pour cette carte, et c'est sur GPIO 16. Ensuite, j'ai défini cette broche comme sortie dans la section de configuration. Et enfin, dans la section boucle, j'ai activé et désactivé la broche avec un délai d'une seconde entre les deux.
Test de l'esquisse du serveur Web sur ESP8285
Une fois que cela fonctionnait correctement, il est temps de tester le croquis HelloServer à partir de l' exemple ESP8266WebServer. J'utilise un exemple ESP8266 car la plupart du code est compatible avec la puce esp8285. L'exemple de code se trouve également au bas de cette page.
Ce code est très simple aussi, tout d'abord, nous devons définir toutes les bibliothèques nécessaires, #comprendre
ensuite, nous devons entrer le nom et le mot de passe du hotspot.
#ifndef STASSID #define STASSID "votre-ssid" #define STAPSK "votre-mot de passe" #endif const char * ssid = STASSID; const char * mot de passe = STAPSK;
Ensuite, nous devons définir l'objet ESP8266WebServer. L'exemple ici le définit comme un serveur (80) le (80) est le numéro de port.
Ensuite, nous devons définir une broche pour une LED dans mon cas, c'était la broche n ° 16.
const int led = 16;
Ensuite, la fonction handleRoot () est définie. Cette fonction sera appelée lors de l'appel sur l'adresse IP de notre navigateur.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "bonjour de esp8266!"); digitalWrite (led, 0); }
Vient ensuite la fonction de configuration, entendez que nous devons définir tous les paramètres nécessaires comme-
pinMode (led, sortie); // nous avons défini la broche led comme sortie Serial.begin (115200); // nous avons démarré une connexion série avec 115200 bauds WiFi.mode (WIFI_STA); // nous avons défini le mode wifi comme station WiFi.begin (ssid, mot de passe); puis nous commençons la connexion wifi Serial.println (""); // cette ligne donne un espace supplémentaire while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * dans la boucle while, nous testons l'état de la connexion, un ESP est capable de se connecter au hotspot, la boucle freinera * / Serial.println (""); Serial.print ("Connecté à"); Serial.println (ssid); Serial.print ("adresse IP:"); Serial.println (WiFi.localIP ());
Ensuite, nous imprimons le nom et l'adresse IP du SSID connecté dans la fenêtre du moniteur série.
server.on ("/", handleRoot); // la méthode on de l'objet serveur est appelée pour gérer la fonction racine server.on ("/ inline", () {server.send (200, "text / plain", "this works as well");}); // encore une fois nous avons appelé la méthode on pour l'exemple / inline server.begin (); // ensuite nous démarrons le serveur avec la méthode begin Serial.println ("HTTP server started"); // et enfin nous imprimons une instruction dans le moniteur série. } // qui marque la fin de la fonction de configuration void loop (void) {server.handleClient (); }
Dans la fonction de boucle, nous avons appelé les méthodes handleClient () pour faire fonctionner correctement l'esp.
Une fois cela fait, la carte ESP8285 a mis un certain temps à se connecter au serveur Web et a fonctionné avec succès comme prévu, ce qui a marqué la fin de ce projet.
Le fonctionnement complet du tableau peut également être trouvé dans la vidéo ci-dessous. J'espère que vous avez apprécié cet article et en avez appris quelque chose de nouveau. Si vous avez le moindre doute, vous pouvez demander dans les commentaires ci-dessous ou utiliser nos forums pour une discussion détaillée.