Carte d'interface Nucleo
Fabien Adam Juin 2018
Cahier des charges (Rappel et ajouts):
L’objectif (comme on l’avait défini à l’issue de nos rencontres à Tunis en Avril) est de réaliser un circuit d’interfaçage de la carte Nucleo facilitant la mise en œuvre d’expériences d’enseignement et permettant aux différents enseignants, français et tunisiens, d’informatique embarquée ou de traitement du signal, de partager leurs sujets, idées, problèmes autour de cette carte.
Cette carte d’interfaçage contiendrait :
● des connecteurs d’entrée de type BNC + jack femelle 3,5mm (pour les signaux sonores)
● un circuit de mise en forme d’un signal sonore (décalage autour de 1,6V pour la CAN)
● des connecteurs de sortie de type BNC + jack femelle + “picot d’accroche de sonde”
● un circuit de commande du moteur “pont en H” intégré (driver de puissance)
● des connecteurs pour les deux signaux de commandes et pour les signaux des codeurs de position
Une description de principe de cette carte est décrite sur la figure ci‑dessous :
Contraintes/difficultés rencontrées :
Ne connaissant pas les moyens de réalisation de circuits imprimés à disposition dans les établissements, la conception de la carte d'interface est contrainte à un routage 1 couche (simple face), avec une deuxième couche facultative permettant le repérage des connections.
04/04/2019 InterfaceNucleo - Google Docs
https://docs.google.com/document/d/1MDjxnacAlUYvNlVPCblBQJmCS8esnkY6Gj7wcXzUl5o/edit 2/12
La principale difficulté concerne le choix de la connectique. Les connecteurs audio jack à implanter sur CI ne sont pas vraiment standardisés (un connecteur de type Lumberg 1503‑09/17 a donc été choisi arbitrairement). Pour la connexion du moteur+codeur+alimentation des borniers à vis ont été choisis.
L'interfaçage avec la carte Nucleo peut être envisagé de différentes façons. La carte d'interface peut être conçue comme un shield venant s'enficher sur le connecteur "Arduino compatible". Cette solution présente l'avantage de la compacité, mais contraint fortement le routage, ne permet plus l'accès aux E/S, et rend impossible l'accès aux boutons user et reset. Le choix se porte donc vers l'utilisation d'une carte support du Nucleo, connectée via ST Morpho (connecteur double rangée qui complexifie un peu le routage, et sûrement un peu plus cher à l'achat). Le principal avantage est que l'accès à l'ensemble des ports E/S est conservé (via Arduino ou Morpho).
Conception : (Utilisation du logiciel Eagle, disponible en version gratuite ‑> possibilité de diffuser les fichiers CAD pour modifications si nécessaire).
Schéma :
Affectation des E/S :
Fonction Repère Morpho Arduino
Entrée analogique 1 EA0 / E1 PA_0 A0
Entrée analogique 2 EA1 / E2 PA_1 A1
Sortie analogique 1 DAC1 / S1 PA_4 A2
Sortie analogique 2 DAC2 / S2 PA_5 D13
PWM1 PWM1 PB_6 D10
PWM2 PWM2 PC_7 D9
Erreur Moteur EF PA_7 D11
Codeur A SA PB_8 D15
Codeur B SB PB_9 D14
04/04/2019 InterfaceNucleo - Google Docs
https://docs.google.com/document/d/1MDjxnacAlUYvNlVPCblBQJmCS8esnkY6Gj7wcXzUl5o/edit 4/12
Réalisation du prototype :
Liste des composants et estimation (grossière) du coût :
Part Value Description Prix
unitaire
Prix total
C1, C2, C3, C4 1uF Condensateur NP 0,2 0,8 €
C5 100nF Condensateur NP 0,1 0,1 €
C6 100uF Condensateur électrolytique 0,1 0,1 €
EA0, EA1, S1, S2 BN35N61 BNC CONNECTOR 2 8 €
IC1 TLE5206‑2 5‑A H‑Bridge for DC‑Motor 4 4 €
LED1 LED 3mm 0,1 0,1 €
R1, R2, R3, R4 100k Résistance 1/4W 0,1 0,4 €
R5 1k Résistance 1/4W 0,1 0,1 €
ENTREE, SORTIE 1503_09 Jack femelle 3.5 mm 1,5 3 €
TP1, 2, 3, 4, 5, 6 TPPAD1‑17Y Test pad 0,1 0,4 €
U$1 NUCLEO_L476RG2 10 10 €
ALIM, MOTEUR, CODEUR
Bornier à vis 0,3 0,9 €
Total : 27,9 €
Premiers tests : Filtre synthétisé :
04/04/2019 InterfaceNucleo - Google Docs
https://docs.google.com/document/d/1MDjxnacAlUYvNlVPCblBQJmCS8esnkY6Gj7wcXzUl5o/edit 6/12
Sweep 0Hz à 20kHz :
Bruit blanc en entrée, fft de la sortie :
04/04/2019 InterfaceNucleo - Google Docs
https://docs.google.com/document/d/1MDjxnacAlUYvNlVPCblBQJmCS8esnkY6Gj7wcXzUl5o/edit 8/12
RI théorique :
RI mesurée + FFT :
04/04/2019 InterfaceNucleo - Google Docs
https://docs.google.com/document/d/1MDjxnacAlUYvNlVPCblBQJmCS8esnkY6Gj7wcXzUl5o/edit 10/12
Mesure du temps d'exécution de la CAN (2 x analog.read()) par passage à 1 d'une sortie numérique:
Conclusion : la fonction analog.read() "consomme" environ 24,4µs, ce qui limite fortement la fréquence d'échantillonnage atteignable, et restreint son usage à des applications audio "dégradé".
Ce temps de conversion, dans la configuration de filtrage considéré, masque le temps de traitement
"utile" (calcul du filtre).
04/04/2019 InterfaceNucleo - Google Docs
https://docs.google.com/document/d/1MDjxnacAlUYvNlVPCblBQJmCS8esnkY6Gj7wcXzUl5o/edit 12/12