ዝርዝር ሁኔታ:

ESP32 - በ Circruit ማረሚያ ውስጥ ርካሽ መፍትሄ 5 ደረጃዎች
ESP32 - በ Circruit ማረሚያ ውስጥ ርካሽ መፍትሄ 5 ደረጃዎች

ቪዲዮ: ESP32 - በ Circruit ማረሚያ ውስጥ ርካሽ መፍትሄ 5 ደረጃዎች

ቪዲዮ: ESP32 - በ Circruit ማረሚያ ውስጥ ርካሽ መፍትሄ 5 ደረጃዎች
ቪዲዮ: ESP32 Tutorial 10 - Digital counter using Seven Segment Display 74HC595 -ESP32 IoT Learnig kit 2024, ሀምሌ
Anonim
ESP32 - ለ Circruit ማረም ርካሽ መፍትሔ
ESP32 - ለ Circruit ማረም ርካሽ መፍትሔ

ጤና ይስጥልኝ ፣ በዚህ አስተማሪ ውስጥ በ FTDI 2232HL ቺፕ ላይ በመመርኮዝ በምስል ኮድ እና በአርዱዲኖ አዶ ላይ በመመርኮዝ ርካሽ የ JTAG አስማሚ እንዴት እንደሚቋቋም ተገልጻል።

- ኤፍቲዲ 2232 ኤች ኤል ሞዱል በዩኤስቢ አያያዥ ከ ebay ከ 8 ዶላር ጀምሮ እና የሚከፈልበት ሶፍትዌር አያስፈልግም። በ profesionall JTAG አስማሚ ላይ 50 $+ ለማውጣት ለማይፈልጉ የትርፍ ጊዜ ማሳለፊያ ባለሙያ ይህ በጣም ጥሩ መፍትሔ ነው።

- ይህ አስማሚ እንደ ESP8266 ፣ ARM ፣ AVR እና ሌሎች ብዙ ያሉ ሌሎች የመሣሪያ ስርዓቶችን ለማረም ሊያገለግል ይችላል። አንዳንድ ውቅር በዒላማ መድረክ ላይ የሚመረኮዝ ነው ፣ ይህ መመሪያ ለ ESP32 ማዋቀርን ብቻ ይሸፍናል።

- አስቀድመው አንዳንድ የ JTAG አስማሚ ባለቤት ከሆኑ በ openOCD በሚደገፍበት ጊዜ ሊጠቀሙበት ይችላሉ ፣ ልክ በ jtag አስማሚዎ ዓይነት ላይ በመመስረት ከተለያዩ የውቅረት ፋይል ጋር ክፈትኮድ ይጀምሩ።

- platform.io ማዋቀሩን ለእርስዎ ቀላል ሊያደርግ ይችላል ፣ ግን ማረም የሚደገፈው በሚከፈልበት የባለሙያ ስሪት ውስጥ ብቻ ነው።

- ከአብዛኞቹ የ ESP32 ሞጁሎች ጋር ይሰራል። (ለምሳሌ ርካሽ ማስታወሻዎች ሎሊን 32)

- ይህ የ jtag አስማሚ ከሊኑክስ ጋር አብሮ መሥራት አለበት ፣ ግን እኔ በግሌ አልሞከርኩትም።

ደረጃ 1 የሶፍትዌር ፍላጎቶች

የአርዱዲኖ አይዲኢ ስሪት 1.8 ወይም ከዚያ በላይ። የዊንዶውስ ማከማቻ ስሪት አይደገፍም። ከኦፊሴላዊው አርዱዲኖ ገጽ https://www.arduino.cc ሊወርድ የሚችል ክላሲክ ጫኝ ሥሪት መጠቀም አለብዎት

የማይክሮሶፍት ቪዥዋል ስቱዲዮ ኮድ

ለእይታ ስቱዲዮ ኮድ እነዚህ ተጨማሪዎች አስገዳጅ ናቸው

  • አርዱinoኖ
  • ቤተኛ አርም

