ការប្រើប្រាស់ថាមពល LCD ដែលអាចលៃតម្រូវបានដោយផ្អែកលើ DWIN T5L ASIC

—— ចែករំលែកពី DWIN Froum

ការប្រើប្រាស់បន្ទះឈីប DWIN T5L1 ជាស្នូលគ្រប់គ្រងនៃម៉ាស៊ីនទាំងមូល ទទួល និងដំណើរការការប៉ះ ការទិញយក ADC ព័ត៌មានគ្រប់គ្រង PWM និងជំរុញអេក្រង់ LCD ទំហំ 3.5 អ៊ីង ដើម្បីបង្ហាញស្ថានភាពបច្ចុប្បន្នក្នុងពេលវេលាជាក់ស្តែង។ គាំទ្រការលៃតម្រូវការប៉ះពីចម្ងាយនៃពន្លឺប្រភពពន្លឺ LED តាមរយៈម៉ូឌុលវ៉ាយហ្វាយ និងគាំទ្រសំឡេងរោទិ៍។

លក្ខណៈពិសេសនៃកម្មវិធី៖

1. ទទួលយកបន្ទះឈីប T5L ដើម្បីដំណើរការនៅប្រេកង់ខ្ពស់ គំរូអាណាឡូក AD មានស្ថេរភាព ហើយកំហុសគឺតូច។

2. គាំទ្រ TYPE C ភ្ជាប់ដោយផ្ទាល់ទៅកុំព្យូទ័រសម្រាប់ការបំបាត់កំហុស និងការដុតកម្មវិធី។

3. គាំទ្រចំណុចប្រទាក់ស្នូល OS ដែលមានល្បឿនលឿន ច្រកប៉ារ៉ាឡែល 16 ប៊ីត។ ច្រក UI ស្នូល PWM, ច្រក AD នាំមុខ ការរចនាកម្មវិធីដែលមានតម្លៃទាប មិនចាំបាច់បន្ថែម MCU បន្ថែមទេ។

4. គាំទ្រប្រព័ន្ធ WiFi, ការបញ្ជាពីចម្ងាយប៊្លូធូស;

5. គាំទ្រ 5 ~ 12V DC វ៉ុលធំទូលាយនិងការបញ្ចូលជួរធំទូលាយ

រូបភាព1

1.1 ដ្យាក្រាមគ្រោងការណ៍

រូបភាព ២

1.2 បន្ទះ PCB

រូបភាព ៣

1.3 ចំណុចប្រទាក់អ្នកប្រើ

សេចក្តី​ណែនាំ​នៃ​ការ​អាម៉ាស់​:

(1) ការរចនាសៀគ្វីផ្នែករឹង

រូបភាព ៤

1.4 ដ្យាក្រាមសៀគ្វី T5L48320C035

1. ការផ្គត់ផ្គង់ថាមពលតក្ក MCU 3.3V: C18, C26, C27, C28, C29, C31, C32, C33;

2. ការផ្គត់ផ្គង់ថាមពលស្នូល MCU 1.25V: C23, C24;

3. ការផ្គត់ផ្គង់ថាមពលអាណាឡូក MCU 3.3V: C35 គឺជាការផ្គត់ផ្គង់ថាមពលអាណាឡូកសម្រាប់ MCU ។ នៅពេលវាយអក្សរ ស្នូល 1.25V និងដីតក្កវិជ្ជាអាចបញ្ចូលគ្នាជាមួយគ្នា ប៉ុន្តែដីអាណាឡូកត្រូវតែបំបែកចេញពីគ្នា។ ដីអាណាឡូក និងដីឌីជីថលគួរតែត្រូវបានប្រមូលនៅបង្គោលអវិជ្ជមាននៃទិន្នផល LDO capacitor ធំ ហើយបង្គោលវិជ្ជមានអាណាឡូកក៏គួរតែត្រូវបានប្រមូលនៅបង្គោលវិជ្ជមាននៃ LDO capacitor ធំផងដែរ ដូច្នេះសំណាក AD សំលេងរំខានត្រូវបានបង្រួមអប្បបរមា។

4. សៀគ្វីទទួលសញ្ញាអាណាឡូក AD: CP1 គឺជាឧបករណ៍បំប្លែង AD analog input capacitor ។ ដើម្បីកាត់បន្ថយកំហុសឆ្គងនៃគំរូ ដីអាណាឡូក និងដីឌីជីថលរបស់ MCU ត្រូវបានបំបែកដោយឯករាជ្យ។ បង្គោលអវិជ្ជមាននៃ CP1 ត្រូវតែភ្ជាប់ទៅនឹងដីអាណាឡូកនៃ MCU ជាមួយនឹង impedance អប្បបរមា ហើយ capacitors ប៉ារ៉ាឡែលពីរនៃ crystal oscillator ត្រូវបានភ្ជាប់ទៅនឹងដីអាណាឡូកនៃ MCU ។

