راهنمای جامع پروگرام و رفع عیب STM32 و STM8 با ST-Link

راهنمای جامع پروگرام و رفع عیب STM32 و STM8 با ST-Link

از اولین اتصال بعد از خرید تا بوت‌مود، Under Reset، بازیابی میکروی قفل‌شده و انتخاب نسخه مناسب پروگرامر

این راهنما برای چه کسانی است؟ اگر تازه یک ST-Link خریده‌اید، هنگام پروگرام‌کردن با خطای «No target connected» روبه‌رو می‌شوید یا میکرو بعد از یک برنامه‌ریزی دیگر متصل نمی‌شود، مسیر زیر را از ابتدا دنبال کنید.

نکته مهم: رابط پروگرام‌کردن STM32 معمولاً SWD و رابط STM8 نوعاً SWIM است؛ این دو از نظر سیم‌کشی و نرم‌افزار یکسان نیستند.

1بعد از خرید ST-Link چه کاری انجام دهیم؟

  1. مدل دقیق پروگرامر را مشخص کنید. عبارت «ST-Link V2» به‌تنهایی کافی نیست. ممکن است دستگاه شما یک ST-LINK/V2 رسمی، یک ماژول کوچک بازاری، یا ST-Link تعبیه‌شده روی برد Nucleo باشد. کانکتور، چیدمان پین‌ها و امکانات این مدل‌ها یکسان نیست.
  2. میکروکنترلر هدف را مشخص کنید. برای STM32 معمولاً به STM32CubeProgrammer و رابط SWD نیاز دارید. برای STM8 به نرم‌افزار STVP و رابط SWIM نیاز است.
  3. نرم‌افزار و درایور را از منبع رسمی نصب کنید. در ویندوز، نصب STM32CubeProgrammer معمولاً درایور لازم را نیز نصب می‌کند. درایور مستقل ویندوز با نام STSW-LINK009 نیز از سایت ST ارائه می‌شود.
  4. ابتدا فقط پروگرامر را به USB وصل کنید. بررسی کنید سیستم‌عامل آن را بدون خطا شناسایی می‌کند. از کابل سالم و داده‌دار استفاده کنید؛ برخی کابل‌ها فقط شارژ می‌کنند.
  5. فریمور دستگاه اصل را در صورت نیاز به‌روز کنید. اگر STM32CubeProgrammer یا ابزار رسمی ST درخواست به‌روزرسانی کرد، با کابل پایدار و بدون قطع‌کردن USB اقدام کنید. برای دستگاه کپی، فریمور تصادفی یا فریمور مخصوص مدل دیگر نصب نکنید.
  6. سیم‌کشی را در حالت بی‌برق انجام دهید. حداقل GND، SWDIO و SWCLK لازم است؛ اتصال NRST نیز به‌شدت توصیه می‌شود. سپس تغذیه برد و ولتاژ مرجع را بررسی کنید.
هشدار برای نسخه‌های کپی: دیدن نام ST-Link در ویندوز یا نمایش یک شماره سریال، تضمین اصل‌بودن دستگاه نیست. به‌روزرسانی فریمور کپی‌ها با ابزار رسمی ممکن است باعث ازکارافتادن یا ناسازگاری آن‌ها شود؛ دستورالعمل فروشنده همان مدل را ملاک قرار دهید.

2اتصال صحیح ST-Link به STM32

سیم‌های لازم در رابط SWD

سیم وظیفه نکته اتصال
GNDمرجع مشترک صفرولتهمیشه لازم است؛ حتی اگر برد تغذیه جداگانه دارد.
SWDIOداده دوطرفه رابط SWDبه پایه SWDIO میکرو وصل شود؛ در بسیاری از STM32ها PA13 است، اما دیتاشیت همان مدل ملاک است.
SWCLKکلاک رابط SWDبه SWCLK میکرو وصل شود؛ در بسیاری از مدل‌ها PA14 است.
NRST / RESETکنترل سخت‌افزاری ریستبرای Connect Under Reset و بازیابی مطمئن لازم است.
VCC / VTref / VAPPسنجش ولتاژ هدف یا تغذیه، بسته به مدلنقش این پایه در همه پروگرامرها یکسان نیست؛ پین‌اوت همان دستگاه را بررسی کنید.
SWOخروجی اختیاری SWV/ITMبرای پروگرام معمولی لازم نیست و در بسیاری از مینی‌های بازاری وجود ندارد.
SWD wiring ST-Link STM32 target 3V3 / VTref GND SWDIO SWCLK NRST VDD / VTref GND SWDIO SWCLK NRST Check the exact pinout and voltage reference of your programmer

