STM32F103RBT6 hingga RET6: Panduan Migrasi Kepadatan Flash

STM32F103RCT6 guide cover using a real STMicroelectronics STM32F103 LQFP64 microcontroller photograph

STM32F103RBT6 hingga RET6: Panduan Migrasi Kepadatan Flash

STM32F103RCT6 beserta saudara-saudaranya, RBT6 dan RET6, menggunakan footprint 64-pin LQFP yang sama dan inti Cortex-M3 yang sama, sehingga peningkatan flash pada keluarga ini sering dianggap sebagai penggantian langsung, padahal tidak demikian. Kompatibilitas pin bersifat mekanis. Ukuran halaman penghapusan flash, SRAM dan asumsi bootloader sendiri tidak dijamin oleh footprint tersebut, dan manual pemrograman milik ST mendokumentasikan perbedaannya secara langsung.

1. Apa yang sebenarnya berubah antara RBT6, RCT6 dan RET6?

Ketiga komponen tersebut adalah mikrokontroler lini performa STM32F103 yang dibangun dengan inti Arm Cortex-M3 72 MHz yang sama, set periferal yang sama, dan paket LQFP64 yang sama dengan bodi berukuran 10 × 10 × 1.4 mm. Huruf setelah "F103" dan angka tersebut mengodekan ukuran flash: RBT6 dilengkapi flash sebesar 128 Kbyte dan 20 Kbyte sebesar SRAM, RCT6 dilengkapi flash sebesar 256 Kbyte dan 48 Kbyte sebesar SRAM, sedangkan RET6 dilengkapi flash sebesar 512 Kbyte dan hingga 64 Kbyte sebesar SRAM. Tidak ada perubahan pada jumlah pin, penempatan pin, atau periferal inti akibat perbedaan silikon; yang berubah hanya jumlah memori pada die.

Kombinasi footprint yang identik dan memori yang lebih besar inilah yang menjadikannya kasus "peningkatan kapasitas" yang sebenarnya, bukan substitusi lintas vendor. Tidak diperlukan respin papan, pola land baru, atau perubahan pada header debug SWD maupun JTAG. Pekerjaan yang tersisa sepenuhnya berada pada firmware: memastikan bahwa tidak ada bagian dalam build, skrip linker, atau driver flash yang mengasumsikan geometri komponen yang lebih kecil.

Datasheet kepadatan tinggi milik ST (DS5792, yang mencakup komponen 256 hingga 512 Kbyte) dan datasheet kepadatan menengah sama-sama merujuk pada deskripsi keluarga lini performa yang sama, sementara datasheet komersial STM32F103x8/B menyatakan bahwa keluarga tersebut dirancang untuk kompatibilitas penuh pin-ke-pin, perangkat lunak, dan fitur. Pernyataan itu menjelaskan hubungan antarkeluarga, bukan pengganti pemeriksaan peta memori spesifik komponen yang dituju.

2. Apakah susunan pinnya benar-benar identik?

Secara mekanis, ya, untuk trio spesifik ini. RBT6, RCT6 dan RET6 semuanya mencantumkan opsi paket LQFP 64, berukuran 10 × 10 × 1.4 mm, pada halaman informasi pemesanan milik ST, dengan 51 pin I/O serbaguna dalam konfigurasi tersebut. Nomor komponen yang sama juga ditawarkan dalam paket lain (RBT6 misalnya menambahkan opsi TFBGA64), sehingga sufiks paket dan kode pemesanan yang tepat harus diperiksa satu per satu. Klaim "jumlah pin sama" tidak sama dengan kecocokan footprint yang telah diverifikasi untuk komponen tertentu yang dipesan dan digunakan.

STM32F103RBT6, RCT6 and RET6 LQFP64 pinout showing identical pin assignment with only the flash and SRAM capacity changing between the three densities
Gambar 1. Peta pin Chip-seek asli untuk paket LQFP64 yang digunakan bersama oleh RBT6, RCT6 dan RET6, berdasarkan tabel susunan pin dalam datasheet ST. Hanya kapasitas memori yang berbeda di antara ketiganya; nama dan posisi pin tidak berubah.
Komponen Flash SRAM Kelas kepadatan Ditawarkan LQFP64
STM32F103RBT6 128 KB 20 KB Medium-density Yes
STM32F103RCT6 256 KB 48 KB High-density Yes
STM32F103RET6 512 KB 64 KB High-density Yes