እኔ ደግሞ ለ C/C ++ ውስጣዊ ግንዛቤን የሚያስችለውን ይህንን addon ን እንዲጭኑ እመክራለሁ

ሲ/ሲ ++

በዚህ ማኑዋል ውስጥ 2 የሥራ አቃፊዎችን እጠቀማለሁ-

መ: / devel / ESP32 / tools / - እዚህ ሁሉንም መሳሪያዎች አስቀምጫለሁ

ሐ: / ተጠቃሚዎች / xxxxx / ሰነዶች / Arduino / YourProject / - ይህ ንድፍ ያለው አቃፊ ነው

ከፈለጉ ፋይሎችዎን በማንኛውም ቦታ ማስቀመጥ ይችላሉ ፣ እባክዎን ሁሉንም ማጣቀሻዎች በእውነተኛ መንገድዎ ማዘመንዎን አይርሱ።

ደረጃ 2 - የአሽከርካሪ መጫኛ እና ውቅር

የአሽከርካሪ መጫኛ እና ውቅር
የአሽከርካሪ መጫኛ እና ውቅር
የአሽከርካሪ መጫኛ እና ውቅር
የአሽከርካሪ መጫኛ እና ውቅር
የአሽከርካሪ መጫኛ እና ውቅር
የአሽከርካሪ መጫኛ እና ውቅር

ምንም እንኳን ዊንዶውስ በራስ -ሰር FT2232 ን በነባሪነት ቢያውቅም ፣ የዊንዶውስ ነባሪ ነጂዎች ለሁሉም የቅድሚያ ባህሪዎች በቂ አይደሉም እና ነጂውን ከ FTDI ጣቢያ ማውረድ እና መጫን አስፈላጊ ነው

ትክክለኛው አሽከርካሪ ሲጫን የእርስዎን FT2232 ሞዱል በመሣሪያ አቀናባሪ ውስጥ እንደ 2 ተከታታይ ወደቦች ብቻ ሳይሆን እንደ “የዩኤስቢ ተከታታይ መለወጫ ሀ” እና “የዩኤስቢ ተከታታይ መለወጫ ለ”

ሁለተኛው እርምጃ ለተለዋጭችን አንድ ሰርጥ የለውጥ ነጂ ነው። የዛዲግ መሣሪያን ከ https://zadig.akeo.ie/ ያውርዱ። እኔ በትክክል ከተረዳሁ ይህ መሣሪያ በ openOCD እና በዩኤስቢ መሣሪያ መካከል ዝቅተኛ ደረጃ መገናኘትን ከሚያስችለው FTDI መሣሪያ ጋር ያሸንፋል።

በ zadig መሣሪያ ውስጥ ፣ በ “አማራጮች” ምናሌ ውስጥ “ሁሉንም መሳሪያዎች አሳይ” ላይ ምልክት ያድርጉ ፣ ከዚያ በሚገኙት መሣሪያዎች ዝርዝር ውስጥ አስማሚዎን ማየት አለብዎት። “ባለሁለት RS232-HS (በይነገጽ 0)” ን ይምረጡ እና ከዚያ ምትክ ነጂን ይምረጡ “WinUSB v6.1.xxxx” እና በአሽከርካሪው ምትክ ቁልፍ ላይ ጠቅ ያድርጉ።

አስማሚዎን ወደ ተለያዩ የዩኤስቢ ወደብ ከኮምፒዩተርዎ ጋር ሲያገናኙ ፣ በ zadig መሣሪያ በኩል እንደገና የአሽከርካሪ ቅንብሮችን መለወጥ አስፈላጊ ነው ፣ አለበለዚያ ክፍት ኦሲዲ አስማሚዎን አያገኝም።

ደረጃ 3: OpenOCD ፣ Toolchain እና Gdb

OpenOCD ፣ Toolchain እና Gdb
OpenOCD ፣ Toolchain እና Gdb

