Lewati ke isi
Blue Pill STM32F103C8T6 Unknown Device

Blue Pill STM32F103C8T6 Unknown Device

Suatu hari ada seorang teman melakukan trial error dengan MCU keluaran STMicroelectronics yang terkenal murah meriah. Papan MCU tersebut diberi kode Blue Pill yang menggunakan chip STM32F103C8T6 sebagai otaknya. Dengan ukuran sebesar Arduino Nano namun memiliki kemampuan lebih tinggi jika dibandingkan dengan Arduino Nano. Selain dari sisi kemampuan, juga dari sisi harga lebih murah karena Blue Pill dibanderol hampir sama dengan Arduino Pro Mini. Bahkan ada yang menyebutkan bahwa Blue Pill kemampuannya sekelas Arduino Mega2560 namun seharga Arduino Pro Mini.

Gambar 1. Blue Pill STM32F103C8T6 Gambar 1. Blue Pill STM32F103C8T6

Namun karena tingkat kerumitan yang lebih tinggi dari pada pemrograman Arduino, maka Blue Pill tersebut terabaikan selama berbulan-bulan hingga lupa menyimpan. Suatu hari saya melihat Blue Pill yang merana tersebut sehingga merasa kasihan untuk membiarkannya merangkak perlahan dengan kaki seribunya, ya akhirnya saya minta untuk dipelajari. Setelah mendaki gunung lewati lembah, sungai mengalir indah ke samudra, bersama teman bertualang. Akhirnya Blue Pill sampai di meja berantakan saya, mulailah mempersiapkan beberapa senjata untuk melakukan penyiksaan terhadap Blue Pill.


Bagi anda yang ingin memulai belajar mem-program keluarga STM32 sebaiknya persiapkan perangkat keras pemrogramannya yaitu ST-Link. Walaupun Blue Pill bisa di program menggunakan perangkat keras USB TTL seperti FTDI atau Silabs namun menggunakan ST-Link akan lebih mudah.

Gambar 2. ST-Link V2

Gambar 2. ST-Link V2

Hubungkan ST-Link ke pin Blue Pill dengan benar, jangan sampai tertukar, karena kalau tertukar Blue Pill bisa saja mogok bahkan brick. Hubungkan dengan tepat antara 3V, SWDIO, SWCLK, dan GND. Samakan saja antara pin ST-Link dengan pin Blue Pill.

Gambar 3. Hubungkan Blue Pill dengan ST-Link

Gambar 3. Hubungkan Blue Pill dengan ST-Link


Untuk perangkat lunaknya saya menggunakan Texane/ST-Link untuk menyesuaikan sistem operasi yang digunakan yaitu Linux. Karena keluarga linux maka perangkat lunak Texane/ST-Link sudah jelas open source sebagai pengganti STLink STMicroelectronics yang hanya berjalan di Windows. Selain itu Texane/ST-Link ini lintas-platform jadi bisa berjalan di Mac dan Linux. Setelah Blue Pill terhubung dengan ST-Link, hubungkan ST-Link ke port USB. Buka terminal pada Linux dan masukan perintah st-info --probe dan apa yang terjadi? Ternyata muncul pesan kesalahan bahwa Blue Pill "Unknown Device" atau tidak dikenali dengan isi pesan sebagai berikut:

$ st-info --probe
Found 1 stlink programmers
 serial: 493f7806493f48484316133f
openocd: "\x49\x3f\x78\x06\x49\x3f\x48\x48\x43\x16\x13\x3f"
  flash: 0 (pagesize: 0)
   sram: 0
 chipid: 0x0000
  descr: unknown device
Penasaran, saya jalankan STlink GUI-nya Linux dan hasilnya sama saja, bahwa Blue Pill memang tidak dikenali. Ada apa gerangan? Apakah Blue Pill ini ngambek karena terlalu lama diabaikan atau memang sang pemilik sebelumnya melakukan kesalahan sehingga Blue Pill hanya tinggal jasad tanpa ruh?

Gambar 4. STlink GUI pada LINUX

Gambar 4. STlink GUI pada LINUX

Jurus pamungkas si malas dan si bodoh pun dikeluarkan yaitu Browsing dengan mendatangi simbah Google. "Simbah kenapa Blue Pill saya menjadi unknown device?". Simbah Google pun membuka primbonnya sambil menjawab "Cucuku, silahkan pilih sendiri halaman yang mau dibuka ya, mata simbah sudah mulai kurang jelas melihat huruf". Akhirnya saya pun klik sana klik sini sampai pegel telunjuknya, akhirnya ditemukan suatu artikel berjudul "CS32 Blue Pill clone connection problems". Sang penulis artikel bahkan mengalami hal yang lumrah namun kurang ajar, yaitu Blue Pill-nya menggunakan chip CS32F103C8T6 bukannya STM32F103C8T6. Dari nomor serinya saja sudah bisa di tebak kalau Blue Pill tersebut sangat asli bajakan.


Metode 1

Mengikuti cara Eugene pada artikel tersebut tetapi sedikit berbeda dalam urutannya adalah sebagai berikut:

Gambar 5. Tekan dan Tahan Tombol Reset

