Bisakah saya menggunakan programmer ST-Link untuk chip non-ST?

12

Bisakah saya memprogram semua jenis chip yang dapat diprogram SWD (ARM-MCUs) dengan ST-Link?

Meylis Cherkezov
sumber
"ST-LINK / V2 adalah debugger dan programmer di-sirkuit untuk keluarga mikrokontroler STM8 dan STM32." Saya tidak berpikir Anda bisa segera, tetapi harus dicapai secara teori. Seseorang berhasil menghubungkannya ke MCU LPC di sini: lpcware.com/content/forum/…
Fluffy
1
Mungkin dalam beberapa kasus jika Anda menggunakan sesuatu seperti openocd daripada perangkat lunak ST. Jika Anda mengalami kesulitan, ada implementasi CMSIS-DAP open source yang dapat Anda gunakan, yang lebih universal dengan menempatkan perangkat lunak host dalam kendali detail yang lebih baik.
Chris Stratton
Ini bukan yang Anda tanyakan, tetapi ada juga debuggers yang mencakup beberapa target seperti PE debuggers mikro.
mkeith
2
Saya menggunakan tautan ST ke program lpc1549, ini berfungsi.
user2425240

Jawaban:

6

Anda juga dapat mem-flash st-link dan mengubahnya menjadi Black Magic Probe . Gambar yang sama juga akan mengonversi Pil Biru menjadi BMP.

Saya sudah melakukan keduanya. Blue Pill memiliki keuntungan bahwa usb-rs232 menjembatani ekspor BMP mudah tersedia.

BMP mendukung berbagai chip untuk dimasukkan tetapi tidak terbatas pada:
ST Mikroelektronika STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, DAM4, SAM4, SAM4, SAM4, SAM4, SAM4, SAM4, SAM4, SAM4, SAM4
Nordic nRF51, nRF52 (Inilah sebabnya saya menggunakan BMP)

BMP adalah open source, dapat digunakan untuk pemrograman komersial dan perangkat kerasnya bisa murah (The "real" BMP harganya sekitar $ 60, pil biru 5 bungkus dari amazon kurang dari $ 20 dikirimkan).

GB - AE7OO
sumber
4

Untuk menambah jawaban yang ada; beberapa chip diketahui tidak berfungsi dengan baik dengan ST-LINK dan OpenOCD.

Khususnya, jika target Anda berasal dari keluarga Atmel SAMD21 MCU, Anda cenderung mengalami masalah aneh, di mana prosesor terdeteksi, tetapi segala upaya untuk menghapus sektor flash gagal dengan kesalahan.

Alasannya agak terlibat , mengutip:

AFAIK masalahnya adalah dalam setengah kata (16-bit) tulis ke NVMCTRL-> CTRLA register. STLink tidak menerapkan akses memori setengah kata dan meniru OpenOCD sebagai operasi dua byte. Sayangnya register CTRLA terdiri dari kunci dan perintah dan harus ditulis secara atom. Jika STLink menulis dua byte, pengontrol NVM menetapkan bit PROGE dalam STATUS: "Perintah yang tidak valid dan / atau kata kunci yang buruk telah / ditulis dalam register Perintah NVM"

Solusinya melibatkan kompilasi ulang OpenOCD dengan patch kode. Tidak menyenangkan.

Namun, jika Anda tidak keberatan mem-flash ST-Link Anda (melalui ST-Link lain), Anda dapat mengonversinya menjadi adaptor CMSIS-DAP , yang berfungsi baik dengan SAMD dan juga harus bekerja dengan STM32 dan Cortex-M lainnya. keripik.

ranjau
sumber
1

Ya saya percaya ini mungkin, walaupun saya belum mencobanya. Anda kemungkinan akan melanggar perjanjian Lisensi ST, jika Anda mencoba perangkat pemrograman selain dari ST

Sebagai contoh Segger (Salah satu pemimpin pasar dalam debugger dan programmer) mendukung konversi ST-Link Anda ke J-link (pada dasarnya menimpa chip ST-Link dengan kode Segger). Ini juga dapat dibalik, jadi jika Anda ingin mengembalikan perangkat ST-link Anda kembali ke bentuk aslinya, Anda bisa.

Namun ada beberapa versi ST-Link. Lihatlah tautan berikut yang memberikan info lebih lanjut dan panduan tentang cara melakukan ini.

https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html

Peter H
sumber
1
Saya telah menggunakan header stlink pada nucleo dan papan penemuan pada sebagian besar merek korteks-m utama ... dan yang saya tidak bisa membuatnya berfungsi adalah masalah mendapatkan openocd yang dikonfigurasi bukan stlink.
old_timer
1
Mem-flash ST-Link ke J-Link hanya akan berfungsi (dan legal) di papan Nucleo atau Discovery dan hanya untuk digunakan dengan MCU yang ditargetkan. Baca persyaratan lisensi Seggar, mereka cukup ketat. Sejauh yang saya tahu, Flasher Seggar bahkan tidak akan bekerja pada ST-Link yang berdiri sendiri.
GB - AE7OO
1

Iya itu mungkin. saya menggunakan stlink v2 (asli, serta klon tipe stick usb Cina) dengan Coocox IDE. Coocox juga memiliki aplikasi programmer mandiri - CoFlash , Yang dapat digunakan untuk memprogram banyak chip. Saya memiliki pengalaman dengan hanya dua seri: LPC176x dan LPC175x, melalui antarmuka SWD. Dan saya tidak punya masalah dengan chip tersebut. Saya juga belum membuat perubahan atau pembaruan khusus untuk programmer (kecuali bahwa tautan st asli memerlukan level tegangan tinggi di TVCC (PIN1), jika tidak, itu tidak memungkinkan untuk memprogram chip, jadi saya terhubung langsung menyematkan 19 (3.3vcc) untuk menyematkan 1 pada stlink v2).

janiso
sumber
0

STLink V2 / V2.1 atau V3 dengan firmware terkini juga dapat digunakan dengan platform PC-Hosted Blackmagic pc-stlinkv2. Kompilasi dengan "make PROBE_HOST = pc-stlinkv2", mulai server debug dengan "blackmagic_stlinkv2" dan sambungkan ke: 2000 di gdb atau langsung muat binari dengan "blackmagic_stlinkv2". Ini bekerja dengan semua target yang diketahui BMP. Namun V3 secara aktif membantah bekerja pada target non-ST, sementara V2 tidak peduli.

UweBonnes
sumber