Cliquez ici pour accéder à l'intégration du visualiseur et parcourir ce projet
Il y a un groupe de produits sur lesquels je travaille qui nécessitent un démarrage et une configuration via RS-232 ou UART, et j'aime démarrer les prototypes en les connectant à mon ordinateur portable. Cependant, pour accéder à cette interface, je dois envoyer et recevoir des données via un port COM. Malheureusement, mon ordinateur portable n'a que des ports USB, donc j'ai besoin de convertir entre le port USB et l'interface UART. Normalement, j'utilise un petit module convertisseur d'interface qui peut être acheté en ligne.
Les convertisseurs que j'ai trouvés en ligne sont de assez mauvaise qualité et ils ont tendance à mourir facilement à cause de chocs ou de surtensions. Pour fournir une certaine protection contre les surtensions, je vais montrer comment concevoir un pont USB vers UART en utilisant le CP2102, un composant convertisseur d'interface populaire pour les lignes USB 2.0. Vous pouvez regarder le tutoriel complet pour ce projet dans la vidéo suivante.
Vous vous demandez peut-être, pourquoi ne pas simplement placer un de ces circuits directement sur les prototypes, et ensuite accéder à l'interface UART de vos prototypes avec un câble USB ? C'est une question légitime. Il y a deux raisons à cela :
Donc, avec cela à l'esprit, mettons-nous au travail sur un petit module pour un convertisseur USB vers UART CP2102.
Le CP2102 de Silicon Labs est un module convertisseur d'interface compact qui fait le pont entre les interfaces USB et UART. J'aime ce composant pour les systèmes qui ont besoin de se connecter à l'USB parce qu'il existe des pilotes prêts à l'emploi pour la puce qui permettent de l'accéder via un port COM à travers une application terminale (j'utilise TeraTerm). Cette puce est l'une des nombreuses utilisées dans les convertisseurs USB-vers-série que vous trouverez sur Amazon ou Alibaba.
Le CP2102 est disponible dans un boîtier QFN-28 et inclut quelques fonctionnalités utiles :
Il existe également un bloc optionnel de broches qui agissent comme des indicateurs ou des broches de contrôle lorsqu'elles sont utilisées sur la même carte qu'un processeur, tel qu'un microcontrôleur. Ces broches peuvent être contrôlées par des GPIOs. Nous n'avons pas besoin de ces dernières pour ce module car le module fonctionnera indépendamment de tout microcontrôleur.
Les objectifs de conception pour ce projet sont simples : la conception émettra ses données UART, l'alimentation et la masse vers un connecteur à broches. La conception devra s'intégrer dans un bloc standard de ports USB. Enfin, je vais ajouter une protection supplémentaire contre les surtensions sur toutes les lignes de données et la ligne de bus +5 V pour fournir une protection maximale contre les surtensions au CP2102 et à l'appareil hôte.
Premièrement, examinons brièvement le circuit d'application pour le CP2102 (page 15 de la fiche technique).
Les schémas suivront généralement ce circuit d'application avec quelques ajouts à discuter ci-dessous. Étant donné que nous utilisons uniquement ce module sur la carte sans aucun autre composant numérique, nous n'avons pas à nous soucier de la capacité supplémentaire du bus d'alimentation autre que les condensateurs discrets spécifiés dans le schéma d'application. Après avoir examiné d'autres modules qui utilisent ce composant et des composants similaires, vous verrez le même type et le même nombre de condensateurs.
Dans ce schéma d'application, nous voyons la recommandation typique pour le placement des diodes TVS sur les lignes USB. La pièce qu'ils recommandent est Littlefuse SP0503BAHT ou équivalent. Initialement, j'ai placé une diode TVS unidirectionnelle 0402 pour ce composant. Comme je le discute ci-dessous, cela sera juste un emplacement provisoire pour le moment et cela sera remplacé dans l'assemblage final.
Nous n'utiliserons pas de circuit de transceiver externe ni la broche de réinitialisation dans cette itération. Au lieu de cela, nous utiliserons simplement les circuits situés sur le côté gauche de l'écran. Je vais également ajouter des diodes TVS aux lignes Rx et Tx de l'UART. La tension maximale attendue pour cette ligne est VDD - 0,8 V. avec un VDD maximum de 3,6 V, la tension maximale de la ligne UART sera de 2,4 V.
Pour offrir une protection maximale possible sur les lignes UART, nous pourrions placer une diode TVS avec un seuil de déclenchement plus bas. La diode TVS recommandée protège seulement jusqu'à 5,5 V, ce qui est juste en dessous de la note de surtension pour les I/Os sur le CP2102. Le risque d'utiliser une diode TVS plus petite est qu'elle aura une tension de serrage plus basse et ne pourra pas résister à des impulsions ESD de tension plus élevée.
Les schémas finalisés sont présentés ci-dessous. Le dispositif est simple et suit essentiellement le circuit d'application. J'ai choisi d'utiliser l'alimentation +5V entrant dans le module depuis le connecteur USB (réseau VBUS) et je l'ai passée à l'entrée du régulateur sur le CP2102. L'alimentation +5V et l'alimentation de sortie +3V3 sont toutes deux accessibles sur le connecteur à broches et peuvent être utilisées pour alimenter un dispositif externe jusqu'aux limites de puissance de la norme USB 2.0.
La disposition du PCB sera réalisée sur deux couches avec tous les composants placés sur la couche supérieure. La disposition du PCB sera suffisamment petite pour que nous n'ayons pas nécessairement besoin de routage à haute vitesse des lignes USB, mais nous l'implémenterons ici comme un exemple simple pour montrer comment cela peut être fait sur ce type de carte. Cette carte est suffisamment simple pour qu'elle n'ait pas besoin d'être placée sur quatre couches et les exigences de routage USB peuvent être satisfaites avec un routage différentiel coplanaire.
Le placement initial est couvert en deux sections ; le connecteur USB et les diodes TVS pour les lignes USB sont placés sur le côté gauche de la carte, et le connecteur à broches avec les diodes D4 et D5 sont placés sur le côté droit de la carte. Le placement sur le côté gauche du schéma de la carte est montré ci-dessous.
Le placement initial du côté du connecteur à broches est montré ci-dessous. J'ai utilisé un connecteur à broches à angle droit qui dépasse du bord de la carte afin que le module soit de profil bas. Cela permet également d'utiliser des fils volants standards ou un câble à pas de 100 mil pour se connecter à une autre carte. Initialement, le brochage était défini de sorte que l'alimentation +5 V (réseau VBUS) serait routée dans le connecteur à broches du côté supérieur, mais cela a été plus tard changé pour le côté inférieur afin de simplifier le routage.
Le placement est simple des deux côtés de la carte et le point principal ici est de garder les condensateurs (C1-C4) proches de leurs broches d'alimentation respectives. Le placement de D4 et D5 sera entre U1 et P1, mais je localiserai ceux-ci une fois le routage commencé afin de pouvoir m'assurer que le routage à proximité ne sera pas désordonné. Le routage USB peut maintenant aller directement dans le connecteur (J1) avec ce placement. Le point suivant est de calculer la largeur et l'espacement des pistes USB sur cette carte à 2 couches.
En se basant sur la minimisation des coûts, la carte doit être réglée à l'épaisseur standard de 62 mils. Le côté arrière sera un plan de masse, et le côté supérieur utilisera un routage coplanaire pour la paire différentielle. Le reste de L1 aura un plan de cuivre. J'ai utilisé le réglage Dk par défaut de 4.8 dans l'empilement, qui est très proche de la valeur standard de ma maison de fabrication choisie pour les PCBs à 2 couches. Les paramètres d'impédance sont indiqués ci-dessous.
Ici, nous profitons de l'espacement entre les paires et de la distance jusqu'au plan de masse en cuivre sur L1 pour définir l'impédance différentielle à la valeur cible. La valeur de largeur a été définie en fonction de la taille des pads sur le CP2102 car je ne veux pas réduire le routage dans l'empreinte pour U1. Avec ces paramètres, nous pouvons router les paires différentielles vers le connecteur et compléter l'agencement.
La disposition finale du PCB est montrée ci-dessous. Il y a ici une longueur supplémentaire qui pourrait être supprimée si nous voulons miniaturiser le module. Juste en utilisant l'outil de mesure (Ctrl + M), j'estimerais que nous pourrions couper environ 400-500 mils de longueur juste en déplaçant les composants dans la moitié droite du circuit imprimé plus près du connecteur USB.
Actuellement, la taille de ce module est similaire à d'autres modules que vous pouvez acheter en ligne, donc le point ci-dessus n'est pas critique. Il y a trois autres améliorations qui pourraient être mises en œuvre dans ce projet :
Je vais lancer une série de ces produits en production, et nous procéderons à des tests pour vérifier que les cartes fonctionnent correctement. Comme je l'expliquerai dans une autre vidéo et un autre blog, je vais probablement remplacer les diodes par TPD1E10B06DPYR lors de l'assemblage car ces diodes alternatives offrent une protection bidirectionnelle et elles sont plus proches des spécifications SP0503BAHT.
Suivez ce lien pour télécharger une archive ZIP avec les fichiers sources du projet. Vous pouvez également utiliser le lien de téléchargement dans l'encart ci-dessus pour accéder aux fichiers sources.
Lorsque vous avez besoin de créer rapidement de petits modules et de les préparer pour la fabrication, utilisez les outils CAO 2D et 3D dans Altium Designer®. Lorsque vous avez terminé votre conception et que vous souhaitez transmettre les fichiers à votre fabricant, la plateforme Altium 365™ facilite la collaboration et le partage de vos projets.
Nous n'avons fait qu'effleurer la surface de ce qui est possible avec Altium Designer sur Altium 365. Commencez votre essai gratuit d'Altium Designer + Altium 365 dès aujourd'hui.