Sebelum menetapkan keputusan untuk melakukan respin papan atau tidak, ambil tabel informasi perangkat dari datasheet terbaru untuk kode pemesanan yang tepat dan sedang dicari. Katalog ST, seperti katalog sebagian besar vendor, secara berkala menambahkan atau menghentikan opsi paket tertentu untuk setiap nomor komponen, dan sufiks kode pemesanan ("T6" di sini, ditambah huruf paket atau suhu apa pun yang mengikutinya) adalah acuan distributor saat menyediakan stok.

3. Mengapa ST menyebutnya sebagai kelas "kepadatan" yang berbeda?

Manual referensi STM32F10xxx milik ST (RM0008) dan manual pemrograman flash (PM0075) membagi keluarga STM32F101/F102/F103 menjadi kelas berkepadatan rendah (16 hingga 32 Kbyte flash), berkepadatan menengah (64 hingga 128 Kbyte), berkepadatan tinggi (256 hingga 512 Kbyte) dan kepadatan XL. RBT6 termasuk kepadatan menengah; RCT6 dan RET6 termasuk kepadatan tinggi. Ini bukan label pemasaran: kelas kepadatan menentukan organisasi susunan flash internal, yaitu detail yang memengaruhi firmware.

Secara khusus, PM0075 menyatakan bahwa blok memori flash utama diorganisasi sebagai 32 halaman berukuran 1 Kbyte untuk perangkat berkepadatan rendah, 128 halaman berukuran 1 Kbyte untuk perangkat berkepadatan menengah, dan 256 halaman berukuran 2 Kbyte untuk perangkat berkepadatan tinggi. Granularitas penghapusan, yaitu blok terkecil yang dapat dihapus oleh pengendali flash dalam satu operasi, terkait dengan kelas kepadatan, bukan dengan keanggotaan komponen dalam keluarga yang kompatibel pin.

4. Apa itu halaman penghapusan flash, dan mengapa ukurannya penting?

Flash internal tidak dapat ditulis ulang satu byte demi satu byte seperti yang dapat dilakukan RAM. Untuk mengubah bit yang telah diprogram sebelumnya dari 0 kembali menjadi 1, pengendali flash harus menghapus seluruh halaman, dan hanya setelah itu data baru dapat diprogram ke dalamnya. Oleh karena itu, halaman merupakan unit atomik untuk setiap pembaruan di lapangan, baik bootloader menulis citra aplikasi baru, blok pengaturan ditulis ulang, maupun pembaruan over-the-air menyiapkan versi firmware baru.

Flash memory map comparison showing RBT6 organized as 128 pages of 1 Kbyte and RCT6/RET6 organized as larger pages of 2 Kbytes, from the STM32F10xxx flash programming manual
Gambar 2. Diagram Chip-seek asli tentang organisasi flash yang dijelaskan dalam manual pemrograman ST PM0075: perangkat berkepadatan menengah menggunakan halaman 1 Kbyte, sedangkan perangkat berkepadatan tinggi menggunakan halaman 2 Kbyte.

Rancangan berbasis RBT6 yang menghapus flash dalam unit 1 Kbyte dan menyimpan dua blok data independen dengan jarak 1 Kbyte karena jarak tersebut merupakan batas penghapusan yang aman pada komponen itu, bergantung pada karakteristik susunan flash berkepadatan menengah. Memindahkan firmware yang sama ke RCT6 tanpa memeriksa ulang hal ini berarti perintah penghapusan kini menghapus 2 Kbyte sekaligus: blok data kedua, yang masih dianggap terisolasi oleh firmware, berada di dalam halaman yang baru saja dihapus bersama blok pertama.

Mode kegagalan ini pada awalnya tidak tampak seperti masalah flash. Gejalanya berupa pengaturan yang diam-diam kembali ke nilai semula, partisi aplikasi yang rusak setelah pembaruan, atau citra OTA yang berhasil melakukan boot sekali lalu gagal setelah siklus penulisan berikutnya. Karena gejalanya muncul saat digunakan, bukan saat flashing, orang mudah menghabiskan waktu memeriksa pewaktuan, daya, atau interupsi sebelum penyebab sebenarnya—asumsi ukuran halaman—diperiksa.