1. ክፍት ኦ.ሲ.ሲ.ሲ.ሲ.ሲ.ሲ.ሲ.ሲ.ሲ.ሲ.ሲ.ዲ.ሲ. ለማረም መሣሪያ ነው ፣ በአንደኛው በኩል ቺፕን ያወራል ፣ አራሚ (ደንበኛ) የሚገናኝበትን gdb አገልጋይ ይሰጣል። ከ https://github.com/espressif/openocd-esp32/releases ለ ESP32 openOCD ያውርዱ እና ወደ አቃፊ D: / devel / ESP32 / tools / ያውርዱ

2. የ openOCD ውቅረት ፋይሎችን ያርትዑ

esp-wroom-32.cfg

ወደዚህ ፋይል ሙሉ ዱካ የሚከተለው ነው-

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg

በዚህ ፋይል ውስጥ የግንኙነት ፍጥነትን በለውጥ ግቤት “አስማሚ_khz” ማዘጋጀት ይችላሉ። ለምሳሌ “አስማሚ_khz 8000” ማለት 8 ሜኸዝ ነው።

ነባሪው 20 ሜኸ ነው እና ረጅም የዝላይ ሽቦዎችን ወይም የዳቦ ሰሌዳ የሚጠቀሙ ከሆነ በጣም ከፍተኛ ሊሆን ይችላል። በ 1 ሜኸዝ እንዲጀምሩ እመክራለሁ እና ሁሉም ነገር ደህና ከሆነ ወደ ከፍተኛ ፍጥነት ይሂዱ ፣ ለእኔ 8 ሜኸዝ በአስተማማኝ ሁኔታ ይሠራል።

minimodule.cfg

ወደዚህ ፋይል ሙሉ ዱካ D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

በትክክል ከገባኝ ፣ እውነተኛ minimodule በ FTDI ከተመረተው FT 2232 ጋር በጣም ውድ የፍሬክ ቦርድ ነው እና በእውነተኛ minimodule እና ርካሽ ሞዱል ወይም በገቢያ ላይ የሚገኝ ባዶ ቺፕ መካከል ያለው ልዩነት ነባሪ የዩኤስቢ መግለጫ ነው። ክፍት ኦ.ዲ.ዲ በመሣሪያ መግለጫ ላይ በመመስረት የ jtag አስማሚ ይፈልጋል ፣ እንዲሁም የአቀማመጥ init መስተካከል አለበት።

ርካሽ ሞጁል “Dual RS232-HS” መግለጫ አለው። ስለ መሣሪያዎ መግለጫ እርግጠኛ ካልሆኑ በመሣሪያ አቀናባሪ ውስጥ ማየት ይችላሉ -> የመሣሪያ ባህሪዎች -> የትር ዝርዝሮች -> የንብረት ዋጋ “የአውቶቡስ ሪፖርት የተደረገ የመሣሪያ መግለጫ”

የ minimodule.cfg ይዘት ከዚህ በታች ምሳሌን መምሰል አለበት ፣ መስመሮች የሚጀምሩት በ # ሊሰረዝ ይችላል።

በይነገጽ ftdi #ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "Dual RS232 -HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000b ftdi_

esp32.cfg

ወደዚህ ፋይል ሙሉ ዱካ የሚከተለው ነው-

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg

እስከ esp32.cfg መጨረሻ ድረስ 2 መስመሮችን ይከተሉ። ያለዚህ ማሻሻያ ፣ ብሬክ ነጥቦችን ማከል አይሰራም።

#የፎርስ ኤች ዋይ ነጥቦች። አንዴ የማህደረ ትውስታ ካርታ ካለን ፣ ሶፍትዌሮችን bps.gdb_breakpoint_override ጠንክረን ልንፈቅድ እንችላለን

