Სარჩევი:

ESP32 - იაფი გადაწყვეტა Circruit Debug– ში: 5 ნაბიჯი
ESP32 - იაფი გადაწყვეტა Circruit Debug– ში: 5 ნაბიჯი

ვიდეო: ESP32 - იაფი გადაწყვეტა Circruit Debug– ში: 5 ნაბიჯი

ვიდეო: ESP32 - იაფი გადაწყვეტა Circruit Debug– ში: 5 ნაბიჯი
ვიდეო: IT Ninjas: Mastering Network Troubleshooting in Windows 2024, ნოემბერი
Anonim
ESP32 - იაფი გამოსავალი Circruit Debug– ში
ESP32 - იაფი გამოსავალი Circruit Debug– ში

გამარჯობა, ამ ინსტრუქციურად არის აღწერილი, თუ როგორ უნდა შეიქმნას იაფი JTAG ადაპტერი FTDI 2232HL ჩიპზე დაყრდნობით, ვიზუალური კოდით და arduino დამატებით.

- FTDI 2232HL მოდული USB კონექტორით, დაწყებული ebay– დან 8 $ –ით და ფასიანი პროგრამული უზრუნველყოფა არ არის საჭირო. ეს შესანიშნავი გამოსავალია იმ მოყვარულთათვის, რომლებსაც არ სურთ დახარჯონ 50 $+ პროფესიონალური JTAG ადაპტერზე.

- ეს ადაპტერი შეიძლება გამოყენებულ იქნას სხვა პლატფორმების გამართვისთვის, როგორიცაა ESP8266, ARM, AVR და მრავალი სხვა. ზოგიერთი კონფიგურაცია დამოკიდებულია სამიზნე პლატფორმაზე, ეს ინსტრუქცია მოიცავს მხოლოდ ESP32– ის დაყენებას.

- თუ თქვენ უკვე ფლობთ JTAG ადაპტერს, შეგიძლიათ გამოიყენოთ ის, როდესაც მას მხარს უჭერს openOCD, უბრალოდ დაიწყეთ openocd სხვადასხვა კონფიგურაციის ფაილით თქვენი jtag ადაპტერის ტიპზე დაყრდნობით.

- platform.io– ს შეუძლია გაგიადვილოთ დაყენება, მაგრამ გამართვა მხარდაჭერილია მხოლოდ ფასიან პროფესიონალურ ვერსიაში.

- მუშაობს ESP32 მოდულების უმეტესობასთან. (მაგალითად იაფი wemos lolin 32)

- ეს jtag ადაპტერი უნდა მუშაობდეს linux– თანაც, მაგრამ მე პირადად არ გამომიცდია.

ნაბიჯი 1: პროგრამული უზრუნველყოფის მოთხოვნები

Arduino IDE ვერსია 1.8 ან უფრო ახალი. Windows მაღაზიის ვერსია არ არის მხარდაჭერილი. თქვენ უნდა გამოიყენოთ კლასიკური ინსტალერის ვერსია, რომლის გადმოწერაც შესაძლებელია Arduino– ს ოფიციალური გვერდიდან

Microsoft ვიზუალური სტუდიის კოდი

ვიზუალური სტუდიის კოდის ეს დამატებები სავალდებულოა

  • არდუინო
  • მშობლიური გამართვა

მე ასევე გირჩევთ დააინსტალიროთ ეს დამატება, რომელიც ინტელექტუალს აძლევს C/C ++ - ს

C/C ++

ამ სახელმძღვანელოში გამოვიყენებ 2 სამუშაო საქაღალდეს:

D: / devel / ESP32 / ინსტრუმენტები / - აქ მე მოვათავსე ყველა ინსტრუმენტი

C: / მომხმარებელი / xxxxx / დოკუმენტები / Arduino / YourProject / - ეს არის საქაღალდე ესკიზებით

თქვენ შეგიძლიათ განათავსოთ თქვენი ფაილები სადმე სხვაგან, თუ გინდათ, უბრალოდ არ დაგავიწყდეთ ყველა რუბლის განახლება თქვენი რეალური ბილიკით.

ნაბიჯი 2: დრაივერის დაყენება და კონფიგურაცია

დრაივერის ინსტალაცია და კონფიგურაცია
დრაივერის ინსტალაცია და კონფიგურაცია
დრაივერის ინსტალაცია და კონფიგურაცია
დრაივერის ინსტალაცია და კონფიგურაცია
დრაივერის ინსტალაცია და კონფიგურაცია
დრაივერის ინსტალაცია და კონფიგურაცია

მაშინაც კი, თუ Windows ავტომატურად აღმოაჩენს FT2232 სტანდარტულად, Windows ნაგულისხმევი დრაივერები არ არის საკმარისი ყველა წინასწარი ფუნქციისთვის და აუცილებელია დრაივერის ჩამოტვირთვა და დაყენება FTDI საიტიდან

როდესაც დამონტაჟებულია სწორი დრაივერი, თქვენ უნდა ნახოთ თქვენი FT2232 მოდული მოწყობილობის მენეჯერში არა მხოლოდ როგორც 2 სერიული პორტი, არამედ როგორც "USB სერიული გადამყვანი A" და "USB სერიული გადამყვანი B"

