... ou comment approvisionner votre projet DIY avec MIPS ou ARM léger avec une carte micro-SD rapide.
Bonjour à toute la communauté respectée. Je voudrais continuer mon histoire sur le
boîtier , à savoir comment elle a réussi à connecter une carte micro-SD au port USB 2.
La racine de tout le problème était que l'USB 2, et pas seulement un, a son module processeur, mais hélas, pas de QSPI (QuadSPI) ou d'interface de carte. Comment ce triste fait est-il lié aux cartes SD? Très simple, toute carte SD dans la base physique de sa connexion possède une interface SPI (SerialPeripheral). Le SPI classique utilise une ligne physique pour transmettre et recevoir des données série. Simple et économique, à la fois en termes d'argent et de milliampères. Cependant, comme vous le savez, les inconvénients sont une continuation des avantages, et pour SPI, ils sont principalement devenus un taux d'échange de données relativement faible. Pour résoudre ce problème, un mode d'échange de données à quatre bits avec une carte SD a été inventé, qui est un proche parent du protocole QSPI. Lorsque vous utilisez ce mode, le contrôleur hôte et la carte conviennent d'abord des paramètres d'échange en mode bit unique, puis passent en mode quatre bits lorsqu'ils n'utilisent pas une ligne pour la réception et la transmission, mais quatre pour tout (plus une pour indiquer la commande).
Que faire si l'équipement ne prend pas directement en charge le protocole quatre bits, mais qu'il nécessite tout de même un échange rapide? La réponse évidente est de fournir au projet un pont «d'interface rapide» - une «carte SD à quatre bits».
Pour résoudre ce problème, deux adaptateurs USB-SD ont été achetés et soumis à une préparation (la vivisection n'a pas été utilisée - nous ne sommes pas des monstres). Avant de réchauffer le fer à souder et le sèche-cheveux, une vérification très importante a été effectuée pour voir si le module processeur Debian voit le sifflet de l'adaptateur qui lui est proposé. Le test a été un grand succès, bienvenue en salle d'opération. Le sifflet acheté ressemble à ceci:
Et comme ça:
Après le démontage du boîtier, il est devenu possible de distinguer la carte de circuit imprimé (de tous ses deux côtés).
Le circuit est simple, sa base est l'IC GL823F - un microcontrôleur avec un système de commande 8051 et avec une mémoire de masque, équipé d'une unité d'interface matérielle USB 2, apparemment pas de très haute qualité (pourquoi je dis cela - je ne vois pas la résistance de polarisation exacte de la partie analogique et de l'oscillateur à cristal , ce qui signifie restaurer la fréquence à partir du signal reçu sur la base du générateur étalonné interne). Fonctionnera, mais pas HiFi, non. Tout le reste est un kit de carrosserie minimal: condensateurs de blocage, résistances de traction et de limitation de courant, LED et connecteurs, tout cela est de l'ingénierie.
Nous soufflons les composants avec un sèche-cheveux et examinons la carte de circuit imprimé. À bien des égards, la planche est double face avec des trous de placage. Après un bref examen de la carte au microscope, l'esquisse du schéma de connexion et la comparaison avec la fiche technique des circuits intégrés GL, nous restaurons le schéma électrique.