3. xtensa-esp32-elf toolchain ን ያውርዱ እና ይጫኑ-ይህ የመሣሪያ ሰንሰለት ከማንኛውም የግራፊክ IDE የሥራ ማረም እንዲኖረው የትእዛዝ መስመር ማረም (gdb ደንበኛ) ይ containsል። ባዶ የመሳሪያ ሰንሰለት ከ espressif ጣቢያ ፣ ክፍል “አማራጭ ማዋቀር”

ደረጃ 4 ሽቦ እና የመጀመሪያ ሙከራ

ሽቦ እና የመጀመሪያ ሙከራ
ሽቦ እና የመጀመሪያ ሙከራ
ሽቦ እና የመጀመሪያ ሙከራ
ሽቦ እና የመጀመሪያ ሙከራ

የ FT2322 ሞዱሉን ከ ESP ጋር ያገናኙ። በተቻለ መጠን አጭር ሽቦዎችን ለመጠቀም እመክራለሁ። ለ JTAG አዲስ ከሆኑ ፣ የአስማሚው TDI ወደ ቺፕ TDI እንደሚሄድ ፣ እንዲሁም አስማሚው TDO ወደ ቺፕ TDO እንደሚሄድ አይርሱ። የ JTAG የውሂብ መስመሮች እንደ Rx/Tx በ uart ላይ አልተሰበሩም!

ለፈተና ለመሞከር ብልጭታ ምሳሌን ንድፍ ወይም ሌላ ሲዲ (ሲፒዩ) ሲበራ ወይም አለመሆኑን ሊያመለክት የሚችል ሌላ ንድፍ እንዲለግስ እመክራለሁ።

ትዕዛዙን በመከተል openOCD ን ይጀምሩ

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimodule.cfg -f board /esp-wroom-32.cfg

ይህ openOCD ን ይጀምራል እና ሁሉም ነገር ደህና ከሆነ በትእዛዝ መስመር ውፅዓት ውስጥ የሚከተሉትን መስመሮች ይይዛል-

መረጃ: የሰዓት ፍጥነት 8000 kHz መረጃ: JTAG መታ: esp32.cpu0 መታ/መሣሪያ ተገኝቷል: 0x120034e5 (mfg: 0x272 (Tensilica), ክፍል: 0x2003, ver: 0x1) መረጃ: JTAG መታ: esp32.cpu1 መታ/መሣሪያ ተገኝቷል: 0x120034e5 (mfg: 0x272 (Tensilica) ፣ ክፍል 0x2003 ፣ ver: 0x1)

እንዲሁም openocd ሂደት በ TCP ወደብ 3333 ያዳምጣል

ኮማንድን በመከተል አዲስ ተርሚናል ይክፈቱ እና የትእዛዝ መስመር gdb ደንበኛን ይጀምሩ

መ: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe

አንድ ሰከንድ ይጠብቁ እና መቼ gdb ተርሚናል ዝግጁ ሆኖ ትዕዛዞችን አንድ በአንድ ይፃፉ

የዒላማ ርቀት - 3333mon ዳግም ማስጀመር ማቆሙ ቀጥሏል

የመጀመሪያው ትዕዛዝ ከ openocd ማረሚያ አገልጋይ ጋር ግንኙነትን ይከፍታል ፣ ሁለተኛው በ ESP ላይ የፕሮግራም አፈፃፀምን ያቆማል እና ኤልዲዲ ብልጭ ድርግም ማለት ፣ የፕሮግራም ማስመለስን መቀጠል እና ኤልዲ እንደገና ብልጭ ድርግም ማለት አለበት።

ደረጃ 5: የእይታ ስቱዲዮ ኮድ አርም ውቅርን ያክሉ

የእይታ ስቱዲዮ ኮድ አርም ውቅርን ያክሉ
የእይታ ስቱዲዮ ኮድ አርም ውቅርን ያክሉ