این شکل منطق اتصال را نشان می‌دهد، نه ترتیب فیزیکی پین‌های یک مدل خاص را.

VCC همیشه به معنی خروجی تغذیه نیست: در برخی دستگاه‌ها این پایه فقط ولتاژ هدف را می‌خواند و در برخی ماژول‌های کوچک، خروجی 3.3 ولت است. قبل از اتصال، راهنمای همان پروگرامر را ببینید. برد را هم‌زمان از دو منبع مستقل تغذیه نکنید و به ورودی‌های 3.3 ولتی، ولتاژ 5 ولت ندهید.

پین‌اوت کانکتور 20پین ST-LINK/V2

پین‌اوت کانکتور 20 پین ST-LINK/V2 برای STM32

در این کانکتور، SWDIO پایه 7، SWCLK پایه 9 و NRST پایه 15 است. جهت فیزیکی کانکتور را نیز بررسی کنید.

قبل از زدن Connect

  • برد هدف واقعاً روشن و ولتاژ تغذیه آن در محدوده مجاز است.
  • GND پروگرامر و برد به هم وصل شده است.
  • SWDIO و SWCLK جابه‌جا نشده‌اند.
  • سیم‌ها کوتاه و اتصالات محکم هستند.
  • ولتاژ مرجع در نرم‌افزار مقدار معقولی مانند حدود 3.3 ولت نشان می‌دهد.
  • NRST برای بازیابی بعدی وصل شده است.

3پروگرام‌کردن STM32 با STM32CubeProgrammer

نرم‌افزار STM32CubeProgrammer ابزار رسمی و چندسکویی ST برای خواندن، پاک‌کردن، پروگرام و Verify حافظه STM32 است. نرم‌افزار قدیمی STM32 ST-LINK Utility هنوز برای برخی دستگاه‌های قدیمی دیده می‌شود، اما برای کار جدید، CubeProgrammer انتخاب مناسب‌تری است.

  1. بازکردن نرم‌افزار و انتخاب پروگرامر: در پنل اتصال، گزینه ST-LINK را انتخاب کنید. اگر شماره سریال دیده نمی‌شود، دکمه Refresh را بزنید و سایر نرم‌افزارهایی مانند CubeIDE یا Keil را که ممکن است پروگرامر را اشغال کرده باشند، ببندید.
  2. انتخاب رابط: برای اتصال معمولی STM32 گزینه Port = SWD را انتخاب کنید.
  3. حالت اتصال: در شرایط عادی Mode = Normal مناسب است. اگر برنامه فعلی میکرو مانع اتصال می‌شود، از Connect Under Reset استفاده کنید.
  4. فرکانس: ابتدا می‌توانید مقدار پیش‌فرض را امتحان کنید. اگر اتصال ناپایدار است یا سیم‌ها بلندند، فرکانس را مثلاً به 400 یا 100 کیلوهرتز کاهش دهید.
  5. اتصال به هدف: روی Connect بزنید. نمایش Device ID، نام خانواده، ظرفیت Flash و Target voltage نشانه اتصال صحیح است.
  6. انتخاب فایل: فایل .hex یا .elf معمولاً آدرس را همراه خود دارد. برای فایل خام .bin باید آدرس صحیح را وارد کنید؛ در بسیاری از STM32ها آدرس شروع Flash داخلی 0x08000000 است، اما پروژه و دیتاشیت همان میکرو ملاک است.
  7. پاک‌کردن و پروگرام: در بخش Erasing & Programming فایل را انتخاب کنید، گزینه Verify programming را فعال کنید و Start Programming را بزنید. Full chip erase فقط زمانی لازم است که واقعاً قصد پاک‌کردن کل حافظه را دارید.
  8. اجرای برنامه: پس از موفقیت، Disconnect کنید و برد را Reset یا خاموش‌وروشان کنید. اگر برنامه اجرا نمی‌شود، BOOT0، آدرس فایل و صحت خود فایل را بررسی کنید.
