STM32F103C8T6 - les premières étapes. Continuez à faire l'oscilloscope
Suite de l' article . Cette fois, nous essaierons de connecter USB sans baisse de la fréquence de mesure et de collecter une partie analogique monocanal.
Se battre avec USB
Notre MK dispose d'un matériel USB. Je voulais vraiment l'utiliser. Je le voulais même avant l'achat. Mais en raison de difficultés, il a été renvoyé "pour plus tard". Et les difficultés sont:- Les développeurs USB avaient apparemment trop de temps et d'intelligence. Le problème, c'est qu'ils estiment que tout le monde ne devrait pas en avoir moins. Si vous essayez de gérer l'USB conformément à la documentation, cette leçon n'est clairement pas pour un jour.
- Lors de la connexion des bibliothèques, des difficultés surgissaient constamment. Comment les connecter dans des projets Coocox que je n'ai pas compris.
En conséquence, sur un forum, j'ai trouvé un exemple converti en Coocox, qui fonctionnait.Les problèmes avec notre clé USB ne se sont pas arrêtés là. Un adaptateur USB <-> USART séparé a l'avantage d'être séparé, ce qui signifie que son fonctionnement ne dépend pas de notre MK, à savoir:- Fréquences (pour une fréquence de conversion plus élevée, j'ai overclocké MK);
- Redémarrages qui se produisent lors d'un clignotement.
Quand il y a un adaptateur, nous pouvons tout faire avec MK - l'adaptateur fonctionnera dans ce cas et le port COM du système n'ira nulle part.Avec l'overclocking, cette décision a été prise: à l'état normal, le MK fonctionne à la fréquence standard. Lorsque nous devons prendre une mesure, nous overclockons le MK (oui, contrairement à l'AVR, il peut le faire en déplacement), collecter des données, réduire la fréquence et transférer lentement les données vers l'ordinateur.Afin de ne rien changer après chaque redémarrage / clignotement, nous regardons le circuit imprimé:
Avec un cavalier, ici l'un des fils est tiré à +3,3 V, et l'ordinateur voit que l'appareil est connecté. Il a été constaté expérimentalement qu'après avoir flashé le MK, pour que le port COM fonctionne à nouveau, vous devez soit retirer et rebrancher le connecteur USB, soit retirer et remettre le cavalier. La deuxième option est beaucoup plus facile à automatiser. La deuxième broche du connecteur de cavalier à travers une résistance connectée au pied MK et après un redémarrage après un certain temps, je l'alimente à un niveau élevé. En conséquence, l'ordinateur pense que l'appareil a été éteint puis rallumé. Voici un autre point: si vous déconnectez l'appareil avec le port ouvert, puis le rallumez, le port COM apparaîtra dans le gestionnaire d'appareils, mais vous ne pourrez pas l'ouvrir (j'utilise Windows 7).Maintenant sur l'overclocking. Pour que l'USB fonctionne, MK peut fonctionner à des fréquences maximales:
Et pour obtenir la vitesse ADC maximale, je l'overclocke comme suit:
Pour changer le multiplicateur PLL, il doit être désactivé. Et quand au moins un instant la PLL est déconnectée, l'USB cadencé ne l'aime pas et l'application sur l'ordinateur se bloque dans la plupart des cas avec un port ouvert. Après une recherche infructueuse du problème sur Google, un moyen a été trouvé de combiner l'USB intégré et l'overclocking:- L'application sur le PC envoie la commande MK pour effectuer une série de transformations et ferme immédiatement le port;
- MK attend un certain temps (pour que l'application ait le temps de fermer le port) et désactive la ligne USBDP jusqu'à +3,3 V;
- MK désactive PLL, change le multiplicateur de 9 à 16 et rallume PLL;
- MK effectue une série de transformations mémorisant le résultat;
- MK désactive la PLL, change le facteur de 16 à 9 et rallume la PLL;
- MK comprend le tirage de la ligne USBDP à +3,3 V;
- Après un certain temps, le port COM virtuel apparaît à nouveau sur le PC;
- L'application sur le PC rouvre le port et envoie une commande au MK pour collecter le résultat;
- MK transmet lentement le résultat, l'application crée un calendrier.
Pas pratique, mais pour abandonner l'adaptateur matériel USB <-> USART et ne pas perdre 7/16 = 44% de la vitesse, ça vaut le coup.Nous prenons une autre charge
Tout le temps avant, j'utilisais cette carte:
elle est pratique lorsqu'elle est la principale de l'appareil, mais je ne veux pas la connecter avec des fils à la planche à pain. Pour ce faire, une autre carte a été commandée il y a longtemps
que vous pouvez coller dans la carte ou souder facilement dans une autre carte.Le circuit de cette carte était à peine trouvé sur le forum .Quelques impressions. En général, elle était contente. À gauche, les broches SWD, chaque contact est signé et, si les Chinois n'y avaient pas soudé le connecteur d'angle, la signature serait même visible et plus pratique que de regarder le brochage JTAG sur la carte précédente à chaque fois. Tout a été flashé sans problème, l'USB est apparu, mais un petit problème est survenu: la ligne USBDP était étroitement cachée à +3,3 V avec une résistance. Donc l'USB s'est avéré non déconnectable ... J'ai dû dessouder cette résistance et souder la ligne à travers la résistance jusqu'à la jambe libre de MK.Partie analogique
Avant cela, je ne travaillais qu'avec des signaux de la gamme 0 - 3,3V. Et ce n'est pas une sorte de zéro flottant, mais la terre fournie avec un câble USB. Mais je veux que l'oscilloscope puisse regarder la forme de la tension secteur (centaines de volts) et de l'ECG (fractions de millivolt).La tâche est généralement simple: prenez la plage d'entrée de l'oscilloscope et mappez-la à la plage d'entrée de l'ADC (0 - 3,3 V). Le circuit a été inventé comme ceci:
R1, R2, R3 - diviseur d'entrée. En transférant les jambes MK en mode d'entrée ou de sortie, nous pouvons changer le rapport de division.R11, R12, R13 - résistances d'un amplificateur non inverseur. Le gain dépend de l'état des pieds du contrôleur.Il y avait des doutes quant à la possibilité d'utiliser les sorties numériques de MK à de telles fins. La mesure a montré que le courant à travers la sortie MK à 3,3 mA mène la sortie à 80 mV, c'est-à-dire que la résistance de sortie est d'environ 24 Ohms. Le potentiel d'une sortie suspendue dans l'air à 3-4 mV diffère sur terre / puissance. Pour un système peu précis, le résultat est tout à fait acceptable.Afin de ne pas ruiner les caractéristiques de fréquence pour lesquelles j'ai tant combattu, l'opérateur est nécessaire non seulement de toute façon, mais rapidement. J'ai choisi l'AD826. Et puis il y a eu des ennuis. Peu importe, vous pouvez lire l'histoire ici et ici . En bref: de faux jetons sont vendus sur Ebay.Les abris ont besoin d'une alimentation bipolaire. Pour cela, une autre puce était nécessaire - LT1054. Le schéma de connexion est tiré de la fiche technique, donc je ne le décrirai pas en détail.Total
Se souvenir des plans de la première partie de l'article :- Battez USB pour abandonner le convertisseur USB <-> USART;
- Terminez la partie analogique afin que la plage de tension d'entrée ne soit pas de 0 à 3,3 V, mais plus décente;
- Rendre le mode multicanal;
- Mettre en œuvre le contrôle à partir d'un PC;
- Faites un appareil fini dans le boîtier;
Je comprends que j'ai terminé 1, 2 et partiellement le 4ème paragraphe.Un tel appareil est-il nécessaire dans le ménage? Eh bien, si vous le comparez à l'analogue C1-117, alors dans la fréquence C1-117, il est plusieurs fois plus élevé. Mais ici, vous pouvez enregistrer le signal pendant une durée suffisamment longue, puis l'examiner lentement. Ainsi, par exemple, j'ai vu une interruption déclenchée par mon générateur sur l'Arduino:
par rapport aux bricolages sur l'AVR ou la carte son, celle-ci dépasse considérablement leur fréquence de conversion.Au prix des composants, il s'avère:- LT1054 - 0,8 $;
- carte avec contrôleur - 4 $;
- opératoire - 3 $;
- résistances, condensateurs, diodes - pas plus de 1 $.
Un total d'environ 9 $ + planche + étui.La fréquence de conversion 9 MSPS vous permet d'observer la fréquence du signal jusqu'à 1 MHz. Pour 60 $, vous pouvez acheter un oscilloscope basé sur PC avec les meilleures fonctionnalités, mais il n'y a tout simplement pas d'offres pour le montant résultant.Cependant, l'appareil qui m'a été le plus précieux n'était pas l'appareil lui-même, mais l'expérience acquise en essayant de rendre quelque chose de plus difficile que de clignoter avec une diode et de prétendre être utile! Je n'ai jamais été impliqué dans l'électronique au travail et, en tant qu'amateur, je peux dire que ce n'est pas difficile. Long oui. Besoin d'une fonction - vous commencez à le faire. Sur le chemin, vous collectez beaucoup de râteaux, mais au final, cela se révèle. Et tant de fois. Même dans une tâche aussi petite que celle-ci, elle l'a été tant de fois. Par exemple, j'ai réussi à faire de la nutrition bipolaire pour l'ampli op uniquement à partir de la troisième tentative. Mais, s'il y a suffisamment de persévérance et que la tâche était, en principe, réalisable, le résultat aboutira certainement à quelque chose de similaire à ce qui avait été conçu à l'origine!Apparence de l'artisanat: suite
Source: https://habr.com/ru/post/fr385385/
All Articles