በዚያ ነጥብ ላይ አስቀድመው የእይታ ስቱዲዮ ኮድ እና አርዱዲኖ አዶን በትክክል እንዳዋቀሩ እገምታለሁ እና ንድፍዎን በቦርዱ ላይ ማረጋገጥ እና መስቀል ይችላሉ። ካልሆነ ፣ እባክዎን የእይታ ስቱዲዮ ኮድ እና አርዱዲኖ እንዴት እንደሚዋቀሩ አንዳንድ መመሪያዎችን ይመልከቱ ፣ ለምሳሌ በዚህ ገጽ ላይ

የግንባታ ውፅዓት አቃፊን ለመጥቀስ እርማቱ አስፈላጊ ሆኖ እንዲሠራ ለማድረግ። በንድፍ አቃፊዎ ስር (የተደበቀ) አቃፊ.vscode አለ ፣ ፋይል arduino.json የት አለ። በሚከተለው መስመር ወደዚህ ፋይል ያክሉ

"ውፅዓት": "BuildOutput/"

አሂድ ያረጋግጡ ወይም ይስቀሉ እና የስዕል አቃፊዎን እንደገና ይፈትሹ ፣ አዲስ የ BuildOutput አቃፊ መኖር አለበት እና በእሱ ውስጥ ከራስ ማስፋፊያ ጋር ፋይል ያድርጉ። elf ፋይል ለማረም አስፈላጊ ነው።

አራሚ ቅንብሮች በፋይል launch.json ውስጥ ናቸው። በሚከተለው ይዘት ይህንን ፋይል ይፍጠሩ ፣ ወይም ይህንን ፋይል ከተያያዘው ምሳሌ ፕሮጀክት መቅዳት ይችላሉ። መስመር 26 ን ማስተካከል እና ለፕሮጀክትዎ እራስዎ ፋይል ትክክለኛውን መንገድ መግለፅዎን አይርሱ።

{// ስለ ሊሆኑ የሚችሉ ባህሪዎች ለማወቅ IntelliSense ን ይጠቀሙ። // የነባር ባህሪያትን መግለጫዎች ለማየት ያንዣብቡ። // ለተጨማሪ መረጃ https://go.microsoft.com/fwlink/?linkid=830387 "ስሪት": "0.2.0", "ውቅሮች": [{"ስም": "Arduino-GDB-openOCD") "," type ":" cppdbg "," request ":" launch "," program ":" $ {file} "," cwd ":" $ {workspaceRoot}/BuildOutput/"," MIMode ":" gdb ", "targetArchitecture": "ክንድ" ፣ "miDebuggerPath": "D:/devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe" ፣ "አራሚ አገልጋይ": "", " customLaunchSetupCommands ": [{" text ":" target remote: 3333 "}, {" text ":" mon reset stop "}, {// ተለዋዋጭ ተለዋጭ" ጽሑፍ ":" ፋይል ሐ:/ተጠቃሚዎች/xxxxx/ሰነዶች/አርዱinoኖ /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// static variant //" text ":" file c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "} ፣ " \: [w / d \.]*: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}}

ማረም እንዴት እንደሚጀመር

  1. ያክብሩ እና ንድፍዎን ወደ ተሳፍረው ይስቀሉ
  2. መለኪያዎች በመጠቀም openOCD ን ይጀምሩ
  3. በሚፈልጉበት ኮድ ውስጥ የፍሬክ ነጥቦችን ያዘጋጁ
  4. ሁሉንም የብሬክ ነጥቦችን ካዘጋጁ በኋላ የፕሮጀክትዎን ዋና.ino ፋይል መክፈትዎን ያረጋግጡ። (ወይም hardcode ዱካ ወደ.elf ፋይል በ laun.json ውስጥ)
  5. በእኛ አርም ኮድ ውስጥ አርም ፓነልን ይክፈቱ (Ctrl + Shift + D)
  6. «Arduino-GDB-openOCD» አራሚ ይምረጡ ፣ ብቻ የሚገኝ መሆን አለበት።
  7. ማረም ለመጀመር F5 ን ይምቱ

የሚመከር: