Bagaimana cara menggunakan ST-Link eksternal untuk debug / program STM32F103 MCU?


16

Saya menggunakan STM32F103 MCU untuk proyek saya sendiri dan ingin menggunakan ST-Link dari STM32F411 Nucleo board untuk keperluan debugging / pemrograman eksternal.

Saya telah mengatur jumper CN2 OFF dan pertanyaan saya yang sebenarnya ada di pinouts dari SWO (CN2). Bagaimana saya melanjutkan ini adalah sebagai berikut:

  • PIN 1 (dari SWO) adalah VDD_Target
  • PIN 2 adalah SWCLK
  • PIN 3 adalah GND
  • PIN 4 adalah SWDIO
  • PIN 5 adalah NRST
  • PIN 6 adalah SWO

Sejauh pengetahuan saya, saya tidak harus menggunakan semua pin ini di atas. Seperti dalam, saya sudah terhubung

  • PIN 2 hingga PIN 37 (atau PA14) di MCU
  • PIN 3 ke GND
  • PIN 4 hingga PIN 34 (atau PA13)
  • PIN 5 hingga PIN 7 atau (RESET) dalam target MCU.

Tidak yakin apakah saya harus menghubungkan pin SWO karena ditetapkan sebagai "milik" (Kenapa?). Saya juga memberikan 3,3 V ke VIN pin MCU, berarti saya tidak perlu menghubungkan VDD (PIN 1 stlink).

Silakan merujuk ke tabel ini yang saya ambil dari lembar data resmi:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Berikut konfigurasi pinout umum MCU di sini:

masukkan deskripsi gambar di sini

Saya sudah menguji "hampir" semuanya dengan osiloskop dan tester dan semuanya tampak baik-baik saja. Apa lagi yang saya lewatkan di sini? Haruskah saya melakukan sesuatu dengan pin BOOT0 atau BOOT1?

Jawaban:


11

Pertama-tama, Anda benar, jika papan Anda sudah mendapatkan sumber tegangan suplai, Anda tidak harus menghubungkan pin VDD ST-Link.

Hal kedua yang saya sarankan kepada Anda adalah membuka manual referensi papan STM32F411 Nucleo dan melihat skema. Terutama bagian di mana ST-Link terhubung ke controller di papan tulis.

masukkan deskripsi gambar di sini

Dengan ST Mikroelektronika, SWCLK, SWDIO, NRST, dan SWO (dan tentu saja GND) terhubung ke MCU target. Pin SWO tambahan digunakan untuk tujuan debug, Anda dapat mengakses data yang dicetak dengan printffungsi melalui pin ini dengan ST-Link Utility .

Printf via SWO Viewer menampilkan data printf yang dikirim dari target melalui SWO.

Jadi saya bisa merekomendasikan Anda untuk menghubungkan SWO juga, bisa bermanfaat nanti. Hubungkan MCU Anda ke ST-Link sama seperti mereka telah menghubungkan MCU Nucleo ke dalamnya.

Adapun konfigurasi boot, ada tiga opsi yang dapat dipilih, termudah untuk tetap dengan Flash Utama dan ikat Boot0 ke GND, tapi saya tidak tahu persyaratan Anda sehingga terserah Anda untuk memilih.

masukkan deskripsi gambar di sini


3
Meskipun Anda dapat "pergi dengan" tidak menghubungkan pin VDD, itu bukan berarti ada persediaan, melainkan untuk mendeteksi tegangan suplai target (lihat bagaimana terhubung ke input analog). Antarmuka debug yang lebih canggih dapat mempertahankan garis-garisnya rendah tanpa itu, dan hanya menaikkannya ke tingkat pasokan yang sesuai, mendukung beberapa tegangan target. Garis reset biasanya tidak diperlukan (tidak seperti dengan banyak implementasi SWD lainnya). Ini adalah kunci untuk memulihkan dari beban buruk dan firmware yang menonaktifkan pin SWD, tetapi juga dapat dimanipulasi secara manual.
Chris Stratton

Pada papan STM32F1xx alasan utama untuk membuat BOOT0 yang dapat dipilih secara eksternal adalah jika ada keinginan untuk menggunakan bootloader ROM UART pabrik (dll). Pada '103 ini tidak mendukung USB seperti pada banyak bagian ST selanjutnya. Jika seseorang menginginkan bootloader USB pada '103 itu harus ada di memori flash utama, sehingga pin BOOT0 tidak berguna untuk itu.
Chris Stratton

Boot0 dan boot0 saya disetel ke nol untuk memastikan program akan ditulis ke memori Flash. Selain itu, saya akan mencoba menggunakan utilitas st-link di mesin Windows. Saat ini saya menggunakan Mac OS, tetapi tidak yakin apakah itu masalah saya terkait OS.
baqx0r

Saya telah menggunakan ST-Link Kit STM32F407 Discovery untuk memprogram STM32F303. Saya hanya menghubungkan konektor (2-5 pin) SWD Kit ke papan saya SWCLK, GND, SWDIO, NRST, SWO (seperti yang dilakukan pada Discovery dan Nucleo) dan bekerja dengan ST-Link Utility. Pin boot0 diikat ke GND melalui resistor 10k, berdasarkan manual referensi perangkat keras STM32F303 .
Bence Kaulics

6

Pertama-tama terima kasih kepada semua orang atas kontribusi mereka.

Setelah dua malam tanpa tidur dan berjuang, saya bisa mengetahui masalahnya. Masalahnya adalah koneksi pin di papan kustom saya: Saya berpikir bahwa, di MCU saya, Pin 9 (VDDA) mengalami hubungan pendek dengan PIN 24-36-48, dan Pin 8 (VSSA) dengan PIN 23-35-47, tapi tidak demikian.

Saya perlu memberikan 3.3V dan GND lagi ke VDDA dan VSSA dan st-link mulai berfungsi.

Metode Solusi : Saya menggunakan skema Maple Mini untuk memahami koneksi STM32F103. Ternyata, mereka memiliki hubungan pendek VDDA dengan VDD1, VDD2 & VDD3, dan VSSA dengan VSS1, VSS2 dan VSS3. Saya pikir, saya seharusnya mengerti ini dari penamaan VSSA, karena itu bukan VSS0 atau VSS4.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.