5. Di mana ukuran halaman hardcode dapat merusak bootloader?

Diagram showing three places a firmware build encodes flash erase page size: linker script regions, the flash driver erase routine, and third-party OTA or settings storage libraries
Gambar 3. Diagram asli Chip-seek mengenai tiga tempat dalam build firmware STM32F103 tipikal yang mengodekan asumsi ukuran halaman penghapusan; masing-masing perlu ditinjau ketika kelas densitas komponen target berubah.

Tiga tempat dalam build firmware tipikal mengodekan asumsi tentang ukuran halaman penghapusan, dan ketiganya perlu ditinjau ketika berpindah antara kelas densitas:

  1. Definisi wilayah flash pada skrip linker. Pemisahan bootloader/aplikasi khusus sering menyelaraskan wilayah dengan batas halaman penghapusan yang digunakan selama pengembangan. Jika batas tersebut ditetapkan sebagai 1 Kbyte pada RBT6, wilayahnya tetap merupakan alamat yang valid pada RCT6, tetapi tidak lagi selaras dengan batas penghapusan 2 Kbyte aktual komponen tersebut, sehingga halaman parsial dapat melintasi wilayah aplikasi dan bootloader selama pembaruan.
  2. Rutin penghapusan flash pada driver flash. ST's HAL dan pustaka periferal standar sama-sama menyediakan fungsi penghapusan flash yang menerima alamat halaman, tetapi konstanta ukuran halaman yang digunakan untuk menghitung jumlah panggilan penghapusan yang diperlukan, atau menentukan lokasi awal halaman berikutnya, terkadang didefinisikan secara lokal dalam kode aplikasi, bukan dibaca dari organisasi memori komponen itu sendiri.
  3. Pustaka penyimpanan pengaturan atau OTA apa pun yang diambil dari luar HAL. Pustaka penyimpanan berbasis flash pihak ketiga sering kali menggunakan ukuran halaman yang dapat dikonfigurasi dan harus ditetapkan untuk setiap target; membiarkan default 1 Kbyte secara diam-diam saat menggunakan silikon RCT6 akan menimbulkan kembali risiko korupsi yang sama tanpa gejala pada tingkat linker.

Perbaikan praktis untuk ketiga kasus tersebut sama: temukan setiap referensi ke ukuran halaman penghapusan dalam build, pastikan nilainya dibaca dari (atau secara eksplisit disesuaikan dengan) organisasi aktual komponen target berdasarkan datasheet terkini dan PM0075, lalu jalankan kembali siklus penghapusan/program/verifikasi lengkap pada rentang alamat yang representatif, bukan hanya alamat yang digunakan selama bring-up awal.

6. Apa yang berubah selain flash?

Bar chart comparing flash and SRAM capacity across STM32F103RBT6, RCT6 and RET6, showing SRAM growing proportionally faster than flash
Gambar 4. Bagan asli Chip-seek yang membandingkan kapasitas flash dan SRAM pada ketiga komponen, dibuat berdasarkan datasheet ST terkini dari masing-masing komponen.

SRAM bergerak searah dengan flash, tetapi dengan peningkatan relatif yang lebih besar: 20 KB pada RBT6 dibandingkan 48 KB pada RCT6 lebih dari dua kali lipat, dan 64 KB pada RET6 lebih dari tiga kali lipat. Desain yang terbatas oleh RAM pada komponen yang lebih kecil memperoleh ruang tambahan yang berarti untuk buffer yang lebih besar, heap yang lebih besar, atau tugas RTOS tambahan. Desain yang mengalokasikan RAM secara tepat untuk RBT6's 20 KB harus memeriksa kembali apakah alokasi statis berukuran tetap, ukuran stack, dan simbol linker masih sesuai; berpindah ke komponen dengan RAM yang lebih besar tidak mengharuskan seluruh kapasitasnya digunakan, tetapi kode apa pun yang menghitung alamat relatif terhadap ukuran RAM yang tetap dan lebih kecil harus ditinjau dengan cara yang sama seperti asumsi flash.