پنل تنظیمات ST-LINK در نرم‌افزار STM32CubeProgrammer

نمونه پنل ST-LINK در CubeProgrammer؛ محل Port، Frequency، Mode، Reset mode و Firmware upgrade مشخص است. صفحه منبع تصویر

تفاوت پروگرام و دیباگ: پروگرام یعنی نوشتن فایل در حافظه؛ دیباگ یعنی اجرای قدم‌به‌قدم، توقف، Breakpoint و مشاهده متغیرها در محیطی مانند STM32CubeIDE یا Keil. برای دیباگ نیز همین اتصال SWD استفاده می‌شود.

4نسخه اصل، کپی، با ID و بدون ID

اصطلاح «با ID» و «بدون ID» در بازار معمولاً به شماره سریال/شناسه‌ای اشاره دارد که پروگرامر به نرم‌افزار معرفی می‌کند. این ID با Device ID میکروکنترلر هدف فرق دارد و مدرک قطعی اصل‌بودن هم نیست.

ST-Link اصل

  • ساخت و پشتیبانی مطابق مستندات ST
  • به‌روزرسانی فریمور با ابزار رسمی و برای همان مدل
  • پین‌اوت، محدوده ولتاژ و امکانات مشخص
  • مناسب کار حرفه‌ای، دیباگ مداوم و پروژه حساس

کپی با ID

  • معمولاً شماره سریال در نرم‌افزار نمایش داده می‌شود.
  • بسته به ساخت، ممکن است با ابزارهای STM32Cube کار کند.
  • داشتن ID به‌تنهایی ضامن سازگاری، یکتایی یا اصالت نیست.
  • امکانات و به‌روزرسانی باید برای همان مدل بررسی شود.

کپی بدون ID

  • ممکن است شماره سریال قابل‌استفاده به ابزار معرفی نکند.
  • در برخی مدل‌ها با ST-LINK Utility کار می‌کند ولی در ابزارهای STM32Cube دیده نمی‌شود.
  • برای استفاده هم‌زمان از چند پروگرامر یا اتوماسیون، مشکل‌ساز است.
  • برای پروژه جدید انتخاب کم‌ریسکی نیست.
به‌روزرسانی کپی‌ها را حدسی انجام ندهید: فریمور با سخت‌افزار هر مدل مرتبط است و نمی‌توان نوع فریمور یک برد را به نوع دیگر تبدیل کرد. اگر دستگاه اصل است، از STM32CubeProgrammer یا بسته رسمی STSW-LINK007 استفاده کنید؛ اگر کپی است، فقط روش اعلام‌شده فروشنده همان مدل را دنبال کنید.

توصیه خرید ساده: برای شروع و کارهای روزمره، سازگاری واقعی با CubeProgrammer، اتصال NRST و پین‌اوت روشن مهم‌تر از شکل ظاهری است. برای STM8، JTAG، SWO، Virtual COM یا اتصال چند پروگرامر به یک کامپیوتر، امکانات دقیق مدل را قبل از خرید بررسی کنید.

5تفاوت ST-Link V2 mini، ST-LINK/V2 و STLINK-V3

ماژول کوچک ST-Link V2 mini

V2 mini بازاری

کوچک و ساده؛ مشخصات به سازنده بستگی دارد.

پروگرامر تمام‌اندازه ST-LINK/V2

ST-LINK/V2

مدل مستقل رسمی با SWD/JTAG و SWIM.

پروگرامر STLINK-V3SET و برد آداپتور

STLINK-V3SET

نسل سریع‌تر با VCP و Bridge؛ تصویر محصول ST.