5. សៀគ្វី Buzzer: C25 គឺជា capacitor ផ្គត់ផ្គង់ថាមពលសម្រាប់ buzzer ។ buzzer គឺជាឧបករណ៍ inductive ហើយវានឹងមានចរន្តខ្ពស់បំផុតក្នុងអំឡុងពេលប្រតិបត្តិការ។ ដើម្បីកាត់បន្ថយកម្រិតកំពូល វាចាំបាច់ក្នុងការកាត់បន្ថយចរន្ត MOS drive នៃ buzzer ដើម្បីធ្វើឱ្យបំពង់ MOS ដំណើរការក្នុងតំបន់លីនេអ៊ែរ ហើយរចនាសៀគ្វីដើម្បីឱ្យវាដំណើរការក្នុងរបៀបប្ដូរ។ ចំណាំថា R18 គួរតែត្រូវបានភ្ជាប់ស្របគ្នានៅចុងទាំងពីរនៃ buzzer ដើម្បីកែតម្រូវគុណភាពសំឡេងរបស់ buzzer និងធ្វើឱ្យ buzzer ស្តាប់ទៅមានភាពស្រទន់ និងរីករាយ។

6. សៀគ្វីវ៉ាយហ្វាយ៖ គំរូបន្ទះសៀគ្វីវ៉ាយហ្វាយ ESP32-C ជាមួយវ៉ាយហ្វាយ + ប៊្លូធូស + BLE ។ នៅលើខ្សែភ្លើងដីថាមពល RF និងដីសញ្ញាត្រូវបានបំបែក។

រូបភាព 5

1.5 ការរចនាសៀគ្វីវ៉ាយហ្វាយ

នៅក្នុងរូបភាពខាងលើផ្នែកខាងលើនៃថ្នាំកូតទង់ដែងគឺជារង្វិលជុំដីថាមពល។ រង្វិលជុំដីឆ្លុះបញ្ចាំងពីអង់តែនវ៉ាយហ្វាយត្រូវតែមានផ្ទៃធំទៅនឹងដីថាមពល ហើយចំណុចប្រមូលផ្តុំនៃដីថាមពលគឺជាបង្គោលអវិជ្ជមាននៃ C6 ។ ត្រូវតែផ្តល់ចរន្តដែលឆ្លុះបញ្ចាំងរវាងថាមពល និងអង់តែនវ៉ាយហ្វាយ ដូច្នេះត្រូវតែមានថ្នាំកូតទង់ដែងនៅក្រោមអង់តែនវ៉ាយហ្វាយ។ ប្រវែងនៃថ្នាំកូតទង់ដែងលើសពីប្រវែងផ្នែកបន្ថែមនៃអង់តែនវ៉ាយហ្វាយ ហើយផ្នែកបន្ថែមនឹងបង្កើនភាពប្រែប្រួលនៃវ៉ាយហ្វាយ។ ចំណុចនៅលើបង្គោលអវិជ្ជមាននៃ C2 ។ ផ្ទៃធំនៃទង់ដែងអាចការពារសំលេងរំខានដែលបណ្តាលមកពីវិទ្យុសកម្មអង់តែន WiFi ។ ដីទង់ដែងចំនួន 2 ត្រូវបានបំបែកនៅលើស្រទាប់ខាងក្រោម ហើយត្រូវបានប្រមូលទៅកាន់បន្ទះកណ្តាលនៃ ESP32-C តាមរយៈការឆ្លងកាត់។ ដីថាមពល RF ត្រូវការ impedance ទាបជាង signal ground loop ដូច្នេះមាន 6 vias ពី power ground ទៅ chip pad ដើម្បីធានាបាននូវ impedance ទាបគ្រប់គ្រាន់។ រង្វិលជុំដីរបស់គ្រីស្តាល់លំយោលមិនអាចមានថាមពល RF ហូរកាត់វាបានទេ បើមិនដូច្នេះទេ លំយោលគ្រីស្តាល់នឹងបង្កើតប្រេកង់ញ័រ ហើយហ្វ្រេកង់វ៉ាយហ្វាយនឹងមិនអាចផ្ញើ និងទទួលទិន្នន័យបានទេ។

