Saya telah membuat board sendiri dengan STM32F7-45VGT6. Saya telah berhasil memprogramnya dengan ST-LINK v2 (bukan yang asli sekalipun) dan sekarang saya bahkan tidak dapat terhubung dengan MCU.
Saya menggunakan ST-Link Utility dari antarmuka ST dan SWD. Bisa jadi saya menggunakan pin SWD sebagai output dan dalam kode saya saya menetapkan mereka sebagai output GPIO. Bisakah itu terjadi?
Namun demikian, saya menghubungkan pin reset saya ke GND dan mengatur opsi "Connect under reset" di ST-Link Utility tetapi tidak berfungsi ... Apa yang bisa saya lakukan?
Di Internet, saya telah menemukan sesuatu tentang penggunaan Pin BOOT0, tapi saya tidak tahu persis ...
stm32
programming
flash
st-link
zupazt3
sumber
sumber
Jawaban:
Saya berhasil menyelesaikan masalah itu. Jika ada yang mengalami masalah serupa, inilah yang saya lakukan:
Saya menggunakan ST-Link v2 dan ST-Link Utility. Dalam pengaturan, saya mengatur "Connect under reset" dan antarmuka SWD (Saya tidak yakin tentang frekuensi).
Kemudian saya menekan tombol reset di papan saya dan mengklik "Target" -> "Hapus chip" dan setelah mengklik saya lepaskan tombol - Menghapus chip sehingga saya sekarang dapat memprogram ulang MCU saya.
Bagaimanapun, jika Anda perlu menggunakan pin SWD sebagai output, maka tambahkan beberapa penundaan di awal program atau gunakan beberapa jumper untuk menonaktifkan / mengaktifkan pengaturan pin ini sebagai output.
sumber
Agar koneksi under reset berfungsi, ST-Link harus memiliki kendali atas pin reset, jika Anda mengikatnya ke ground, ST-Link tidak memiliki peluang untuk menjalankan target dan mendapatkan akses ke sana.
Jika Anda menarik pin BOOT0 tinggi saat power up, MCU akan mulai masuk ke bootloader internal dan Anda dapat memperoleh akses menggunakan beberapa protokol serial (lihat manual referensi untuk detail lebih lanjut).
Di dalam bootloader pin SWD harus tersedia untuk mendapatkan akses, tapi saya tidak 100% yakin tentang ini.
ST Flash Loader Demonstrator adalah alat yang memungkinkan Anda untuk menghapus / memprogram mikro menggunakan antarmuka UART. Jika Anda tidak dapat mengakses UART mikro apa pun, solusi ini tidak akan berfungsi untuk Anda.
sumber
jika Anda menggunakan stmcubemx, Anda harus mengkonfigurasi kawat serial pada tab pinout stmcube. pada tab pinout, klik SYS dan ubah opsi debug ke kawat serial. itu memperbaiki masalah saya, dan mungkin masalah Anda juga.
sumber
Saya mengunduh beberapa kode ke papan STM32F427 saya sendiri. Maka saya tidak dapat terhubung ke board saya menggunakan ST-LINK Utility lagi. Saya pikir kode saya mengacaukan konfigurasi pin port debug (? Tidak dapat mengkonfirmasi). Apa yang saya lakukan adalah yang berikut untuk membuat koneksi dan memprogram ulang papan saya:
Saya memulihkan 2 papan dengan trik ini. Semoga ini membantu. --Bob
sumber
Seperti yang dili katakan:
STM32CubeMx tidak mengkonfigurasi port debug secara default, akibatnya ST-Link akan berhenti berfungsi setelah Anda mem-flash kode Anda. Anda harus menghapus chip dengan ST-link Utility misalnya. Untuk terhubung dengan MCU saya harus menarik pin BOOT0 tinggi saat power up untuk mengaktifkan bootloader. Lalu pergi ke menu Tarjet dan Hapus chip .
sumber
Untuk memprogram ulang MCU, tahan tombol reset dan pilih connect to device di ST-Link Utility atau tekan unduh di IDE Anda (misalnya Keil) dan kemudian lepaskan tombol reset.
sumber
Pin boot (bit dalam beberapa versi) dapat mencegah mulai debugger. Pastikan Anda tidak menerapkan pola boot saat startup (pola biner tertentu pada pin boot0 dan boot1), jika tidak, MCU Anda akan masuk ke kondisi boot.
sumber