Core, clock tree, struktur GPIO, dan periferal komunikasi (I2C, SPI, I2S, USART, USB, CAN) tidak berubah pada ketiga komponen ini. Spesifikasi kelistrikan, rentang tegangan operasi, dan timing untuk periferal tersebut ditentukan oleh desain keluarga performance-line, bukan oleh densitas memori, sehingga kualifikasi pada tingkat periferal tidak perlu diulangi hanya karena peningkatan flash.

7. Apa yang harus diverifikasi sebelum meningkatkan komponen?

Peningkatan densitas pada keluarga ini aman setelah lima hal diperiksa berdasarkan datasheet terkini komponen target dan manual pemrograman flash, bukan diasumsikan hanya dari kompatibilitas pin.

  1. Kode paket yang dapat dipesan. Pastikan kode pemesanan LQFP64 yang tepat untuk densitas target masih berlaku dan tersedia dari sumber yang dituju; opsi paket dapat berbeda di seluruh rentang densitas untuk vendor tertentu.
  2. Ukuran halaman penghapusan flash. Pastikan apakah bootloader, pustaka OTA, atau penyimpanan pengaturan mengasumsikan ukuran halaman tetap, lalu perbarui konstanta tersebut agar sesuai dengan kelas densitas komponen target (1 Kbyte untuk densitas menengah, 2 Kbyte untuk densitas tinggi).
  3. Penyelarasan wilayah pada skrip linker. Periksa kembali bahwa wilayah aplikasi dan bootloader selaras dengan batas halaman penghapusan yang baru, bukan hanya dengan alamat flash yang valid.
  4. Pengalamatan relatif terhadap RAM. Tinjau kode apa pun yang menghitung lokasi buffer atau batas stack relatif terhadap ukuran SRAM tertentu, alih-alih menggunakan simbol linker dari toolchain.
  5. Uji penghapusan/program/verifikasi lengkap. Jalankan seluruh alur pembaruan, termasuk simulasi penulisan yang terputus jika aplikasi mendukung pembaruan fail-safe, sebelum mengualifikasi komponen baru untuk produksi.

Dokumentasikan komponen spesifik mana (RBT6, RCT6, atau RET6) yang menjadi target build firmware tertentu, dan hindari mengirim satu biner untuk beberapa kelas densitas tanpa pemeriksaan ukuran halaman secara eksplisit di dalam driver flash itu sendiri.

8. Apakah ada alternatif yang kompatibel pin di luar keluarga ST?

Komponen yang kompatibel dengan STM32F103 dari sumber kedua tersedia dari vendor lain dan umumnya dijual dengan susunan pin LQFP64 yang sama untuk densitas yang setara, mengikuti logika yang sama seperti panduan referensi silang STM32F103C8T6 sebelumnya di situs ini. Peringatannya sama: kompatibilitas pin merupakan klaim mekanis mengenai paket, dan dengan sendirinya tidak menetapkan pengontrol flash, ukuran halaman penghapusan, atau timing pemrograman flash yang identik. Pastikan manual pemrograman vendor tersebut mengenai ukuran halaman penghapusan dan konfigurasi siklus akses flash sebelum menganggap komponen sumber kedua berperilaku seperti komponen asli ST pada tingkat firmware.

9. Apa yang harus dicantumkan dalam permintaan pengadaan?

Saat mengadakan peningkatan densitas, permintaan yang menyebutkan komponen target secara tepat akan mendapat jawaban yang dapat digunakan lebih cepat daripada permintaan yang hanya menyatakan ukuran flash. Pemasok dapat mengonfirmasi ketersediaan berdasarkan kode pemesanan lengkap, tetapi "256 KB STM32F103" saja tidak menyebutkan paket, kelas suhu, atau sufiks yang tepat.

Kolom yang berguna adalah nomor komponen lengkap yang dapat dipesan (termasuk sufiks paket dan suhu), jumlah per build beserta volume tahunan, apakah desain berpindah dari komponen kecil tertentu (nyatakan nomor komponen sumber secara tepat), dan apakah rutin penghapusan flash firmware saat ini telah diperbarui untuk kelas densitas target. Jika yang penting hanya densitas target dan RCT6 atau RET6 dapat digunakan, nyatakan demikian; jika diperlukan ukuran RAM tertentu, sebutkan ukurannya, bukan meminta "yang terbesar yang tersedia."

