बाहरी ST-Link को डिबग / प्रोग्राम STM32F103 MCU का उपयोग कैसे करें?


16

मैं अपने प्रोजेक्ट के लिए STM32F103 MCU का उपयोग कर रहा हूं और बाहरी डीबगिंग / प्रोग्रामिंग उद्देश्यों के लिए STM32F411 न्यूक्लियो बोर्ड के ST-लिंक का उपयोग करना चाहता हूं।

मैंने CN2 जंपर्स ऑफ़ सेट किया है और मेरा वास्तविक प्रश्न SWO (CN2) के पिनआउट्स में है। मैं इस पर कैसे आगे बढ़ता हूं:

  • PIN 1 (SWO का) VDD_Target है
  • PIN 2 SWCLK है
  • पिन 3 जीएनडी है
  • PIN 4 SWDIO है
  • पिन 5 एनआरएसटी है
  • पिन 6 SWO है

मेरी जानकारी के अनुसार, मुझे इन सभी पिनों का उपयोग नहीं करना चाहिए। जैसा कि, मैं जुड़ा हुआ हूं

  • MCU में PIN 2 से PIN 37 (या PA14)
  • पिन 3 से जीएनडी
  • पिन 4 से पिन 34 (या PA13)
  • लक्ष्य MCU में पिन 5 से पिन 7 या (RESET)।

निश्चित नहीं है कि मुझे SWO पिन कनेक्ट करना चाहिए क्योंकि यह "आरक्षित" (क्यों?) के रूप में सेट है। इसके अलावा, मैं MCU के 3.3 V से VIN पिन दे रहा हूं, इसका मतलब है कि मुझे VDD (स्टिंक का पिन 1) कनेक्ट करने की आवश्यकता नहीं है।

कृपया इस तालिका का संदर्भ लें जिसे मैंने आधिकारिक डेटाशीट से लिया है:

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

यहाँ MCU का सामान्य पिनआउट विन्यास यहाँ दिया गया है:

यहाँ छवि विवरण दर्ज करें

मैंने आस्टसीलस्कप और परीक्षक के साथ "लगभग" सब कुछ परीक्षण किया है और सब कुछ ठीक लगता है। मुझे और क्या याद आ रहा है? क्या मुझे BOOT0 या BOOT1 पिन के साथ कुछ भी करना चाहिए?

जवाबों:


11

सबसे पहले, आप सही हैं, यदि आपके बोर्ड को पहले से ही एक आपूर्ति वोल्टेज स्रोत मिला है, तो आपको एसटी-लिंक के वीडीडी पिन को कनेक्ट करने की आवश्यकता नहीं है।

दूसरी बात जो मैं आपको सुझाऊँगा वह है STM32F411 न्यूक्लियो बोर्ड के रेफरेंस मैनुअल को खोलना और स्कीमैटिक्स को देखना। विशेष रूप से वह हिस्सा जहां एसटी-लिंक बोर्ड पर नियंत्रक से जुड़ा हुआ है।

यहाँ छवि विवरण दर्ज करें

ST माइक्रोइलेक्ट्रॉनिक द्वारा, SWCLK, SWDIO, NRST और SWO (और GND) निश्चित रूप से लक्ष्य MCU से जुड़े हैं। अतिरिक्त SWO पिन का उपयोग डिबग उद्देश्यों के लिए किया जाता है, आप printfइस पिन के माध्यम से फ़ंक्शन के साथ मुद्रित डेटा को ST-Link उपयोगिता के साथ एक्सेस कर सकते हैं

SWO व्यूअर के माध्यम से प्रिंटफ़, SWO के माध्यम से लक्ष्य से भेजे गए प्रिंटफ़ डेटा को प्रदर्शित करता है।

इसलिए मैं आपको SWO को जोड़ने के लिए सलाह दे सकता हूं, बाद में उपयोगी हो सकता है। अपने MCU को ST-Link से उसी तरह कनेक्ट करें जैसे उन्होंने Nucleo के MCU को इससे जोड़ा है।

बूट कॉन्फ़िगरेशन के रूप में, तीन चयन विकल्प हैं, मेन फ्लैश के साथ चिपकना और बूट करने के लिए GND से टाई करना सबसे आसान है, लेकिन मुझे आपकी आवश्यकताओं का पता नहीं है इसलिए यह आपको चुनना है।

