- RP2040 unggul pada PIO·DMA·overclock, tetapi karena kurangnya performa inti, RAM, GPIO, sumber daya PIO, dan QSPI PSRAM, beberapa proyek harus beralih ke STM32H7; RP2350 menutup celah itu secara besar-besaran
- RP2350 menyediakan dual Cortex-M33F, dukungan floating-point, instruksi kustom untuk akselerasi matematika presisi ganda, RAM 2x lipat, dan opsi inti RISC-V, serta telah digunakan secara stabil di 300MHz pada berbagai proyek
- PIO dapat memanfaatkan FIFO seperti memori untuk baca-tulis acak, dan berkat 3 PIO, interrupt antar-PIO, serta DMA yang ditingkatkan, implementasi Sony Memory Stick slave hingga SDIO slave pun menjadi mungkin
- QSPI PSRAM mendukung baca-tulis dan cache, dan pengujian memori yang berhenti atau crash di STM32H7 terus berjalan di RP2350; memasang RAM 16MB pada papan rakitan manual 2-layer juga jadi sederhana
- Proyek RP2350 publik pertama, DEFCON 32 badge, menampilkan emulator Game Boy dan menjalankan PalmOS, sementara RP2354A/RP2354B menawarkan flash 2MB in-package dengan pinout yang sama serta varian ekspansi GPIO 80 pin
Hal yang kurang dari RP2040 dan perbaikan yang diharapkan
- RP2040 adalah mikrokontroler yang dipakai di berbagai proyek, dengan keunggulan khusus pada PIO, DMA yang dirancang baik, dan kemampuan overclock tinggi
- Kombinasi PIO dan DMA dimanfaatkan untuk implementasi berikut
- driver display tingkat lanjut
- papan yang berfungsi seperti bus sistem penuh dengan RAM dan ROM
- konfigurasi yang terhubung ke prosesor MC68328
- Kekurangan RP2040 berfokus pada sumber daya periferal dan skalabilitas memori
- mode transfer forever pada DMA tanpa membuang channel lain
- lebih banyak channel DMA
- lebih banyak register untuk menyimpan variabel sementara pada PIO state machine
- lebih banyak unit PIO
- lebih dari 32 slot instruksi per PIO
- lebih banyak GPIO
- Clock tinggi banyak berperan menutupi kelemahan inti Cortex-M0+, dan dinilai bahwa inti yang lebih baik seperti Cortex-M4F akan lebih menguntungkan untuk floating-point atau workload SIMD ringan
- Dukungan QSPI PSRAM dan RAM yang lebih besar juga menjadi harapan penting
Pengalaman dengan QSPI RAM STM32H7 dan perbandingannya
- Untuk beberapa kasus penggunaan, STM32H7 harus dipakai sebagai pengganti RP2040, tetapi masih ada ketidakpercayaan besar terhadap bug STM32H7 dan penanganan errata oleh STMicro
- Pada dukungan QSPI RAM STM32H7, muncul masalah berikut
- write hilang jika menulis tanpa cache
- jika cache diaktifkan, garbage acak tercatat di sekitar sebagian write 1-byte
- jika mengeksekusi kode dari PSRAM, seluruh chip berhenti setelah puluhan miliar akses dan debugger pun tidak bisa terhubung
- Masalah ini telah dilaporkan dan demo telah diberikan, tetapi respons STMicro dinilai tidak memadai
- Solusi sementara memang ditemukan, tetapi menghabiskan 7~10% performa sehingga mengurangi kegunaan chip
Perbaikan yang terpenuhi di RP2350
- Selama setahun terakhir, dengan bantuan Raspberry Pi, sampel RP2350 digunakan untuk melaporkan bug dan memberi saran, sekaligus memverifikasi bagaimana skenario penggunaan RP2040 bisa diperbaiki
- Performa inti dan komputasi meningkat besar
- dibekali 2 inti Cortex-M33F
- dukungan floating-point
- menyediakan instruksi kustom yang mempercepat matematika double-precision, melampaui single-precision umum pada Cortex-M33F
- operasi double-precision memang bukan single-cycle, tetapi berada di kisaran 2~3 siklus per op
- inti RISC-V juga bisa digunakan, tetapi proyek nyata memakai Cortex-M33
- RP2350 dijalankan pada 300MHz di berbagai proyek tanpa masalah
- Ukuran RAM menjadi 2x dibanding RP2040
Perubahan pada PIO dan DMA
- PIO pada RP2350 dapat memakai FIFO seperti memori untuk baca-tulis acak, sehingga konfigurasi PIO yang sebelumnya sulit karena kekurangan variabel sementara menjadi lebih mudah
- Jumlah PIO di dalam chip meningkat menjadi 3
- Transfer interrupt antar-PIO kini dimungkinkan, sehingga sinkronisasi lintas-PIO dan konfigurasi yang lebih kompleks bisa dibuat
- Kombinasi PIO dan DMA yang ditingkatkan dipakai di proyek nyata untuk implementasi berikut
- Sony Memory Stick protocol slave: perangkat mengenalinya seperti Memory Stick sungguhan
- SDIO slave device: perangkat yang diuji mengenalinya sebagai perangkat SDIO
- DMA juga diperkuat dari sisi keberlanjutan transfer dan kontrol alamat
- transfer tak terbatas dimungkinkan tanpa memakai channel lain
- lebih banyak cara untuk menyesuaikan alamat memori pada setiap akses
- selain opsi RP2040 berupa “alamat yang sama” atau “bertambah sebesar ukuran akses”, kini ada opsi pengurangan dan penambahan dengan ukuran berbeda
Dukungan QSPI PSRAM
- RP2350 mendukung QSPI PSRAM dan baca-tulis berfungsi
- Cache juga tersedia dan berjalan normal
- Pengujian memori yang berhenti atau crash di STM32H7 terus berjalan di RP2350, tanpa kehilangan data atau chip hang
- Kombinasi yang dimungkinkan adalah sebagai berikut
- 1 flash + 1 PSRAM
- 2 flash
- 1 boot flash + 2 runtime PSRAM
- Menempatkan VTOR, SP, dan PC semuanya di PSRAM, sambil banyak menjalankan instruksi LDM/STM yang menargetkan PSRAM dan menerima interrupt, juga berjalan tanpa masalah
- Konfigurasinya cukup 3 baris kode C, dan menambahkan RAM 16MB ke papan rakitan manual 2-layer pun jadi sederhana
- Pada papan sampel RP2350 awal, Pi Pico 2 tidak memiliki footprint PSRAM, sehingga PSRAM dipasang dengan metode dead-bug, tetapi tetap berjalan pada full speed
Keunggulan yang tetap terjaga dan pengalaman pengembangan
- Saat berpindah dari RP2040 ke RP2350, kualitas desain dan dokumentasi periferal tetap terjaga
- Periferal dinilai bekerja sesuai yang dijanjikan
- SDK jelas dan ringkas, tanpa perlu mengunduh tool besar ala Cube/HAL
- Kodenya bukan macro hell dan berjalan dengan baik
- Papan pengembangan RP2350 dari Raspberry Pi kompatibel dengan rPiPico, dan banyak proyek bisa dipindahkan dengan mudah ke PiPico 2
Proyek RP2350 publik pertama: DEFCON 32 badge
- Salah satu proyek RP2350 yang dipublikasikan adalah DEFCON 32 badge
- Hardware dikembangkan oleh Entropic Engineering, dan firmwarenya adalah port dari emulator Game Boy mungil uGB
- Kedua inti dibagi peran penggunaannya
- satu inti memakai instruksi SIMD Cortex-M33 untuk melakukan upscale layar Game Boy sebesar 1,5x
- inti lainnya menangani emulasi, UI, dan pekerjaan sisanya
- Game Boy yang valid dapat berjalan hingga maksimal 2MB, dan jika chip flash yang lebih besar dipasang, game yang lebih besar juga dimungkinkan
- Game Boy yang dipra-muat ditulis oleh pihak DEFCON
- Pada badge ini, chip di-clock secara konservatif pada 125MHz
- waktu pengujian tidak banyak, dan produksi meningkat dari 10 unit menjadi 28.000 unit tanpa tahap perantara, serta tidak ada plan B
- clock maksimum display adalah 62,5MHz, dan karena PIO state machine menyuplai clock ini, clock display harus merupakan kelipatan bulat dari clock sistem
Menjalankan PalmOS dan firmware
- Hardware DEFCON 32 badge yang sama juga bisa menjalankan full version PalmOS melalui rePalm project
- Badge dasarnya tidak dipasangi PSRAM, tetapi PalmOS tetap berjalan
- memorinya ketat, tetapi infrared beaming, SD card, game sederhana, memo pad, audio, dan lainnya berfungsi
- Jika chip PSRAM AP Memory 64Mbit dipasang, image kedua bisa digunakan, dan dengan memori lebih besar dimungkinkan memuat game atau pemutaran MP4 real-time melalui TCPMP
- Image firmware tersedia di dokumen, dan dimuat dengan menaruhnya di SD card dengan nama
FIRMWARE.BINlalu memilihfirmware updatedari menu tombolFN - Pemulihan stock firmware dapat dilakukan di komputer mana pun melalui USB dan UF2 protocol, dan stock image juga bisa diunduh dari dokumen yang sama
RP2354 dan GPIO yang lebih banyak
- Kesimpulannya, proyek STM32H7 kini bisa direncanakan ulang dengan RP2350
- Menanggapi catatan bahwa RP2350 memerlukan SPI flash eksternal, ada varian dengan built-in flash yaitu RP2354A dan RP2354B
- RP2354A/RP2354B mencakup flash 2MB in-package
- Pinout-nya sama dengan RP2350A/B
- Ada juga varian paket 80 pin yang menyediakan GPIO lebih banyak
Pengungkapan kepentingan
- Tidak menerima kompensasi finansial atau imbalan apa pun untuk tulisan ini
- Tidak diminta menulisnya, dan tidak menerima persetujuan apa pun
- Akses awal RP2350 tidak disertai syarat untuk berbicara positif di depan umum atau membuat pernyataan tertentu
1 komentar
Komentar Hacker News
Selama beberapa tahun terakhir saya mengembangkan driver motor brushless berbasis RP2040, dan pengumuman kali ini benar-benar membuat saya antusias
Modul driver ini dapat menangani hingga 53V, arus kontinu 30A, dan puncak 50A. Baru-baru ini saya memisahkan driver menjadi modul tersendiri; ini berguna untuk robot pertanian dan juga penting untuk menguji driver saat memperbaiki desain. Revisi kali ini terlihat cukup stabil, jadi tidak lama lagi mungkin saya bisa membuat driver 1 motor terintegrasi satu papan berbiaya rendah dengan RP2350. Pada RP2040, kecepatan loop-nya 8kHz dan itu cukup untuk motor penggerak robot pertanian besar, tetapi di antara driver berkinerja tinggi yang memakai floating point ada juga yang mencapai kecepatan loop 50kHz
Board ini menjalankan SimpleFOC, dan di forum sempat ada pembicaraan untuk membuat desain flagship. Namun karena diperlukan kontrol sensorless dan dukungan floating point, dengan varian pinout besar baru RP2350 yang memiliki 8 pin ADC, kita bisa mengukur 3 sinyal arus dan 3 tegangan bridge untuk membuat driver sensorless yang cukup baik. Mungkin butuh beberapa bulan sampai desainnya siap, tetapi untuk kabar terbaru bisa melihat repositori Git atau profil Twitter
https://github.com/tlalexander/rp2040-motor-controller
https://twitter.com/TLAlexander
Saya benar-benar suka bahwa bagian kaki dan rodanya memakai komponen sepeda
Sudah ada MCU khusus yang punya periferal khusus, application note, dan contoh kode untuk kontrol BLDC dengan sensor/sensorless, dan menurut saya RP2040 bukan chip yang diperlengkapi dengan baik untuk pekerjaan ini
Ini mengingatkan saya pada masa kecil ketika saya membongkar mobil mainan dan mengeluarkan motornya, lalu merasa seperti berhasil melakukan sesuatu
Sulit bagi saya membayangkan memakai RP2040 dalam produk sungguhan, tetapi RP2350 memperbaiki banyak keluhan sehingga saya cukup antusias untuk mencobanya
RP2040 juga punya banyak kelebihan. TBMAN adalah konsep yang keren, dan overclock-nya juga luar biasa bagus. PIO benar-benar inovatif dan sangat bernilai bagi banyak perusahaan yang ingin mengganti tipe 8051 dengan core Arm berbentuk daughterboard
Namun untuk setiap hal yang keren, ada juga hal yang disayangkan. Kecepatan clock-nya setingkat DSP, tetapi tidak ada FPU maupun pembagian bilangan bulat hardware. Pada MCU tanpa proteksi memori, keberadaan fungsi USB DFU di boot ROM juga bukan hal yang diinginkan. Di SDK pihak ketiga seperti Zephyr, dukungan PIO sangat terbatas, sehingga kegunaannya dalam proyek besar menjadi rendah
RP2350 menyelesaikan hampir semua keluhan ini, jadi saya sangat menantikannya. Namun jika harus mengimplementasikan periferal umum seperti CAN atau SDMMC dengan PIO, posisinya langsung menjadi kurang menguntungkan. Fleksibilitasnya luar biasa, tetapi saat harus segera menjalankan produk, saya tidak ingin berkutat dengan bahasa assembly tujuan khusus. Pada akhirnya, jika disediakan library soft peripheral siap pakai untuk fungsi umum seperti SD/MMC, MII, dan Bluetooth HCI, integrasi dengan Zephyr dan lainnya akan lebih mudah, dan cakupan pemanfaatan chip ini juga akan jauh lebih luas
Tingkat penyelesaiannya masih bisa dibuat lebih tinggi, tetapi sudah cukup dekat dengan bentuk “siap pakai”
PIO adalah keunggulan besar, dan saya senang versi baru makin memperkuat arah itu. Orang-orang sudah mengembangkan driver PIO untuk berbagai periferal seperti CAN dan WS2812, jadi ini mendekati apa yang saya harapkan
Operasi periferal otonom, op-amp, komparator, serta timer capture/compare juga serupa. Zephyr mencoba menyediakan antarmuka umum seperti sistem operasi desktop, tetapi itu kurang cocok untuk embedded. Di desktop, penyebut umum terendah sering kali sudah cukup, tetapi di embedded justru fitur yang tidak umum itulah yang sering menjadi alasan memilih sebuah platform
Alasan memilih RP2040 memang mencakup filosofi desainnya, tetapi setelah krisis kekurangan chip, faktor kemudahan pasokan juga besar
Kenyataannya ada “contoh”, dan akan lebih baik jika hal-hal seperti itu disediakan sebagai dukungan kelas satu
Spesifikasinya bisa dilihat di sini: https://www.digikey.ca/en/product-highlight/r/raspberry-pi/r...
Berbasis RP2350 yang dirancang Raspberry Pi di Inggris, dual Arm M33 150MHz dengan FPU, SRAM 520KiB, fitur keamanan seperti signed boot, OTP, SHA-256, TRNG, detektor glitch, dan Arm TrustZone for Cortex-M, CPU dual RISC-V Hazard3 150MHz opsional, operasi berdaya rendah, 3 PIO v2 dan 12 state machine untuk dukungan periferal kustom, dukungan PSRAM, antarmuka flash XIP QSPI eksternal yang lebih cepat, flash QSPI onboard 4MB, GPIO toleran 5V, dukungan SDK C/C++ open-source dan MicroPython, kompatibilitas software Pico 1/RP2040, pemrograman drag-and-drop lewat perangkat penyimpanan massal USB, modul kastelasi yang bisa disolder langsung ke carrier board, footprint yang sama dan kompatibilitas pin dengan Pico 1, 26 GPIO multifungsi termasuk 3 input analog, suhu operasi -20°C~+85°C, tegangan input 1,8VDC~5,5VDC
Belakangan saya lihat di bagian 14.8.2.1 ada dua jenis pin digital, “Standard Digital” dan “Fault Tolerant Digital”, dan pin FT Digital tampaknya toleran 5V
Ini hari besar bagi tim Pigweed
Beberapa pekerjaan mereka memang disebut dalam pengumuman utama RP2350/Pico 2 [1], tetapi selama beberapa bulan terakhir mereka mengerjakan SDK end-to-end baru [2] yang dibangun di atas Bazel [3] dan mendukung RP2040 maupun RP2350. Ini juga mencakup pekerjaan upstream dukungan Bazel ke Pico SDK. “Tour of Pigweed” [4] yang baru menunjukkan berbagai fitur Pigweed—seperti build hermetic, unit test di perangkat, komunikasi berpusat RPC, dan factory test di meja—berjalan bersama dalam satu codebase. Pertanyaan diterima di Discord [5]
[1] https://www.raspberrypi.com/news/raspberry-pi-pico-2-our-new...
[2] https://opensource.googleblog.com/2024/08/introducing-pigwee...
[3] https://blog.bazel.build/2024/08/08/bazel-for-embedded.html
[4] https://pigweed.dev/docs/showcases/sense/
[5] https://discord.gg/M9NSeTA
Melihat semuanya terintegrasi secara hermetic dan workflow dirapikan menjadi satu perintah Bazel membuat perbedaan besar
Agak mengejutkan karena pengumuman Pigweed sama sekali tidak menyebutnya
Semoga Java dikeluarkan dari ekosistem mikrokontroler
Ini pertama kalinya saya melihat desain yang memungkinkan memilih antara core Arm dan core RISC-V pada die yang sama
Saya penasaran apakah itu akan berdampak pada harga dan konsumsi daya. Core Hazard3 bersifat opsional; saat boot, kita bisa memilih pasangan core Arm Cortex-M33 yang disertakan atau pasangan core Hazard3 untuk berjalan pada 150MHz. Lebih nekat lagi, bisa juga menjalankan satu RV dan satu Arm sekaligus
Hazard3 adalah desain open-source dan dokumentasinya terbuka. Ini mesin RV32IMACZb* ringan dengan eksekusi in-order 3 tahap, mendukung ISA RISC-V dasar 32-bit plus perkalian/pembagian hardware, instruksi atomik, manipulasi bit, dan lainnya
Eben Upton menjelaskan, “Bisa dipilih saat boot. Tiap port yang masuk ke bus fabric bisa dihubungkan lewat mux ke salah satu dari M33 atau Hazard3. Kalau mau bertingkah seperti geek, Anda bahkan bisa menjalankan masing-masing satu”
Sumber: https://www.theregister.com/2024/08/08/pi_pico_2_risc_v/
Area yang ditempati core instruksi sebenarnya biasanya cukup kecil dibanding periferal atau memori internal
Dengan biaya jauh lebih rendah daripada tape-out chip terpisah baru, mereka bisa memverifikasi aspek teknis sekaligus penerimaan pasar
Sangat keren bahwa jika mau, kita bisa memilih RISC-V yang sepenuhnya open-source. Core RV sepertinya akan lebih lambat daripada M33 dalam performa per clock, dan saya memperkirakan skor benchmark M33 akan lebih baik. Itu karena Hazard3 punya pipeline 3 tahap, walau M33 juga 3 tahap. Tidak sabar menunggu benchmark-nya
Artikel berita resmi: https://news.ycombinator.com/item?id=41192341
Halaman produk resmi: https://news.ycombinator.com/item?id=41192269
Doom sudah di-porting ke RP2040: https://kilograham.github.io/rp2040-doom/
RP2350 tampaknya juga bisa menjalankan Quake. Beberapa perubahannya bahkan terasa seperti dirancang hampir khusus untuk tujuan ini. Ada FPU, dual-core 150MHz, kemungkinan overclock hingga di atas 300MHz, serta dukungan PSRAM hingga 16MB dengan paging baca/tulis hardware
Kurang bagus kalau development board-nya memakai micro-USB. Padahal sudah 2024
Selain itu produknya sangat bagus, dan persis seperti yang dibutuhkan untuk bersaing dengan para pemain besar yang sudah mapan
Memang bagus kalau semua produk modern memakai USB-C, tetapi kabel micro-USB juga masih banyak tersisa, jadi Pico dan Pico 2 resmi yang memakai micro-USB tidak terlalu merepotkan. Bagus jika ada pilihan untuk memilih port yang sesuai dengan proyek
Chip antarmukanya juga harus lebih kompleks, sehingga kemungkinan lebih mahal. Di AliExpress masih banyak perangkat murah yang memakai micro-USB, dan permintaannya mungkin masih ada. Bergantung pada segmen pelanggan, development board itu sendiri bisa saja dijadikan produk konsumen
Agak mengejutkan bahwa mikrokontroler kedua dari perusahaan muda yang tampak berorientasi konsumen ini memasukkan begitu banyak unsur keamanan
Awalnya saya merasa sulit mempercayai keamanannya karena kurangnya pengalaman. Namun mikrokontroler aman dari vendor yang “berpengalaman” pun punya banyak bug keamanan yang diketahui, dan yang lebih penting, pernah terlihat mencoba menutupi masalah semacam itu. Mendapatkan audit arsitektur keamanan dua kali, menawarkan bug bounty 10 ribu dolar, dan merancang board untuk glitching seperti badge DEF CON menunjukkan komitmen yang cukup besar terhadap keamanan. Saya juga penasaran bagaimana Redundancy Coprocessor bekerja. Meski begitu, tidak akan mengejutkan kalau seseorang bisa membobol setidaknya sebagian darinya
Maksudnya, dari sisi persepsi mereka tampak berorientasi konsumen, sementara dari sudut penjualan dan pasokan, mereka tampaknya memprioritaskan pengguna industri
Saya belum menemukan pengumuman resmi atau datasheet-nya, tetapi menurut tulisan ini, tampaknya ini lompatan besar dibanding RP2040
Sepertinya ada 2× Cortex-M33F, DMA yang ditingkatkan, PIO yang lebih banyak dan lebih baik, dukungan PSRAM eksternal, flash internal 2MB dan varian 80 pin, RAM 512KiB yang berarti naik dua kali lipat, serta beberapa core RISC-V. Mungkin untuk konsumsi daya rendah