L'application de la puissance LCD à puissance réglable basée sur l'ASIC DWIN T5L

——Partagé depuis DWIN Froum

En utilisant la puce DWIN T5L1 comme noyau de contrôle de toute la machine, reçoit et traite le toucher, l'acquisition ADC, les informations de contrôle PWM et pilote l'écran LCD de 3,5 pouces pour afficher l'état actuel en temps réel.Prend en charge le réglage tactile à distance de la luminosité de la source de lumière LED via le module WiFi et prend en charge l'alarme vocale.

Fonctionnalités du programme :

1. Adoptez la puce T5L pour fonctionner à haute fréquence, l'échantillonnage analogique AD est stable et l'erreur est faible.

2. Prend en charge le TYPE C directement connecté au PC pour le débogage et la gravure de programmes ;

3. Prend en charge l'interface de base du système d'exploitation à grande vitesse, le port parallèle 16 bits;Port PWM de base de l'interface utilisateur, sortie du port AD, conception d'application à faible coût, pas besoin d'ajouter un MCU supplémentaire ;

4. Prend en charge le Wi-Fi, la télécommande Bluetooth ;

5. Prend en charge une tension large de 5 ~ 12 V CC et une large plage d'entrée

image1

1.1 Schéma de principe

image2

1.2 Carte PCB

image3

1.3 Interface utilisateur

Présentation de la honte:

(1) Conception du circuit matériel

image4

1.4 Schéma du circuit T5L48320C035

1. Alimentation logique MCU 3,3 V : C18, C26, C27, C28, C29, C31, C32, C33 ;

2. Alimentation centrale MCU 1,25 V : C23, C24 ;

3. Alimentation analogique MCU 3.3V: C35 est l'alimentation analogique pour MCU.Lors de la composition, la masse du noyau 1,25 V et la masse logique peuvent être combinées ensemble, mais la masse analogique doit être séparée.La masse analogique et la masse numérique doivent être collectées au pôle négatif du grand condensateur de sortie LDO, et le pôle positif analogique doit également être collecté au pôle positif du grand condensateur LDO, de sorte que le bruit d'échantillonnage AD soit minimisé.

4. Circuit d'acquisition de signal analogique AD : CP1 est le condensateur de filtre d'entrée analogique AD.Afin de réduire l'erreur d'échantillonnage, la masse analogique et la masse numérique du MCU sont séparées indépendamment.Le pôle négatif de CP1 doit être connecté à la masse analogique du MCU avec une impédance minimale, et les deux condensateurs parallèles de l'oscillateur à cristal sont connectés à la masse analogique du MCU.

5. Circuit buzzer : C25 est le condensateur d'alimentation du buzzer.Le buzzer est un dispositif inductif et il y aura un courant de crête pendant le fonctionnement.Afin de réduire le pic, il est nécessaire de réduire le courant d'attaque MOS du buzzer pour faire fonctionner le tube MOS dans la région linéaire et de concevoir le circuit pour qu'il fonctionne en mode de commutation.Notez que R18 doit être connecté en parallèle aux deux extrémités du buzzer pour régler la qualité sonore du buzzer et rendre le son net et agréable.

6. Circuit WiFi : échantillonnage de puce WiFi ESP32-C, avec WiFi + Bluetooth + BLE.Sur le câblage, la masse de l'alimentation RF et la masse du signal sont séparées.

image5

1.5 Conception de circuits Wi-Fi

Dans la figure ci-dessus, la partie supérieure du revêtement de cuivre est la boucle de terre de puissance.La boucle de masse de réflexion de l'antenne WiFi doit avoir une grande surface par rapport à la masse d'alimentation, et le point de collecte de la masse d'alimentation est le pôle négatif de C6.Un courant réfléchi doit être fourni entre la masse d'alimentation et l'antenne WiFi, il doit donc y avoir un revêtement de cuivre sous l'antenne WiFi.La longueur du revêtement de cuivre dépasse la longueur d'extension de l'antenne WiFi, et l'extension augmentera la sensibilité du WiFi ;pointe au pôle négatif de C2.Une grande surface de cuivre peut protéger le bruit causé par le rayonnement de l'antenne WiFi.Les 2 masses de cuivre sont séparées sur la couche inférieure et collectées sur le plot central de l'ESP32-C via des vias.La masse de puissance RF a besoin d'une impédance inférieure à la boucle de masse du signal, il y a donc 6 vias de la masse de puissance au pad de puce pour assurer une impédance suffisamment basse.La boucle de masse de l'oscillateur à cristal ne peut pas être traversée par une puissance RF, sinon l'oscillateur à cristal générera une gigue de fréquence et le décalage de fréquence WiFi ne pourra pas envoyer et recevoir de données.

7. Circuit d'alimentation LED de rétroéclairage : échantillonnage de la puce du pilote SOT23-6LED.L'alimentation CC/CC de la LED forme indépendamment une boucle et la masse CC/CC est connectée à la masse LOD 3,3 V.Étant donné que le noyau du port PWM2 a été spécialisé, il émet un signal PWM de 600K et un RC est ajouté pour utiliser la sortie PWM comme commande ON/OFF.