Et ici, nous commençons maintenant à voir un petit tracas. Quoi exactement? Notre boîtier est alimenté par une tension garantie de 3,3 V, et le circuit du GL823 nécessite 5 volts. Eh bien, comme requis - elle est tellement habituée, car c'est tellement ce que l'USB lui donne. La Micro SD elle-même est alimentée par 3,3 V, de sorte que le stabilisateur LDO intégré est ajouté au GL823. D'où la question - et si le circuit est alimenté à 3,3 V, peut-il fonctionner? Si LDO parvient à ne pas faire tomber trop de tension, c'est possible, mais tous les LDO ne sont pas également utiles. La fiche technique donne un petit indice - la sortie qui alimente la carte SD est appelée PMOS. Cette abréviation ne peut que se réjouir - on peut supposer que le schéma HighSide PMOS est utilisé, dans lequel la chute de tension à travers l'élément de contrôle peut être très faible. Cependant, tout cela est du raisonnement, et le seul argument décisif est l'expérience, il est le fils d'erreurs difficiles.
Alors, quel genre d'expérience allons-nous offrir? Essayons d'alimenter l'IC avec deux tensions commutées - à partir de 5 V USB ou de 3,3 V, obtenues par un stabilisateur séparé. Nous avons maintenant suffisamment de connaissances pour dessiner un diagramme schématique.
La numérotation des composants sur le circuit est quelque peu étrange, car une commande multiple avec plusieurs autres circuits de test a été commandée chez le fabricant de PCB, et tous avaient la numérotation des composants. Lors de la préparation de l'article, j'ai apporté le schéma électrique conformément à la photo, et il s'est avéré ce qui s'est passé.
Que voyons-nous dans le diagramme? De toute évidence, le noyau est GL823F. Le connecteur micro-SD y est évidemment connecté. La seule chose à noter - la broche 9 du connecteur est le contact coulissant de la carte dans la fente, lorsque la carte est en place, elle est court-circuitée à la masse. C7-C10 - condensateurs de blocage sur les circuits de puissance. Si vous souhaitez augmenter légèrement l'immunité au bruit, les broches 2 et 16 DD1 peuvent être connectées via une self de ferrite. R4 limite le courant à travers HL1, R5 tire la ligne GPIO à un en l'absence d'une carte dans la fente. DA2, C11 et C12 forment un régulateur de tension linéaire de 3,3 V.
Puisqu'au moment où le circuit était en train d'être dessiné, d'une part, il n'était pas clair combien il consommerait, et d'autre part il y avait une expérience désagréable à utiliser certains lecteurs flash USB (cela ne pointait pas avec un doigt) qui consommaient 400mA lors de l'enregistrement, il a été décidé d'ajouter R6. En général, il s'agit d'une technique standard - avec une consommation notable de LDO linéaire dans le circuit (les mots clés ici sont LowDropout), mettez une résistance à faible résistance avec une puissance accrue à l'entrée et dissipez une partie de la chaleur sur elle, et non sur le stabilisateur. L'expérience a cependant montré qu'il n'y a pas besoin de R6, et vous le verrez toujours sur la photo de la carte.
XS4 est juste conçu pour mener une expérience - la puissance de commutation DD1 entre 5 et 3,3 Volts. XS2 est un connecteur USBB standard pour que vous puissiez le placer devant vous et ne pas grimper pour libérer des ports USB sous la table du PC.
Voici ce qui s'est passé après le traçage, la fabrication des logiciels et l'installation:
Comme vous pouvez le voir, le côté inférieur de la planche est complètement simple et le côté supérieur n'est pas beaucoup plus compliqué.
Je ne vais pas retarder la fin du tracé, je dirai tout de suite que l'expérience a montré qu'il est possible d'alimenter le GL823F à partir d'une source 3,3 V, la commutation XS4 n'affecte rien sauf la consommation d'énergie (pas actuelle)
Pour nous assurer que la carte faite fonctionne correctement, nous avons mesuré la vitesse d'enregistrement et le courant consommé en même temps pour trois cartes micro-SD différentes. Concurrents photo - en studio!
L'évaluation de la consommation de courant (mesurer ce qui a été fait, ma langue ne peut pas être appelée) a été réalisée à l'aide d'un tel compteur combiné courant-tension-batterie. Franchement, il s'est avéré être surprenant qu'il transmette également des données USB.
Seule la consommation actuelle a été utilisée, le prix de division de cet appareil, pour ainsi dire, est de 0,01A, plus au moins une erreur d'échantillonnage de 1 unité du bit le moins significatif est toujours de 0,01A. Par conséquent, le tableau ne montre que les plages d'indications, entre lesquelles le chiffre du courant consommé a sauté. J'espère cependant que pour ceux qui souhaitent appliquer GL823 dans leurs décisions, il sera toujours possible d'évaluer la barre de consommation supérieure.
En plus de tester la carte réalisée, pour augmenter l'objectivité, quelques mesures de contrôle ont été effectuées à l'aide d'un autre lecteur de carte SD. En voici un:
Cet échantillon n'était pas préparé, je l'ai emprunté à ma fille pendant 5 minutes, et si je l'avais vidé, ils m'auraient vidé tout de suite. Une chose est sûre - la puce qu'elle contient n'appartient pas à la famille GL823, dont les membres sont capables de travailler autant avec la norme SD, une multi-norme est trop difficile pour eux.
Les vitesses de lecture et d'écriture ont été mesurées de la manière la plus simple: le même fichier d'une taille de 1 058 268 ko a été écrit et lu sur la carte de test. L'expérience de contrôle (sur un autre lecteur) n'a été réalisée que pour exclure les erreurs système par l'une ou l'autre ordre décimal, les données y relatives n'ont pas été traitées, je suis seulement devenu convaincu qu'environ les temps et les courants de consommation battaient ceux obtenus à l'étape précédente.
Si vous souhaitez appliquer le circuit décrit dans votre projet, alors lors de l'estimation de la consommation, corrigez le fait que le courant d'alimentation provenait d'une tension USB de 5 Volts, mais le GL823 était alimenté par une tension de 3,3 V, et la différence est de 5-3,3 = 1,7 (et c'est 50 % de 3,3) vient d'être perdu sur DA2. Lorsqu'ils sont alimentés par une source centralisée (et, j'espère, pulsée) de 3,3 Volts, nous obtenons des économies décentes.