En dehors de mon travail principal, je fais pas mal de projets familiers, mais je n'ai jamais écrit à leur sujet. Maintenant, j'ai décidé de rectifier la situation et d'écrire sur le projet que je viens de terminer. Cette œuvre de George Hilliard m'a inspiré pour la créer .
Objectif du projet
Créez la version la moins chère d'une carte de visite USB Flash, qui contiendrait mon CV, le code source et quelques autres fichiers. Ce faisant, utilisez les composants disponibles qui peuvent être commandés auprès du LCSC et du JLCPCB.
Que devais-je faire pour cela?
Procurez-vous des composants bon marché, mais pas des biens de consommation, disposez-leur une carte de circuit imprimé, soudez-les et écrivez le micrologiciel.
Que fait ma carte de visite à la fin?
Comme vous pouvez le deviner, ma carte de visite imite une petite clé USB contenant un résumé bilingue, un code source, un micrologiciel, des fichiers gerber, des circuits et un circuit imprimé, ainsi que ma photo.
Noeuds principaux du projet
Microcontrôleur STM32F070F6 - c'était la version la moins chère du contrôleur avec un périphérique USB à bord de ceux que j'ai trouvé;
Winbond W25Q32 - 4 Mo de mémoire flash série;
LED 0805 - blanches et bleues pour la beauté;
LP3992 - convertisseur abaisseur de tension pour 3,3 V, alimentation des microcircuits;
USBLC6-2 - protège le "connecteur" USB de l'électricité statique.
Mon approche du développement de projets pour animaux de compagnie
Il y a une certaine manière à laquelle j'adhère lors de la programmation de microcontrôleurs:
- N'utilisez pas SPL, HAL et d'autres bibliothèques pour la programmation de périphériques. J'adhère à cette règle dans l'emploi principal;
- N'utilisez pas le système d'exploitation. Je trouve que mes projets personnels ne sont pas assez complexes pour utiliser cet outil utile;
- . ( );
- . ( ).
Composants
Pour commencer, je devais choisir les composants de mon idée. à part le relâchement, je n'avais rien. Pour cela, j'ai décidé d'utiliser le service LCSC, comme option bon marché et abordable pour le développement de la maison. Comme il s'est avéré, à bien des égards, je suis entré la tunique dans la tunique. Par exemple, j'ai utilisé toutes les jambes du microcontrôleur, gardées à moins de 6 Ko de RAM, dont 4 Ko j'ai pris un tampon pour transférer des données de l'USB vers le SPI Flash, j'ai utilisé des jambes pour l'USB qui ne sont pas physiquement présentes sur ce contrôleur, etc.
En raison du prix, les éléments suivants sont sortis:
Microcontrôleur STM32F070F6 -0,64 $
Mémoire flash série Winbond W25Q32 - 0,35 $
Convertisseur abaisseur LP3992-33B5F - 0,04 $
Protection statique USBLC6-2SC6 -0,08 $
Quartz - 0,15 $
J'ai utilisé des résistances et des condensateurs dans le facteur de forme 0603, les LED 0805. J'avais déjà tout cela, il n'est donc pas possible de calculer leur coût. Cependant, nous pouvons dire avec confiance qu'au prix, tout rentre dans 1,5 $ avec une marge. Cela n'a pas l'air bon marché par rapport au projet Billiard, mais mes prix ne sont pas de gros.
Carte de circuit imprimé et des circuits I conçu le circuit
et circuit imprimé carte dans Altium Designer, je joins les captures d' écran.
Tous les composants sont attachés selon les fiches techniques. Le microcircuit de la mémoire flash est démarré à partir du contrôleur via le transistor MIS.
Ici, le problème était le connecteur USB. Selon la spécification USB, il a une épaisseur de 2 mm. Commander une carte d'une telle épaisseur coûte cher et ce n'est pas très pratique pour une carte de visite. J'ai vu un moyen de sortir de la situation d' une personnequi a fait une carte de visite musicale. Il a utilisé une carte de 1 mm et y a fait un connecteur supplémentaire, qui se détache et soudé sur le principal. J'ai fait la même chose.
Soudure La
soudure des composants ne posait généralement pas de problème. J'ai tout scellé avec un sèche-cheveux et de la pâte à souder. Le seul problème pour moi était la soudure du microcontrôleur. Trop de taches ont été produites à partir de la pâte à souder, il est difficile de souder de telles jambes avec un fer à souder. En conséquence, je viens de manquer toutes les pastilles avec de la soudure, puis j'ai soudé le microcontrôleur avec un sèche-cheveux.
Programmation
Je n'ai rien de spécial à dire, j'ai tout programmé à un niveau bas, en C ++. J'attache le code source . J'ai accédé aux registres selon les articlesLamerok. L'USB est implémenté à l'aide de moyens de microcontrôleur. La puce de mémoire flash fonctionne sur SPI via DMA à la vitesse la plus élevée. Les diodes clignotent à tour de rôle pour interrompre la minuterie à 250 mS.
Conclusion
Sur ce je pense tout, j'ai décrit les points principaux. Si vous avez besoin de révéler quelque chose plus en détail (programmation USB, Flash ou circuits), écrivez, je le ferai certainement.
Bonne chance!