7. Backlight LED power supply circuit: SOT23-6LED driver chip គំរូ។ ការផ្គត់ផ្គង់ថាមពល DC/DC ទៅ LED ដោយឯករាជ្យបង្កើតជារង្វិលជុំ ហើយដី DC/DC ត្រូវបានភ្ជាប់ទៅនឹងដី 3.3V LOD ។ ដោយសារស្នូលច្រក PWM2 ត្រូវបានឯកទេស វាបញ្ចេញសញ្ញា 600K PWM ហើយ RC ត្រូវបានបន្ថែមដើម្បីប្រើលទ្ធផល PWM ជាឧបករណ៍បញ្ជា ON/OFF ។

8. ជួរបញ្ចូលវ៉ុល៖ ដំណាក់កាលចុះក្រោម DC/DC ចំនួនពីរត្រូវបានរចនាឡើង។ ចំណាំថារេស៊ីស្តង់ R13 និង R17 នៅក្នុងសៀគ្វី DC/DC មិនអាចលុបចោលបានទេ។ បន្ទះសៀគ្វី DC/DC ទាំងពីរគាំទ្រការបញ្ចូលរហូតដល់ 18V ដែលងាយស្រួលសម្រាប់ការផ្គត់ផ្គង់ថាមពលខាងក្រៅ។

9. ច្រកបំបាត់កំហុស USB TYPE C៖ TYPE C អាចត្រូវបានដោត និងដកដោតទៅមុខ និងថយក្រោយ។ ការបញ្ចូលការបញ្ជូនបន្តទាក់ទងជាមួយបន្ទះឈីប WIFI ESP32-C ដើម្បីរៀបចំបន្ទះឈីប WIFI ។ ការបញ្ចូលបញ្ច្រាសទាក់ទងជាមួយ XR21V1410IL16 ដើម្បីសរសេរកម្មវិធី T5L ។ TYPE C គាំទ្រការផ្គត់ផ្គង់ថាមពល 5V ។

10. ការទំនាក់ទំនងតាមច្រកប៉ារ៉ាឡែល៖ ស្នូល T5L OS មានច្រក IO ឥតគិតថ្លៃជាច្រើន ហើយការទំនាក់ទំនងច្រកប៉ារ៉ាឡែល 16 ប៊ីតអាចត្រូវបានរចនា។ រួមផ្សំជាមួយពិធីការច្រកប៉ារ៉ាឡែល ST ARM FMC វាគាំទ្រការអាន និងសរសេរសមកាលកម្ម។

11. ការរចនាចំណុចប្រទាក់ល្បឿនលឿន LCM RGB៖ ទិន្នផល T5L RGB ត្រូវបានភ្ជាប់ដោយផ្ទាល់ទៅ LCM RGB ហើយភាពធន់នឹងសតិបណ្ដោះអាសន្នត្រូវបានបន្ថែមនៅកណ្តាល ដើម្បីកាត់បន្ថយការជ្រៀតជ្រែកនៃទឹក LCM ។ នៅពេលខ្សែភ្លើង កាត់បន្ថយប្រវែងនៃការតភ្ជាប់ចំណុចប្រទាក់ RGB ជាពិសេសសញ្ញា PCLK និងបង្កើនចំណុចប្រទាក់ RGB PCLK, HS, VS, DE សាកល្បង។ ច្រក SPI នៃអេក្រង់ត្រូវបានភ្ជាប់ទៅច្រក P2.4 ~ P2.7 នៃ T5L ដែលងាយស្រួលសម្រាប់ការរចនាកម្មវិធីបញ្ជាអេក្រង់។ ដឹកនាំពិន្ទុតេស្ត RST, nCS, SDA, SCI ដើម្បីជួយសម្រួលដល់ការអភិវឌ្ឍន៍កម្មវិធីមូលដ្ឋាន។

(2) ចំណុចប្រទាក់ DGUS

រូបភាព ៦ រូបភាព ៧

1.6 ការគ្រប់គ្រងការបង្ហាញអថេរទិន្នន័យ

(3) ប្រព័ន្ធប្រតិបត្តិការ
//———————————— DGUS អាន និងសរសេរទម្រង់
រចនាសម្ព័ន្ធ typedef
{
u16 addr; // អាសយដ្ឋានអថេរ UI 16 ប៊ីត
u8 datLen; // ប្រវែងទិន្នន័យ ៨ ប៊ីត
u8 *pBuf; // ទ្រនិចទិន្នន័យ ៨ ប៊ីត
} UI_packTypeDef; // DGUS អាននិងសរសេរកញ្ចប់

//——————————- ការគ្រប់គ្រងការបង្ហាញអថេរទិន្នន័យ
រចនាសម្ព័ន្ធ typedef
{
u16 VP;
u16 X;
u16 Y;
u16 ពណ៌;
u8 Lib_ID;
u8 ទំហំពុម្ពអក្សរ;
u8 ការតម្រឹម;
u8 IntNum;
u8 DecNum;
u8 ប្រភេទ;
u8 LenUint;
u8 StringUinit[11];
} Number_spTypeDef; // រចនាសម្ព័ន្ធពិពណ៌នាអថេរទិន្នន័យ