Untuk ketersediaan terkini pada keluarga ini, cari daftar STM32F103RCT6, daftar STM32F103RBT6 dan daftar STM32F103RET6 di chip-seek.com. Halaman-halaman ini menampilkan hasil katalog langsung, bukan klaim stok; konfirmasikan jumlah dan kode tanggal berdasarkan penawaran. Panduan referensi silang STM32F103C8T6 sebelumnya dan panduan STM32F103CBT6 mencakup anggota LQFP48 yang lebih kecil dari keluarga yang sama untuk proyek yang belum menetapkan footprint 64-pin. Permintaan pengadaan multibaris dapat dikirim melalui formulir BOM dan RFQ.

Pertanyaan yang sering diajukan

Bisakah saya menggunakan biner firmware yang sama pada RBT6 dan RCT6 tanpa perubahan? Hanya jika firmware sudah membaca geometri flash dari definisi komponen itu sendiri, bukan menetapkan ukuran halaman secara hardcode. Sebagian besar kode bring-up yang ditulis untuk satu target menetapkannya secara hardcode, jadi periksa driver flash dan skrip linker sebelum menggunakan kembali biner tersebut.

Apakah footprint LQFP64 benar-benar identik pada RBT6, RCT6 dan RET6? Ya, untuk paket LQFP 64, 10 × 10 × 1.4 mm yang tercantum dalam informasi pemesanan ST terkini untuk setiap komponen. Konfirmasikan kode produk yang dapat dipesan untuk komponen target, karena ketersediaan paket dapat berubah selama masa pakai produk.

Apa perbedaan antara densitas menengah dan densitas tinggi dalam terminologi ST? Ini adalah kelas kapasitas flash yang ditetapkan dalam manual referensi ST RM0008: densitas menengah mencakup flash 64 hingga 128 Kbytes, sedangkan densitas tinggi mencakup 256 hingga 512 Kbytes. Kelas ini menentukan organisasi internal array flash, termasuk ukuran halaman penghapusan.

Apakah SRAM yang lebih besar dengan sendirinya memerlukan perubahan firmware? Tidak. RAM yang tidak digunakan tidak perlu digunakan. Peninjauan hanya diperlukan untuk kode yang menghitung alamat atau batas relatif terhadap ukuran tetap RAM pada komponen yang lebih kecil, alih-alih menggunakan simbol yang disediakan linker.

Apakah periferal ADC, timer, USB dan CAN berubah di antara ketiga komponen ini? Tidak. Kumpulan periferal inti, spesifikasi kelistrikan, dan pohon clock ditetapkan oleh desain keluarga performance-line dan tidak berubah berdasarkan densitas memori pada ketiga komponen ini.

Apa yang terjadi jika ukuran halaman penghapusan salah dalam firmware produksi? Data yang berdekatan dalam halaman penghapusan fisik yang sama dapat terhapus secara tidak sengaja ketika satu wilayah dihapus, yang biasanya muncul sebagai pengaturan yang rusak atau pembaruan yang gagal, bukan sebagai kesalahan pemrograman langsung.

Sumber

Perlu bantuan untuk mendapatkan densitas yang tepat?

Kirim nomor komponen sumber (jika bermigrasi dari densitas yang lebih kecil), ukuran flash target, dan sufiks paket yang tepat. Minta konfirmasi jumlah, kode lot/tanggal, dan kepemilikan inventaris sebelum persetujuan. Panduan ini tidak memverifikasi stok saat ini; hasil katalog saja tidak membuktikan inventaris milik sendiri atau kompatibilitas firmware.

Cari inventaris langsungKirim RFQ

Bekerja dengan keluarga 48-pin? panduan referensi silang STM32F103C8T6 mencakup paket LQFP48 yang lebih kecil.

Check stock by part number

Turn this insight into a sourcing decision.

Need pricing or a drop-in alternative? Submit a BOM / RFQ or talk to our team.