Gambar 5. Tekan dan Tahan Tombol Reset

  • Lepas ST-Link dari port USB komputer
  • Tekan tombol Reset kemudian tahan (jangan di lepas)
  • Hubungkan ST-Link ke port USB komputer dalam keadaan tombol Reset masih di tekan tahan
  • Ketik perintah st-info --probe pada terminal
  • Dan perhatikan hasil pembacaan pada terminal, jika tampil seperti dibawah ini berarti tidak ada masalah dengan Blue Pill
    $ st-info --probe
    Found 1 stlink programmers
     serial: 493f7806493f48484316133f
    openocd: "\x49\x3f\x78\x06\x49\x3f\x48\x48\x43\x16\x13\x3f"
      flash: 0 (pagesize: 1024)
       sram: 20480
     chipid: 0x0410
      descr: F1 Medium-density device
    
  • Lepas tombol Reset dan ketik ulang perintah st-info --probe jika hasilnya sama berarti anda behasil
  • Dari tampilan terminal tersebut, saya mengambil kesimpulan bahwa Flash Memory atau System Memory terisi penuh karena tertulis flash: 0 (pagesize: 1024), ini berarti sudah tidak ada ruang penyimpanan lagi. Kemungkinan terbesar ruang Flash Memory atau System Memory terisi suatu firmware, dan firmware tersebut rusak karena sesuatu hal. Atau mungkin, firmware tersebut menutup jalur komunikasi melalui ST-Link
  • Ketikan perintah st-flash erase untuk menghapus total data didalam Flash Memory
  • Ketika memasukan perintah st-flash erase tampil seperti dibawah ini, kita berarti masih gagal:
    $ st-flash erase
    st-flash 1.5.1
    2020-03-12T01:02:25 INFO common.c: Loading device parameters....
    2020-03-12T01:02:25 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
    2020-03-12T01:02:25 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0 bytes (0 KiB) in pages of 1024 bytes
    Mass erasing
    
  • Perhatikan Flash: 0 bytes (0 KiB) in pages of 1024 bytes itu menunjukan ruang Flash Memory atau System Memory belum terhapus, data masih ada dan tidak berhasil terhapus. Jika seperti ini ikuti Metode 2
  • Dan atau jika setelah tombol Reset dilepas, Blue Pill kembali "Unknown Device" maka ikuti Metode 2

Metode 2

Metode kedua ini dilakukan jika ternyata setelah tombol Reset di lepas keadaan kembali menjadi "Unknown Device" dan atau "Flash: 0 bytes (0 KiB)" maka ikuti langkah di bawah ini:

Gambar 6. Pindahkan Jumper Boot0

Gambar 6. Pindahkan Jumper Boot0

  • Lepaskan ST-Link dari port USB komputer
  • Pindahkah jumper Boot0 ke posisi angka 1 (HIGH), hal ini bertujuan agar ST-Link dapat mengakses System Memory
  • Hubungkan ST-Link ke port USB komputer
  • Ketikan perintah st-info --probe pada terminal, jika hasilnya seperti dibawah ini, berarti kita berhasil mengakses System Memory
    $ st-info --probe
    Found 1 stlink programmers
     serial: 493f7806493f48484316133f
    openocd: "\x49\x3f\x78\x06\x49\x3f\x48\x48\x43\x16\x13\x3f"
      flash: 65536 (pagesize: 1024)
       sram: 20480
     chipid: 0x0410
      descr: F1 Medium-density device
    
  • Perhatikan baris flash: 65536 (pagesize: 1024) artinya ruang penyimpanan pada System Memory masih kosong, namun ruang Flash Memory kemungkinan habis sehingga komunikasi ST-Link tertutup.
  • Segera hapus seluruh data yang ada di Flash Memory maupun System Memory dengan mengetikan perintah st-flash erase pada terminal. Jika hasilnya seperti dibawah ini:
    $ st-flash erase
    st-flash 1.5.1
    2020-03-12T01:18:55 INFO common.c: Loading device parameters....
    2020-03-12T01:18:55 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
    2020-03-12T01:18:55 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
    Mass erasing
    
  • Perhatikan baris Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes berarti semua data sudah terhapus
  • Lepas ST-Link dari port USB komputer dan pindahkan jumper Boot0 keposisi 0 (LOW) atau posisi semula
  • Pasang kembali ST-Link ke port USB komputer dan ketika perintah st-info --probe pada terminal dan tampil seperti dibawah ini:
    $ st-info --probe
    Found 1 stlink programmers
     serial: 493f7806493f48484316133f
    openocd: "\x49\x3f\x78\x06\x49\x3f\x48\x48\x43\x16\x13\x3f"
      flash: 65536 (pagesize: 1024)
       sram: 20480
     chipid: 0x0410
      descr: F1 Medium-density device
    

Selamat!!! Anda telah berhasil... Dan sekarang anda bisa menulis kode apapun ke dalam Blue Pill... Alhamdulillah...!!! Anda masih bingung antara Flash Memory dan System Memory... Tunggu ya... Insya Allah kapan-kapan kita bahas...


Pembaharuan Terakhir: 28 Februari 2022 16:09:34