រចនាសម្ព័ន្ធ typedef
{
Number_spTypeDef sp; // កំណត់ទ្រនិចការពិពណ៌នា SP
UI_packTypeDef spPack; // កំណត់អថេរ SP DGUS អាន និងសរសេរកញ្ចប់
UI_packTypeDef vpPack; // កំណត់អថេរ vp DGUS អាន និងសរសេរកញ្ចប់
} Number_HandleTypeDef; // រចនាសម្ព័ន្ធអថេរទិន្នន័យ

ជាមួយនឹងការកំណត់ចំណុចទាញអថេរទិន្នន័យពីមុន។ បន្ទាប់កំណត់អថេរសម្រាប់ការបង្ហាញគំរូវ៉ុល៖
Number_HandleTypeDef Hsample;
u16 វ៉ុល_គំរូ;

ជាដំបូង ដំណើរការមុខងារចាប់ផ្តើម
លេខSP_Init(&Hsample,voltage_sample,0×8000); // 0 × 8000 នេះគឺជាទ្រនិចពិពណ៌នា
//—— អថេរទិន្នន័យដែលបង្ហាញពីរចនាសម្ព័ន្ធទ្រនិច SP ចាប់ផ្តើម ——
void NumberSP_Init(Number_HandleTypeDef *number,u8 *value, u16 numberAddr)
{
number->spPack.addr = numberAddr;
number->spPack.datLen = sizeof(number->sp);
number->spPack.pBuf = (u8 *)&number->sp;
        
Read_Dgus(&number->spPack);
number->vpPack.addr = number->sp.VP;
switch(number->sp.Type) // ប្រវែងទិន្នន័យនៃអថេរ vp ត្រូវបានជ្រើសរើសដោយស្វ័យប្រវត្តិយោងទៅតាមប្រភេទអថេរទិន្នន័យដែលបានរចនានៅក្នុងចំណុចប្រទាក់ DGUS ។

{
ករណី 0៖
ករណីទី ៥៖
number->vpPack.datLen = 2;
សម្រាក;
ករណីទី១៖
ករណីទី ២៖
ករណីទី ៣៖
ករណីទី ៦៖
number->vpPack.datLen = 4;
ករណីទី ៤៖
number->vpPack.datLen = 8;
សម្រាក;
}
number->vpPack.pBuf = តម្លៃ;
}

បន្ទាប់ពីការចាប់ផ្តើម Hsample.sp គឺជាទ្រនិចពិពណ៌នានៃអថេរទិន្នន័យគំរូវ៉ុល។ Hsample.spPack គឺជាទ្រនិចទំនាក់ទំនងរវាងស្នូល OS និងទិន្នន័យគំរូវ៉ុល UI ដែលប្រែប្រួលតាមរយៈមុខងារចំណុចប្រទាក់ DGUS ។ Hsample.vpPack គឺជាគុណលក្ខណៈនៃការផ្លាស់ប្តូរអថេរទិន្នន័យគំរូវ៉ុល ដូចជា ពុម្ពអក្សរ ពណ៌ជាដើម ក៏ត្រូវបានបញ្ជូនទៅស្នូល UI តាមរយៈមុខងារចំណុចប្រទាក់ DGUS ផងដែរ។ Hsample.vpPack.addr គឺជាអាសយដ្ឋានអថេរទិន្នន័យគំរូវ៉ុល ដែលត្រូវបានទទួលដោយស្វ័យប្រវត្តិពីមុខងារចាប់ផ្តើម។ នៅពេលអ្នកផ្លាស់ប្តូរអាសយដ្ឋានអថេរ ឬប្រភេទទិន្នន័យអថេរនៅក្នុងចំណុចប្រទាក់ DGUS វាមិនចាំបាច់ធ្វើបច្ចុប្បន្នភាពអាសយដ្ឋានអថេរនៅក្នុងស្នូល OS ធ្វើសមកាលកម្មទេ។ បន្ទាប់ពីស្នូល OS គណនាអថេរ voltage_sample វាគ្រាន់តែត្រូវការប្រតិបត្តិមុខងារ Write_Dgus(&Hsample.vpPack) ដើម្បីធ្វើបច្ចុប្បន្នភាពវា។ មិនចាំបាច់ខ្ចប់ voltage_sample សម្រាប់ការបញ្ជូន DGUS ទេ។


ពេលវេលាផ្សាយ៖ មិថុនា-១៥-២០២២