यहाँ छवि विवरण दर्ज करें


3
जब आप VDD पिन को कनेक्ट नहीं करने के साथ "दूर हो सकते हैं", तो यह एक आपूर्ति नहीं है, बल्कि लक्ष्य की आपूर्ति वोल्टेज का पता लगाने के लिए है (देखें कि यह एनालॉग इनपुट से कैसे जुड़ा है)। एक अधिक परिष्कृत डीबग इंटरफ़ेस इसके बिना अपनी रेखाओं को कम रख सकता है, और केवल उन्हें एकाधिक आपूर्ति वोल्टेज का समर्थन करते हुए संबंधित आपूर्ति स्तर तक बढ़ा सकता है। रीसेट लाइन सामान्य रूप से आवश्यक नहीं है (कई अन्य एसडब्ल्यूडी कार्यान्वयन के साथ)। यह खराब भार और फर्मवर से उबरने की कुंजी है जो SWD पिन को अक्षम कर देता है, लेकिन मैन्युअल रूप से भी हेरफेर किया जा सकता है।
क्रिस स्ट्रैटन

STM32F1xx बोर्ड पर BOOT0 को बाहरी रूप से चयन करने का मुख्य कारण होगा अगर फैक्ट्री ROM UART (आदि) बूटलोडर का उपयोग करने की इच्छा हो। '103 पर यह USB का समर्थन नहीं करता है क्योंकि यह ST के बाद के कई हिस्सों में करता है। यदि किसी को 'बूटलोडर' 103 पर मुख्य फ्लैश मेमोरी में होना है, तो इसके लिए BOOT0 पिन उपयोगी नहीं है।
क्रिस स्ट्रैटन

मेरा boot0 और boot0 शून्य पर सेट है, यह सुनिश्चित करने के लिए कि प्रोग्राम को फ़्लैश मेमोरी में लिखा जाएगा। इसके अलावा, मैं विंडोज मशीन में सेंट-लिंक उपयोगिता का उपयोग करने का प्रयास करूंगा। मैं वर्तमान में मैक ओएस का उपयोग कर रहा हूं, लेकिन यह सुनिश्चित नहीं है कि यह मेरी समस्या ओएस से संबंधित है या नहीं।
baxx0r

मैं एक STM32F407 डिस्कवरी किट के ST-Link का उपयोग एक STM32F303 कार्यक्रम के लिए किया है। मैंने बस (2-5 पिन) किट के SWD कनेक्टर को मेरे बोर्ड SWCLK, GND, SWDIO, NRST, SWO (जैसे यह डिस्कवरी और न्यूक्लियो पर किया जाता है) से कनेक्ट किया है और इसने ST-Link उपयोगिता के साथ काम किया है। बूट 0 पिन STM32F303 हार्डवेयर संदर्भ मैनुअल के आधार पर जीएनडी से 10k अवरोधक के माध्यम से जुड़ा हुआ है ।
बेंस कौलिक्स

6

सबसे पहले सभी को उनके योगदान के लिए धन्यवाद।

दो रातों की नींद और संघर्ष के बाद, मैं इस मुद्दे का पता लगा सका। समस्या मेरे कस्टम बोर्ड में पिन कनेक्शन में थी: मैंने सोचा था कि, मेरे MCU में, पिन 9 (VDDA) पिनों के साथ शॉर्ट-सर्कुलेटेड है 24-36-48, और पिन 8 (VSSA) पिनों के साथ 23-35-47 लेकिन ऐसा नहीं है।

मुझे VDDA और VSSA को एक और 3.3V और GND देने की जरूरत थी और सेंट-लिंक ने काम करना शुरू कर दिया।

समाधान विधि : मैंने STM32F103 के कनेक्शन को समझने के लिए मेपल मिनी योजनाबद्ध का उपयोग किया। यह पता चला कि, उन्होंने VDD1, VDD2 & VDD3 और VSSA के साथ VSS1, VSS2 और VSS3 के साथ VDDA को छोटा किया है। मुझे लगता है, मुझे यह नामकरण VSSA से समझना चाहिए था, क्योंकि यह VSS0 या VSS4 नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.