ویژگی V2 mini بازاری ST-LINK/V2 رسمی STLINK-V3SET
کاربرد اصلیپروگرام ساده STM32 با SWDSTM8 و STM32، پروگرام و دیباگتوسعه سریع‌تر و امکانات جانبی بیشتر
SWDمعمولاً دارددارددارد
JTAGمعمولاً ندارددارددارد
SWV / SWOاغلب نداردپشتیبانی می‌شودپشتیبانی می‌شود
STM8 / SWIMبه فریمور و پین‌اوت بستگی دارد؛ فرض نکنید داردداردبا برد آداپتور MB1440
Virtual COM / UARTمعمولاً ندارددر مدل مستقل V2 ندارددارد
USB BridgeنداردنداردSPI/UART/I2C/CAN/GPIO روی آداپتور
سرعت و USBمعمولاً محدود و متغیرUSB 2.0 Full SpeedUSB 2.0 High Speed
فریموربه سازنده بستگی داردبه‌روزرسانی رسمیبه‌روزرسانی رسمی
انتخاب مناسبکار اقتصادی و SWD سادهترکیب STM8/STM32 یا نیاز به JTAGکار حرفه‌ای، VCP، Bridge و سرعت بالاتر
V3 یک مدل واحد نیست: مقایسه بالا برای STLINK-V3SET است. STLINK-V3MINI و V3MINIE برای STM32 هستند و SWIM/STM8 ندارند؛ امکانات V3MODS و V3PWR نیز متفاوت است. همچنین ST-LINK/V2-1 روی بردهای توسعه با مدل مستقل ST-LINK/V2 یکسان نیست و معمولاً VCP دارد ولی SWIM ندارد.

6بوت‌مودها و تنظیم صحیح BOOT0 و BOOT1

بعد از Reset، میکرو باید مشخص کند اجرای برنامه را از کدام ناحیه شروع کند. انتخاب معمول بین Flash کاربر، System Memory یا بوت‌لودر کارخانه و در برخی مدل‌ها SRAM است. روش انتخاب در همه خانواده‌ها یکسان نیست: علاوه بر پایه BOOT0 و BOOT1، در برخی مدل‌ها Option Bytes و بیت‌هایی مانند nBOOT1 یا BOOT_LOCK نقش دارند.

نکته‌ای که بیشترین اشتباه را ایجاد می‌کند: برای پروگرام‌کردن معمولی با ST-Link و SWD، نیازی نیست BOOT0 را روی 1 بگذارید. در حالت عادی میکرو باید از Flash کاربر بوت شود؛ در بسیاری از بردهای STM32F1 یعنی BOOT0=0.

جدول رایج برای بسیاری از مدل‌های STM32F1

BOOT0BOOT1محل شروع بوتکاربرد
0بی‌اهمیتMain Flash / Flash کاربرحالت عادی اجرای برنامه و کار با SWD
10System Memoryبوت‌لودر کارخانه برای UART یا رابط‌های پشتیبانی‌شده
11Embedded SRAMاجرای خاص از RAM؛ برای پروگرام معمولی لازم نیست

محدودیت مهم: این جدول را به تمام STM32ها تعمیم ندهید. نام و نقش پایه‌ها، Option Bytes و رابط‌های بوت‌لودر در مدل‌های مختلف تغییر می‌کند. مرجع نهایی، دیتاشیت/Reference Manual همان میکرو و سند AN2606 است.

پروگرام با بوت‌لودر UART

  1. مطابق AN2606 مطمئن شوید کدام USART و کدام پایه‌ها در مدل شما پشتیبانی می‌شوند.
  2. بوت را روی System Memory قرار دهید؛ در جدول F1 بالا BOOT0=1 و BOOT1=0.
  3. TX مبدل به RX میکرو و RX مبدل به TX میکرو، با GND مشترک و سطح ولتاژ سازگار وصل شود.
  4. میکرو را Reset کنید و در CubeProgrammer گزینه UART را انتخاب کنید.
  5. بعد از پروگرام، بوت را به Flash کاربر برگردانید و دوباره Reset کنید.

