Sunday, May 23, 2021

បញ្ចូលកូដ ESP និង Arduino លើ PCB តែមួយ

ESP & Arduino Programmer
    
    ក្នុងករណីប្រើប្រាស់ Development Board ដែលជាប្រភេទស្រាប់សម្រាប់សាកល្បង គ្មានទេកង្វល់នឹង Programmer សម្រាប់បញ្ចូលកូដឡើង តែបើធ្វើជា PCB ខ្លួនឯងនោះនឹងជួបបញ្ហាគួរសម។ បញ្ហានោះគឺទំហំរបស់ PCB ដែលត្រូវការតូច តែតម្រូវអោយញាត់ USB Programmer ចូលដែលមានគ្រឿងច្រើន ហើយម្យ៉ាងទៀតនោះ PCB ដែលប្រើនោះសឹងតែថាបញ្ចូលកូដតែម្តងរួចប្រើមួយជីវិតវា មិនសូវត្រូវការដោតសាកល្បងចុះឡើងៗ ដូច Development Board នោះទេ។


    រូប Programmer ខាងលើ ខ្ញុំបានធ្វើវាបានដោយជោគជ័យដែលវាអាច បញ្ចូលកូដទៅ Arduino ក៏បាន ហើយ ESP8266/ESP32 ក៏បាន។​ វាមានកុងតាក់២ ដែល១សម្រាប់ជ្រើសរើសភ្លើងចេញទៅ VCC មាន 5V ឫ 3.3V ហើយមួយទៀតសម្រាប់ជ្រើសរើសថាបញ្ចូលកូដទៅ ESP ឫ Arduino។

ជើង / Pinout

    បើយើងងាកមកយល់ដឹកអំពីការបញ្ចូលកូដទៅទៅ Arduino គឺងាយស្រួលជាង ESP ដោយគ្រាន់តែធ្វើយ៉ាងណាឲ្យឈីប Atmega ដែលមាន Bootloader រួច Reset នៅពេលមានកូដចាប់ផ្តើមបញ្ចូលមក។ ឲ្យងាយយល់ទៅ យើងអាចចុចឲ្យវា Reset នៅពេលកូដចាប់ផ្តើមបញ្ចូលមកក៏អាចឲ្យកូដថ្មីបញ្ចូលទៅក្នុងឈីប Atmega បានហើយ។

Reset signal

    តែសម្រាប់ Programmer ខាងលើវាភ្ជាប់មកស្រេចនូវកុងដង់ 0.1uF ទៅជើង DTR ដែលចន្លោះទៅជើង Reset របស់ Arduino ដែលអាចឲ្យវា Auto Reset នៅពេលយើងចុចបញ្ចូលកុដបានតែម្តង។

    ចំនែក ESP វិញស្មុគស្មាញបន្តិច ត្រង់ថាទាល់តែរៀប Logic ឲ្យត្រូវទើបវាចូលទៅក្នុង Program Mode ដែលអាចឲ្យបញ្ចូលកូដថ្មីទៅបាន។ ដោយយ៉ាងណាឲ្យត្រូវទៅតាមលក្ខណដែលបានប្រាប់ក្នុង Datasheet នោះយើងនិងអាចបញ្ចូលកូដ ដូចខាងក្រោម៖

ESP Auto program Mode

    បន្ទាប់ពីធ្វើការសិក្សារួចមក ខ្ញុំបានផ្តុំសៀគ្វីទាំងពីរខាងលើចូលក្នុង PCB តែមួយដូចខាងក្រោម៖

Schematic

    PCB នេះបានធ្វើនៅលើកម្មវិធី KiCAD ហើយខ្ញុំបានដាក់វាជាសាធារណៈដែលគ្រប់គ្នាអាចយកទៅសិក្សា និងធ្វើជា PCB ក៏បាន តែរក្សាសិទ្ធិមិនឲ្យយកទៅធ្វើការលក់ដូរឡើយ។

ទាញយកពី Github: https://github.com/etronicskh/usb-uart-eap-arduino-programmer