მეორე ნაბიჯი არის დრაივერის შეცვლა ჩვენი კონვერტორის ერთი არხისთვის. ჩამოტვირთეთ zadig ინსტრუმენტი https://zadig.akeo.ie/. თუ სწორად მესმის, ეს ინსტრუმენტი დააკავშირებს winUSB დრაივერს FTDI მოწყობილობასთან, რაც საშუალებას აძლევს დაბალი დონის კომუნიკაციას openOCD და USB მოწყობილობას შორის.

Zadig ინსტრუმენტში, მენიუში "პარამეტრები" შეამოწმეთ "აჩვენეთ ყველა მოწყობილობა", შემდეგ თქვენ უნდა ნახოთ თქვენი ადაპტერი ხელმისაწვდომი მოწყობილობების სიაში. აირჩიეთ "Dual RS232-HS (ინტერფეისი 0)" შემდეგ შეარჩიეთ დრაივერი "WinUSB v6.1.xxxx" და ბოლოს დააწკაპუნეთ მძღოლის შეცვლის ღილაკზე.

როდესაც თქვენ ადაპტერს აერთებთ კომპიუტერის სხვადასხვა USB პორტს, აუცილებელია დრაივერის პარამეტრების შეცვლა zadig ინსტრუმენტის საშუალებით, წინააღმდეგ შემთხვევაში openOCD ვერ იპოვის თქვენს ადაპტერს.

ნაბიჯი 3: OpenOCD, Toolchain და Gdb

OpenOCD, Toolchain და Gdb
OpenOCD, Toolchain და Gdb

1. ღია OCD არის ინსტრუმენტი ცირკულაციის გამართვისთვის, ერთის მხრივ ის საუბრობს ჩიპზე, მეორე მხრივ ის იძლევა gdb სერვერს, სადაც შეიძლება დაკავშირება გამართვის (კლიენტის) საშუალებით. ჩამოტვირთეთ openOCD ESP32– ისთვის https://github.com/espressif/openocd-esp32/releases და გახსენით იგი საქაღალდეში D: / devel / ESP32 / ინსტრუმენტები

2. openOCD კონფიგურაციის ფაილების რედაქტირება:

esp-wroom-32.cfg

ამ ფაილის სრული გზა არის:

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

ამ ფაილში შეგიძლიათ დააყენოთ კომუნიკაციის სიჩქარე პარამეტრის შეცვლით "adapter_khz". მაგალითად "adapter_khz 8000" ნიშნავს 8 MHz.

ნაგულისხმევი არის 20 მჰც და შეიძლება ძალიან მაღალი იყოს, თუ თქვენ იყენებთ უფრო გრძელი მხტუნავ მავთულხლართებს ან დაფაზე. მე გირჩევთ დაიწყოთ 1 მჰც სიხშირით და თუ ყველაფერი რიგზეა, გადადით მაღალ სიჩქარეზე, ჩემთვის 8 მჰც საიმედოდ მუშაობს.

მინიმოდული. cfg

ამ ფაილის სრული გზაა: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

თუ სწორად მესმის, ნამდვილი მინიმოდული არის FTDI– ის მიერ წარმოებული FT 2232 – ით გადაფასებული სამუხრუჭე დაფა და ერთადერთი განსხვავება ნამდვილ მინიმოდულსა და იაფ მოდულს ან ბაზარზე არსებულ შიფს შორის არის ნაგულისხმევი USB აღწერა. ღია OCD ეძებს 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_inout 0x0008i

esp32.cfg

ამ ფაილის სრული გზა არის:

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

დაამატეთ შემდეგი 2 სტრიქონი esp32.cfg დასასრულს. ამ მოდიფიკაციის გარეშე, სამუხრუჭე პუნქტების დამატება არ იმუშავებს.

#აიძულეთ შესვენების წერტილები. მას შემდეგ რაც ჩვენ გვაქვს მეხსიერების რუკა, ჩვენ ასევე შეგვიძლია დავუშვათ პროგრამული უზრუნველყოფა bps.gdb_breakpoint_override hard

3. ჩამოტვირთეთ და დააინსტალირეთ xtensa-esp32-elf ინსტრუმენტთა ქსელი-ეს ინსტრუმენტთა ჯაჭვი შეიცავს ბრძანების ხაზის გამშლელს (gdb კლიენტს), რომელიც აუცილებელია ნებისმიერი გრაფიკული IDE– დან მუშაობის გამართვისთვის. შიშველი ინსტრუმენტთა ქსელის ჩამოტვირთვა შესაძლებელია espressif საიტიდან, განყოფილება "ალტერნატიული დაყენება"

ნაბიჯი 4: გაყვანილობა და პირველი ტესტი

გაყვანილობა და პირველი ტესტი
გაყვანილობა და პირველი ტესტი
გაყვანილობა და პირველი ტესტი
გაყვანილობა და პირველი ტესტი