پروگرام با USB DFU

  • فقط روی مدل‌هایی قابل‌استفاده است که USB و بوت‌لودر USB DFU را در System Memory پشتیبانی کنند.
  • به ST-Link نیاز نیست؛ کابل USB داده‌دار مستقیم به میکرو وصل می‌شود.
  • پایه‌های USB و شرایط فعال‌شدن DFU باید از AN2606 بررسی شود.
  • در CubeProgrammer نوع اتصال USB انتخاب می‌شود.
  • همه بردهای دارای کانکتور USB لزوماً DFU کارخانه ندارند.

7میکرو قفل شده است؛ Under Reset و روش بازیابی

عبارت «میکرو قفل شده» لزوماً یک مشکل واحد نیست. گاهی برنامه قبلی بلافاصله پایه‌های SWD را به GPIO تبدیل می‌کند، میکرو به Sleep می‌رود یا Watchdog مدام ریست می‌کند. گاهی نیز Readout Protection یا Option Bytes تغییر کرده‌اند. ابتدا باید این موارد از هم جدا شوند.

Under Reset دقیقاً چه می‌کند؟

در حالت Connect Under Reset پروگرامر میکرو را در وضعیت Reset نگه می‌دارد تا برنامه کاربر اجرا نشود و سپس از طریق SWD به آن متصل می‌شود. بنابراین این حالت برای مواردی مفید است که خود برنامه قبلی مانع اتصال شده است؛ اما به‌خودی‌خود قفل حفاظتی را باز نمی‌کند.

روش استاندارد با سیم NRST

  1. پایه NRST پروگرامر را به NRST/RESET میکرو و GND را مشترک کنید. تغذیه هدف و SWDIO/SWCLK نیز باید سالم باشد.
  2. در CubeProgrammer نوع اتصال ST-LINK و پورت SWD را انتخاب کنید.
  3. گزینه Mode = Connect Under Reset و در صورت وجود Reset mode = Hardware Reset را انتخاب کنید.
  4. فرکانس را کاهش دهید و Connect را بزنید. پروگرامر ریست سخت‌افزاری را کنترل می‌کند.
  5. بعد از اتصال، اگر هدف فقط حذف برنامه معیوب است، Flash را پاک و برنامه سالم را دوباره پروگرام کنید. اگر RDP فعال است، بخش بعد را بخوانید.
اگر NRST وصل نیست: بهترین راه، اتصال آن است. در برخی بردها می‌توان دکمه RESET را نگه‌داشت، Connect را زد و سپس دکمه را رها کرد؛ اما این روش به زمان‌بندی و مدل سخت‌افزار وابسته و کمتر قابل‌اتکاست. اگر نرم‌افزار Hardware Reset می‌خواهد، اتصال واقعی NRST لازم است.

اگر قفل از نوع RDP باشد

وضعیتمعنی سادهامکان بازیابی
RDP Level 0حفاظت خواندن فعال نیست.اتصال و پروگرام معمولی انجام می‌شود.
RDP Level 1خواندن و دسترسی دیباگ محدود شده است.در بسیاری از مدل‌ها بازگشت به Level 0 با Mass Erase ممکن است و کل برنامه قبلی پاک می‌شود.
RDP Level 2حالت قفل دائمی در بسیاری از خانواده‌ها.در بسیاری از مدل‌ها برگشت‌ناپذیر است و ST-Link نمی‌تواند آن را باز کند. برای آزمایش روی برد اصلی فعال نکنید.
قبل از Mass Erase: تمام محتویات Flash و احتمالاً داده‌های ذخیره‌شده در آن پاک می‌شود. Option Bytes را نیز بدون شناخت مدل و مقدار فعلی تغییر ندهید. WRP، PCROP، TrustZone و Debug Authentication با RDP ساده یکسان نیستند و روی خانواده‌های جدید باید Reference Manual همان میکرو بررسی شود.

مسیر امن بازیابی یک برد معمولی

  1. ابتدا با Normal و فرکانس پایین امتحان کنید؛ شاید مشکل فقط اتصال ضعیف باشد.
  2. NRST را وصل و Connect Under Reset را امتحان کنید.
  3. پیام نرم‌افزار و Target voltage را بخوانید؛ خطای تغذیه را با قفل اشتباه نگیرید.
  4. اگر امکان خواندن Option Bytes وجود دارد، وضعیت RDP/WRP را بدون Apply بررسی کنید.
  5. فقط پس از پذیرش پاک‌شدن اطلاعات، Mass Erase یا روند RDP Regression مخصوص همان مدل را انجام دهید.
  6. برنامه سالم را پروگرام و Verify کنید؛ سپس بوت را در حالت Flash و برد را Reset کنید.

8پروگرام‌کردن STM8 با SWIM و STVP

STM8 از SWD استفاده نمی‌کند. رابط اصلی برنامه‌ریزی و دیباگ آن SWIM است و نرم‌افزار متداول آن ST Visual Programmer یا STVP می‌باشد. STM32CubeProgrammer برای STM32 است، نه جایگزین عمومی STVP برای STM8.

سیم‌کشی معمول SWIM

  • VDD/VAPP: تغذیه یا سنجش ولتاژ هدف، طبق راهنمای پروگرامر
  • DATA/SWIM: به پایه SWIM میکروکنترلر
  • GND: زمین مشترک
  • RESET/NRST: به پایه ریست میکرو

در STVP ابتدا سخت‌افزار ST-LINK و مدل دقیق STM8 را انتخاب کنید، فایل برنامه را باز کنید و Program/Verify را انجام دهید. Option Bytes را فقط با شناخت عملکردشان تغییر دهید.

کانکتور چهارپین SWIM برای برنامه‌ریزی STM8

چیدمان VDD، DATA، GND و RESET در کانکتور SWIM مدل ST-LINK/V2.

پشتیبانی STM8 را از روی نام V2 حدس نزنید: ST-LINK/V2 مستقل رسمی از SWIM پشتیبانی می‌کند؛ در STLINK-V3SET این رابط روی برد آداپتور قرار دارد؛ V2-1 بردهای توسعه و STLINK-V3MINI معمولاً برای STM8/SWIM نیستند. در ماژول‌های کوچک بازاری نیز وجود پایه یا موفقیت با STM32، اثبات پشتیبانی STM8 نیست.

9خطاهای رایج و راه‌حل عملی

خطا یا علامتعلت‌های محتملاقدام پیشنهادی
No ST-LINK detectedدرایور، کابل، پورت USB، اشغال‌شدن پروگرامر توسط برنامه دیگر یا ناسازگاری کپیCubeIDE/Keil را ببندید، Refresh کنید، کابل و پورت را عوض کنید و درایور STSW-LINK009 را بررسی کنید.
دستگاه در ویندوز Unknown استدرایور ناقص یا اتصال قبل از نصب درایوردرایور رسمی را نصب و در Device Manager گزینه Update driver را برای دستگاه مربوط انجام دهید.
No STM32 target found / No target connectedقطعی تغذیه، نبود GND مشترک، جابه‌جایی SWDIO/SWCLK، پین‌اوت اشتباه یا اجرای برنامه مخربولتاژ و سیم‌ها را بررسی، فرکانس را کم و در صورت نیاز Under Reset را امتحان کنید.
Target voltage صفر یا بسیار کم استبرد خاموش، VTref وصل نیست، اتصال نامناسب یا مشکل رگولاتورتغذیه واقعی میکرو و نقش پایه VCC/VTref در پروگرامر را بررسی کنید؛ صرف‌نظر از این خطا توصیه نمی‌شود.
اتصال فقط گهگاه برقرار می‌شودسیم بلند، اتصال شل، نویز، فرکانس زیاد یا تغذیه ناپایدارسیم‌ها را کوتاه و محکم کنید، فرکانس را به 400 یا 100 کیلوهرتز برسانید و تغذیه را پایدار کنید.
Under Reset هم وصل نمی‌شودNRST وصل نیست، Reset mode اشتباه، مدار ریست مشکل دارد یا قفل سخت‌افزاری/حفاظتیاتصال NRST و Hardware Reset را بررسی کنید. Under Reset به‌تنهایی RDP را حذف نمی‌کند.
خطای Readout ProtectionRDP فعال استسطح RDP و خانواده میکرو را بررسی کنید. در Level 1 بازیابی معمولاً با پاک‌شدن Flash همراه است؛ Level 2 در بسیاری از مدل‌ها برگشت‌ناپذیر است.
Flash write protectionWRP یا Option Bytes محدودکنندهقبل از تغییر، Option Bytes را بخوانید و Reference Manual همان مدل را بررسی کنید. همه محدودیت‌ها RDP نیستند.
Download یا Verify خطا می‌دهدآدرس اشتباه BIN، اتصال ناپایدار، تغذیه ضعیف، فایل نامناسب یا حفاظت حافظهآدرس پروژه و فایل را بررسی، فرکانس را کم و وضعیت حفاظت را کنترل کنید. Erase تصادفی انجام ندهید.
Verify موفق است ولی برنامه اجرا نمی‌شودBOOT0 اشتباه، فایل متعلق به مدل دیگر، آدرس شروع نادرست یا نیاز به Resetبوت را روی Flash کاربر قرار دهید، مدل Target و آدرس لینکر را بررسی و برد را Reset کنید.
در ST-LINK Utility کار می‌کند ولی در Cube نهفریمور قدیمی، نبود ID سازگار یا محدودیت دستگاه کپیمدل و سریال را بررسی کنید. دستگاه اصل را با ابزار رسمی به‌روز کنید؛ برای کپی از روش فروشنده استفاده کنید.
Firmware upgrade نیمه‌کاره ماندهقطعی USB، انتخاب فریمور نامناسب یا محدودیت کپیUSB پایدار و ابزار رسمی مناسب همان مدل را امتحان کنید. فریمور مدل دیگر نصب نکنید؛ برای کپی با فروشنده هماهنگ شوید.
STM8 متصل نمی‌شودعدم پشتیبانی SWIM، انتخاب مدل اشتباه در STVP یا سیم‌کشی ناقصپشتیبانی واقعی SWIM، چهار سیم VDD/DATA/GND/RESET و انتخاب دقیق STM8 را بررسی کنید.
ترتیب عیب‌یابی مهم است: اول تغذیه و GND، بعد پین‌اوت و SWDIO/SWCLK، سپس فرکانس و NRST و در انتها Option Bytes و قفل. تغییر Option Bytes یا Mass Erase نباید اولین واکنش به هر خطای اتصال باشد.

10چک‌لیست سریع و جمع‌بندی

برای پروگرام معمولی STM32

  • نرم‌افزار CubeProgrammer و درایور نصب شده باشد.
  • GND، SWDIO، SWCLK و ترجیحاً NRST وصل باشد.
  • تغذیه و Target voltage سالم باشد.
  • Port روی SWD و Mode روی Normal باشد.
  • فایل و آدرس صحیح انتخاب و Verify فعال شود.
  • BOOT0 در حالت بوت از Flash کاربر باشد.

اگر اتصال برقرار نمی‌شود

  • کابل، درایور و اشغال‌نبودن ST-Link را بررسی کنید.
  • فرکانس SWD را کاهش دهید.
  • NRST را وصل و Connect Under Reset را انتخاب کنید.
  • پیام خطا را از خطای تغذیه تا RDP دسته‌بندی کنید.
  • قبل از پاک‌کردن، از نبود نیاز به برنامه قبلی مطمئن شوید.
  • RDP Level 2 را برای آزمایش فعال نکنید.

قاعده طلایی

تغذیه سالم + GND مشترک + پین‌اوت درست + NRST متصل، بیشتر مشکلات ST-Link را قبل از پیچیده‌شدن حل می‌کند.

منابع رسمی و مراجع فنی

تصویر ST-LINK/V2 از فروشگاه کافه‌ربات، تصویر V2 mini از Waveshare و تصویر V3SET مربوط به محصول STMicroelectronics است. پین‌اوت‌های SWD/SWIM از مستندات فنی ST و تصویر محیط CubeProgrammer از انجمن ST استفاده شده‌اند؛ لینک‌های خارجی برای انتقال بعدی تصاویر به سرور فروشگاه در فایل حفظ شده‌اند.

بازگشت به ابتدای راهنما

راهنمای فنی کافه‌ربات برای کاربران STM32، STM8 و پروگرامرهای ST-Link