De toepassing van instelbaar LCD-vermogen op basis van DWIN T5L ASIC

——Gedeeld vanuit DWIN Froum

Met behulp van de DWIN T5L1-chip als de besturingskern van de hele machine, ontvangt en verwerkt hij aanrakingen, ADC-acquisitie en PWM-besturingsinformatie en stuurt hij het 3,5-inch LCD-scherm aan om de huidige status in realtime weer te geven. Ondersteuning van aanraakaanpassing op afstand van de helderheid van de LED-lichtbron via de WiFi-module en ondersteuning van gesproken woord ontruiming.

Programma kenmerken:

1. Gebruik de T5L-chip om op hoge frequentie te werken, AD analoge bemonstering is stabiel en de fout is klein;

2. Ondersteuning van TYPE C die rechtstreeks op de pc is aangesloten voor foutopsporing en het branden van programma's;

3. Ondersteuning van snelle OS-kerninterface, 16-bit parallelle poort; UI-kern PWM-poort, AD-poortuitgang, goedkoop applicatieontwerp, geen noodzaak om extra MCU toe te voegen;

4. Ondersteuning van WiFi, Bluetooth-afstandsbediening;

5. Ondersteuning van 5 ~ 12V DC brede spanning en breed ingangsbereik

afbeelding1

1.1 Schemadiagram

afbeelding2

1.2 printplaat

afbeelding3

1.3 Gebruikersinterface

Jammer introductie:

(1)Hardwarecircuitontwerp

afbeelding4

1.4 T5L48320C035 schakelschema

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

2. MCU-kernvoeding 1,25 V: C23, C24;

3. MCU analoge voeding 3,3V: C35 is de analoge voeding voor MCU. Bij het zetten kunnen de 1,25V-kernaarde en de logische aarde samen worden gecombineerd, maar de analoge aarde moet gescheiden zijn. De analoge aarde en de digitale aarde moeten worden verzameld bij de negatieve pool van de grote LDO-uitgangscondensator, en de analoge positieve pool moet ook worden verzameld bij de positieve pool van de grote LDO-condensator, zodat AD-bemonsteringsruis wordt geminimaliseerd.

4. AD analoog signaalverwervingscircuit: CP1 is de AD analoge ingangsfiltercondensator. Om de bemonsteringsfout te verminderen, zijn de analoge aarde en de digitale aarde van de MCU onafhankelijk van elkaar gescheiden. De negatieve pool van CP1 moet met minimale impedantie worden aangesloten op de analoge aarde van de MCU, en de twee parallelle condensatoren van de kristaloscillator moeten worden aangesloten op de analoge aarde van de MCU.

5. Zoemercircuit: C25 is de voedingscondensator voor de zoemer. De zoemer is een inductief apparaat en tijdens bedrijf zal er een piekstroom optreden. Om de piek te verminderen, is het noodzakelijk om de MOS-aandrijfstroom van de zoemer te verminderen om de MOS-buis in het lineaire gebied te laten werken, en het circuit zo te ontwerpen dat het in de schakelmodus werkt. Houd er rekening mee dat R18 parallel moet worden aangesloten aan beide uiteinden van de zoemer om de geluidskwaliteit van de zoemer aan te passen en de zoemer helder en aangenaam te laten klinken.

6. WiFi-circuit: WiFi-chipbemonstering ESP32-C, met WiFi+Bluetooth+BLE. Op de bedrading zijn de RF-voedingsaarde en de signaalaarde gescheiden.

afbeelding5

1.5 WiFi-circuitontwerp

In de bovenstaande afbeelding is het bovenste deel van de koperen coating de stroomaardlus. De reflectie-aardlus van de WiFi-antenne moet een groot oppervlak hebben ten opzichte van de stroomaarde, en het verzamelpunt van de stroomaarde is de negatieve pool van C6. Er moet een gereflecteerde stroom worden aangelegd tussen de stroomaarde en de WiFi-antenne, dus er moet een koperlaag onder de WiFi-antenne zitten. De lengte van de koperen coating overschrijdt de verlengingslengte van de WiFi-antenne en de verlenging verhoogt de gevoeligheid van WiFi; punt naar de negatieve pool van C2. Een groot koperoppervlak kan de ruis afschermen die wordt veroorzaakt door de straling van de WiFi-antenne. De twee koperen aardingen worden op de onderste laag gescheiden en via via's naar het middelste pad van ESP32-C verzameld. De RF-vermogensaarde heeft een lagere impedantie nodig dan de signaalaardlus, dus er zijn 6 via's van de voedingsaarde naar de chippad om een ​​voldoende lage impedantie te garanderen. Er kan geen RF-vermogen door de aardlus van de kristaloscillator stromen, anders zal de kristaloscillator frequentiejitter genereren en kan de WiFi-frequentieoffset geen gegevens verzenden en ontvangen.

7. LED-voedingscircuit met achtergrondverlichting: SOT23-6LED-driverchipbemonstering. De DC/DC-voeding naar de LED vormt onafhankelijk een lus en de DC/DC-aarde is verbonden met de 3,3V LOD-aarde. Omdat de PWM2-poortkern gespecialiseerd is, voert deze een 600K PWM-signaal uit en is er een RC toegevoegd om de PWM-uitgang als AAN/UIT-bediening te gebruiken.

8. Spanningsingangsbereik: er zijn twee DC/DC-step-downs ontworpen. Merk op dat de R13- en R17-weerstanden in het DC/DC-circuit niet kunnen worden weggelaten. De twee DC/DC-chips ondersteunen een invoer tot 18 V, wat handig is voor externe voeding.

9. USB TYPE C-foutopsporingspoort: TYPE C kan voorwaarts en achterwaarts worden aangesloten en losgekoppeld. Voorwaarts inbrengen communiceert met de WIFI-chip ESP32-C om de WIFI-chip te programmeren; omgekeerde invoeging communiceert met de XR21V1410IL16 om de T5L te programmeren. TYPE C ondersteunt 5V-voeding.

10. Parallelle poortcommunicatie: T5L OS-kern heeft veel vrije IO-poorten en 16-bits parallelle poortcommunicatie kan worden ontworpen. Gecombineerd met het ST ARM FMC parallelle poortprotocol ondersteunt het synchroon lezen en schrijven.

11. LCM RGB high-speed interface-ontwerp: T5L RGB-uitgang is rechtstreeks verbonden met LCM RGB en bufferweerstand is in het midden toegevoegd om LCM-waterrimpelinterferentie te verminderen. Verklein bij het bekabelen de lengte van de RGB-interfaceverbinding, vooral het PCLK-signaal, en vergroot de RGB-interface PCLK, HS, VS, DE-testpunten; de SPI-poort van het scherm is verbonden met de P2.4 ~ P2.7-poorten van de T5L, wat handig is voor het ontwerpen van het schermstuurprogramma. Leid RST-, nCS-, SDA- en SCI-testpunten uit om de ontwikkeling van de onderliggende software te vergemakkelijken.

(2) DGUS-interface

afbeelding6 afbeelding7

1.6 Weergave van gegevensvariabele

(3) Besturingssysteem
//———————————DGUS lees- en schrijfformaat
typedef-structuur
{
u16 adres; //UI 16bit variabel adres
u8 datLen; //8bitdatalengte
u8 *pBuf; //8bit-gegevensaanwijzer
} UI_packTypeDef; //DGUS lees- en schrijfpakketten

//——————————-weergave van gegevensvariabele
typedef-structuur
{
u16 VP;
u16X;
u16Y;
u16 Kleur;
u8 Lib_ID;
u8 Lettergrootte;
u8 Uitlijning;
u8 IntNum;
u8 DecNum;
u8 Type;
u8 LenUint;
u8 StringUinit[11];
} Nummer_spTypeDef; //datavariabele beschrijvingsstructuur

typedef-structuur
{
Number_spTypeDef sp; // definieer de SP-beschrijvingsaanwijzer
UI_packTypeDef spPack; //define SP-variabele DGUS lees- en schrijfpakket
UI_packTypeDef vpPack; //define vp variabele DGUS lees- en schrijfpakket
} Nummer_HandleTypeDef; //gegevensvariabelestructuur

Met de vorige definitie van de gegevensvariabelehandle. Definieer vervolgens een variabele voor de spanningsbemonsteringsweergave:
Number_HandleTypeDef Hsample;
u16 spanningsmonster;

Voer eerst de initialisatiefunctie uit
GetalSP_Init(&Hsample,spanningsvoorbeeld,0×8000); //0×8000 hier is de beschrijvingsaanwijzer
//——Gegevensvariabele die de initialisatie van de SP-pointerstructuur weergeeft——
void NumberSP_Init(Number_HandleTypeDef *getal,u8 *waarde, u16getalAddr)
{
nummer->spPack.addr = nummerAddr;
nummer->spPack.datLen = sizeof(nummer->sp);
nummer->spPack.pBuf = (u8 *)&nummer->sp;
        
Read_Dgus(&nummer->spPack);
nummer->vpPack.addr = nummer->sp.VP;
switch(number->sp.Type) //De datalengte van de vp-variabele wordt automatisch geselecteerd op basis van het type datavariabele dat is ontworpen in de DGUS-interface.

{
geval 0:
geval 5:
nummer->vpPack.datLen = 2;
pauze;
zaak 1:
geval 2:
geval 3:
geval 6:
nummer->vpPack.datLen = 4;
geval 4:
nummer->vpPack.datLen = 8;
pauze;
}
nummer->vpPack.pBuf = waarde;
}

Na initialisatie is Hsample.sp de beschrijvingsaanwijzer van de gegevensvariabele voor spanningsbemonstering; Hsample.spPack is de communicatieaanwijzer tussen de OS-kern en de UI-spanningsbemonsteringsgegevensvariabele via de DGUS-interfacefunctie; Hsample.vpPack is het attribuut van het wijzigen van de spanningsbemonsteringsgegevensvariabele, zoals lettertypekleuren, enz. worden ook doorgegeven aan de UI-kern via de DGUS-interfacefunctie. Hsample.vpPack.addr is het variabele adres van de spanningsbemonsteringsgegevens, dat automatisch is verkregen via de initialisatiefunctie. Wanneer u het variabele adres of het variabele gegevenstype in de DGUS-interface wijzigt, is het niet nodig om het variabele adres in de kern van het besturingssysteem synchroon bij te werken. Nadat de kern van het besturingssysteem de variabele spanning_sample heeft berekend, hoeft deze alleen de functie Write_Dgus(&Hsample.vpPack) uit te voeren om deze bij te werken. Het is niet nodig om het spanningsmonster in te pakken voor DGUS-transmissie.


Posttijd: 15 juni 2022