8. Plage d'entrée de tension : deux abaisseurs DC/DC sont conçus.Notez que les résistances R13 et R17 dans le circuit DC/DC ne peuvent pas être omises.Les deux puces DC/DC prennent en charge jusqu'à 18 V d'entrée, ce qui est pratique pour l'alimentation externe.

9. Port de débogage USB TYPE C : le TYPE C peut être branché et débranché vers l'avant et vers l'arrière.L'insertion vers l'avant communique avec la puce WIFI ESP32-C pour programmer la puce WIFI;l'insertion inversée communique avec le XR21V1410IL16 pour programmer le T5L.Le TYPE C prend en charge l'alimentation 5V.

10. Communication par port parallèle: le noyau du système d'exploitation T5L possède de nombreux ports IO libres et une communication par port parallèle 16 bits peut être conçue.Combiné avec le protocole de port parallèle ST ARM FMC, il prend en charge la lecture et l'écriture synchrones.

11. Conception d'interface haute vitesse LCM RVB: la sortie T5L RVB est directement connectée au LCM RVB et une résistance tampon est ajoutée au milieu pour réduire les interférences d'ondulation de l'eau LCM.Lors du câblage, réduisez la longueur de la connexion de l'interface RVB, en particulier le signal PCLK, et augmentez les points de test de l'interface RVB PCLK, HS, VS, DE ;le port SPI de l'écran est connecté aux ports P2.4 ~ P2.7 du T5L, ce qui est pratique pour concevoir le pilote d'écran.Diriger les points de test RST, nCS, SDA, SCI pour faciliter le développement du logiciel sous-jacent.

(2) Interface DGUS

image6 image7

1.6 Commande d'affichage des variables de données

(3) SE
//———————————Format de lecture et d'écriture DGUS
structure typedef
{
adresse u16 ;// Adresse de la variable UI 16 bits
u8 dataLen ;//longueur de données de 8 bits
u8 *pBuf;// Pointeur de données 8 bits
} UI_packTypeDef ;//DGUS lire et écrire des paquets

//——————————-contrôle d'affichage des variables de données
structure typedef
{
vice-président u16 ;
u16 X ;
u16 O ;
Couleur u16 ;
u8 Lib_ID ;
Taille de police u8 ;
u8 Algment;
u8 IntNum ;
u8 DecNum ;
type u8 ;
u8 LenUint ;
u8 StringUinit[11] ;
} Number_spTypeDef ;// structure de description des variables de données

structure typedef
{
Number_spTypeDef sp ;// définit le pointeur de description du SP
UI_packTypeDef spPack ;// définir le package de lecture et d'écriture de la variable SP DGUS
UI_packTypeDef vpPack ;// définir le package de lecture et d'écriture de la variable vp DGUS
} Number_HandleTypeDef ;//structure des variables de données

Avec la définition de poignée de variable de données précédente.Définissez ensuite une variable pour l'affichage de l'échantillonnage de tension :
Number_HandleTypeDef Héchantillon ;
u16 voltage_sample ;

Tout d'abord, exécutez la fonction d'initialisation
NumberSP_Init(&Hsample,voltage_sample,0×8000);//0×8000 voici le pointeur de description
//——Variable de données montrant l'initialisation de la structure du pointeur SP——
void NumberSP_Init(Number_HandleTypeDef *number,u8 *value, u16 numberAddr)
{
nombre->spPack.addr = nombreAdr ;
nombre->spPack.datLen = sizeof(nombre->sp);
nombre->spPack.pBuf = (u8 *)&nombre->sp;
        
Read_Dgus(&number->spPack);
nombre->vpPack.addr = nombre->sp.VP ;
switch(number->sp.Type) //La longueur des données de la variable vp est automatiquement sélectionnée en fonction du type de variable de données conçu dans l'interface DGUS.

{
cas 0 :
cas 5 :
nombre->vpPack.datLen = 2 ;
casser;
cas 1:
cas 2 :
cas 3 :
cas 6 :
nombre->vpPack.datLen = 4 ;
cas 4 :
nombre->vpPack.datLen = 8 ;
casser;
}
nombre->vpPack.pBuf = valeur ;
}

Après initialisation, Hsample.sp est le pointeur de description de la variable de données d'échantillonnage de tension ;Hsample.spPack est le pointeur de communication entre le noyau du système d'exploitation et la variable de données d'échantillonnage de tension de l'interface utilisateur via la fonction d'interface DGUS ;Hsample.vpPack est l'attribut de modification de la variable de données d'échantillonnage de tension, telle que la police. Les couleurs, etc. sont également transmises au cœur de l'interface utilisateur via la fonction d'interface DGUS.Hsample.vpPack.addr est l'adresse variable des données d'échantillonnage de tension, qui a été obtenue automatiquement à partir de la fonction d'initialisation.Lorsque vous modifiez l'adresse de variable ou le type de données de variable dans l'interface DGUS, il n'est pas nécessaire de mettre à jour l'adresse de variable dans le noyau du système d'exploitation de manière synchrone.Une fois que le cœur du système d'exploitation a calculé la variable voltage_sample, il lui suffit d'exécuter la fonction Write_Dgus(&Hsample.vpPack) pour la mettre à jour.Il n'est pas nécessaire d'emballer le voltage_sample pour la transmission DGUS.


Heure de publication : 15 juin 2022