შეაერთეთ FT2322 მოდული ESP– თან. მე გირჩევთ გამოიყენოთ რაც შეიძლება მოკლე მავთულები. თუ JTAG– ში ახალი ხართ, არ უნდა დაგვავიწყდეს, რომ ადაპტერის TDI გადადის ჩიპის TDI– ზე, ასევე ადაპტერის TDO წავა ჩიპის TDO– ზე. JTAG მონაცემთა ხაზები არ არის გადაკვეთილი, როგორც Rx/Tx uart!

შემდეგი ტესტისთვის გირჩევთ ატვირთოთ მოციმციმე მაგალითის ესკიზი ან სხვა ესკიზი, რომელიც შეიძლება მიუთითებდეს პროცესორის გაშვებაზე თუ არა LED- ის მოციმციმეზე, ბიპზე ან სერიულ კონსოლზე წერაზე.

დაიწყეთ 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 დაფა /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 კლიენტი ბრძანების შემდეგ

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

დაელოდეთ წამს და როდესაც gdb ტერმინალი მზად იქნება ჩაწერეთ შემდეგი ბრძანებები სათითაოდ

სამიზნე დისტანციური: 3333mon გადატვირთვის შეჩერება გრძელდება

პირველი ბრძანება ხსნის კავშირს openocd გამართვის სერვერთან, მეორე შეაჩერებს პროგრამის შესრულებას ESP– ზე და LED უნდა შეწყვიტოს მოციმციმე, გააგრძელოს პროგრამის შესრულების აღდგენა და LED კვლავ დაიწყოს მოციმციმე.

ნაბიჯი 5: დაამატეთ გამართვის კონფიგურაცია Visual Studio კოდს

დაამატეთ გამართვის კონფიგურაცია Visual Studio კოდს
დაამატეთ გამართვის კონფიგურაცია Visual Studio კოდს

მე ვვარაუდობ, რომ თქვენ უკვე გაქვთ კონფიგურირებული ვიზუალური სტუდიის კოდი და arduino addon სწორად და შეგიძლიათ გადაამოწმოთ და ატვირთოთ ესკიზი დაფაზე. თუ არა, გთხოვთ გადაამოწმოთ ინსტრუქცია ვიზუალური სტუდიის კოდისა და არდუინოს კონფიგურაციისთვის, მაგალითად ამ გვერდზე

გამართვის დასაწყებად საჭიროა მიუთითოთ გამომავალი საქაღალდის მითითება. თქვენი ესკიზის საქაღალდის ქვეშ არის (ფარული) საქაღალდე.vscode, სადაც არის ფაილი arduino.json. დაამატეთ ამ ფაილს შემდეგი სტრიქონი:

"output": "BuildOutput/"

გაუშვით გადაამოწმეთ ან ატვირთეთ და კვლავ შეამოწმეთ ესკიზის საქაღალდე, უნდა იყოს ახალი BuildOutput საქაღალდე და მის შიგნით ფაილი.elf გაფართოებით. elf ფაილი სასიცოცხლოდ მნიშვნელოვანია გამართვისთვის.

გამართვის პარამეტრების ფაილი გაშვების. Json. შექმენით ეს ფაილი შემდეგი შინაარსით, ან შეგიძლიათ დააკოპიროთ ეს თანდართული მაგალითიდან. არ დაგავიწყდეთ 26 -ე ხაზის მორგება და განსაზღვრეთ თქვენი პროექტის.elf ფაილის სწორი გზა.

{// გამოიყენეთ IntelliSense შესაძლო ატრიბუტების გასაგებად. // გადაიტანეთ არსებული ატრიბუტების აღწერილობის სანახავად. // დამატებითი ინფორმაციისთვის ეწვიეთ: https://go.microsoft.com/fwlink/?linkid=830387 "ვერსია": "0.2.0", "კონფიგურაციები": [{"სახელი": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" start "," program ":" $ {file} "," cwd ":" $ {workspaceRoot}/BuildOutput/"," MIMode ":" gdb ", "targetArchitecture": "arm", "miDebuggerPath": "D: /devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands ": [{" text ":" სამიზნე დისტანციური: 3333 "}, {" text ":" მონტაჟის გადატვირთვის შეჩერება "}, {// დინამიური ვარიანტი" ტექსტი ":" ფაილი c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// სტატიკური ვარიანტი //" text ":" file c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "ინფორმაცია \: [w / d \.]*: / აპარატურა "," launCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}

როგორ დავიწყოთ გამართვა:

  1. შეასრულეთ და ატვირთეთ თქვენი ესკიზი ბორტზე
  2. დაიწყეთ openOCD პარამეტრებით
  3. დააყენეთ სამუხრუჭე წერტილები კოდში, სადაც გსურთ
  4. ყველა სამუხრუჭე წერტილის დაყენების შემდეგ, დარწმუნდით, რომ გახსენით თქვენი პროექტის მთავარი.ino ფაილი. (ან hardcode გზა.elf ფაილში laun.json)
  5. გახსენით გამართვის პანელი vs კოდი (Ctrl + Shift + D)
  6. აირჩიეთ "Arduino-GDB-openOCD" დებაგერი, ხელმისაწვდომი უნდა იყოს მხოლოდ.
  7. დააწკაპუნეთ F5 გამართვის დასაწყებად

გირჩევთ: