Raspberry Pi Pico 2 (RP2350) Çift Mimari İncelemesi: Arm Cortex-M33 vs Hazard3 RISC-V

2021 yılında duyurulan ilk nesil Raspberry Pi Pico ve onun kalbinde yer alan RP2040 silikonu, mikrokontrolcü ekosisteminde adeta kartların yeniden dağıtılmasına yol açmıştı. 4 dolarlık fiyat etiketi, çift çekirdekli yapısı ve benzersiz Programlanabilir Giriş/Çıkış (PIO) bloklarıyla maker ve hobi elektroniği dünyasının en sevilen kartlarından biri oldu. Ancak aradan geçen yıllar içinde IoT projelerinin karmaşıklaşması; donanımsal matematik işlemcisi (FPU), daha geniş bellek, düşük güç modları ve kurumsal düzeyde siber güvenlik ihtiyacını beraberinde getirdi.

Raspberry Pi vakfı bu taleplere doğrudan kendi tasarımı olan yeni nesil RP2350 mikrodenetleyicisi ve Raspberry Pi Pico 2 kartı ile yanıt verdi. Daha önce tek kart bilgisayarlar (SBC) tarafında ele aldığımız Raspberry Pi Uzaktan İşletim Sistemi Yükleme rehberimizin yanı sıra, mikrodenetleyici dünyasında popülerleşen ESP32 Kurulumu tecrübemizin ışığında; bu yazıda RP2350’nin yarı iletken dünyasında çığır açan Arm Cortex-M33 ve Hazard3 RISC-V çift mimari yapısını, RP2040 ile farklarını ve MicroPython ile ilk kodlama adımlarını derinlemesine inceliyoruz.

Raspberry Pi Pico 2 RP2350 Geliştirme Kartı
Raspberry Pi Pico 2 Geliştirme Kartı ve RP2350 Silikon Mimarisi (Kaynak: The Pi Hut / Raspberry Pi)

RP2040 vs RP2350: Donanım ve Teknik Karşılaştırma Tablosu

Pico 2, orijinal Pico ile tam pin uyumluluğunu (drop-in replacement) korurken silikon seviyesinde muazzam bir donanım sıçraması sunmaktadır. İki nesil arasındaki temel teknik farklar aşağıdaki tabloda özetlenmiştir:

Donanım Özelliği Raspberry Pi Pico (RP2040) Raspberry Pi Pico 2 (RP2350)
İşlemci Çekirdekleri 2x Arm Cortex-M0+ @ 133 MHz 2x Arm Cortex-M33 VEYA 2x Hazard3 RISC-V @ 150 MHz
SRAM Bellek 264 KB 520 KB (10 bağımsız bank)
Dahili Flash Bellek 2 MB QSPI Flash 4 MB QSPI Flash
Kayan Nokta Birimi (FPU) Yok (Yazılımsal emülasyon) Donanımsal FPU (IEEE 754 tek duyarlıklı)
DSP Talimat Seti Yok Armv8-M DSP / SIMD desteği
PIO Durum Makineleri 2 blokta toplam 8 adet 3 blokta toplam 12 adet (Yeni talimatlarla)
Donanımsal Güvenlik Temel seviye Arm TrustZone, Secure Boot, SHA-256 motoru, OTP
Dahili Sıcaklık Sensörü Var (Temel hassasiyet) Var (Yüksek doğruluklu kalibre)
Çalışma Gerilimi 1.8V – 5.5V DC Giriş 1.8V – 5.5V DC Giriş (Daha verimli buck-boost regülatör)

Benzersiz Çift Mimari: Arm Cortex-M33 ve Hazard3 RISC-V Seçimi

RP2350’yi yarı iletken pazarında benzersiz kılan en radikal tasarım tercihi, kalıp üzerinde iki farklı çekirdek çiftine birden yer vermesidir. Kartın içerisinde toplam 4 adet fiziksel çekirdek bulunur:

  • 2x Arm Cortex-M33 Çekirdeği: Modern 32-bit Armv8-M mimarisine dayanır. Endüstride yaygın kullanılan CMSIS kütüphaneleri, Arm TrustZone güvenlik katmanı ve yüksek saat frekansında DSP talimatlarını doğrudan destekler.
  • 2x Hazard3 RISC-V Çekirdeği: Luke Wren (Raspberry Pi mühendisi) tarafından tasarlanan açık kaynaklı RISC-V (RV32IMACXpico) işlemci mimarisidir. Telif hakkı ücreti gerektirmeyen, tamamen şeffaf ve açık komut seti mimarisiyle geleceğin işlemci dünyasını temsil eder.

Geliştiriciler derleme aşamasında veya önyükleme sırasında istedikleri mimariyi seçebilirler. Her iki çekirdek ailesi de 520 KB paylaşımlı belleğe, çevre birimlerine (SPI, I2C, UART, PWM) ve PIO durum makinelerine eşit hızda erişir. Bu sayede aynı donanım üzerinde hem geleneksel Arm hem de yükselen yıldız RISC-V kodlarınızı kıyaslayabilirsiniz.

Donanımsal FPU ile Matematiksel İşlem Gücü

Eski RP2040 kullanan mühendislerin karşılaştığı en büyük kısıtlama, ondalıklı sayı (floating point) işlemlerinde işlemcinin saatlerce döngü harcamasıydı. RP2040’ta donanımsal FPU olmadığı için trigonometrik hesaplamalar, PID motor kontrolleri, dijital sinyal işleme (DSP) ve sensör filtreleme (Kalman filtresi vb.) tamamen yazılımsal kütüphanelerle yürütülüyordu.

RP2350’deki Cortex-M33 çekirdeklerine entegre donanımsal FPU (Floating Point Unit) sayesinde tek duyarlıklı kayan noktalı işlemler tek bir saat çevriminde yürütülür. Bu sıçrama, Pico 2’yi robotik kol kinematikleri, titreşim analizi, FFT frekans spektrumu çıkarımı ve yerel uç yapay zeka (TinyML) modelleri için mükemmel bir platform haline getirmektedir.

Genişletilmiş Programlanabilir Giriş/Çıkış (PIO) Blokları

Raspberry Pi silikonlarının imzası haline gelen PIO (Programmable I/O) teknolojisi, işlemci çekirdeklerine hiç yük bindirmeden özel donanım protokolleri oluşturmanızı sağlar. Pico 2 ile birlikte:

  • PIO blok sayısı 2’den 3’e çıkarılmıştır.
  • Toplam bağımsız durum makinesi (State Machine) sayısı 8’den 12’ye yükseltilmiştir.
  • Yeni talimat setleri ve FIFO tampon optimizasyonları sayesinde DVI/HDMI dijital video çıkışı, WS2812B adreslenebilir LED sürücüleri, Ethernet RMII arayüzleri ve CAN-Bus kontrolü çok daha kararlı hale gelmiştir.

Kurumsal Düzeyde Donanımsal Güvenlik ve TrustZone

RP2040 ticari ürünlerde kullanıldığında kod kopyalanmasına (reverse engineering) karşı savunmasızdı çünkü harici flash bellek şifresiz okunabiliyordu. RP2350 bu açığı kurumsal standartlarla kapatmıştır:

  • Arm TrustZone Mimarisi: Belleği ve çevre birimlerini Güvenli (Secure) ve Güvensiz (Non-secure) bölgelere ayırır. Kritik şifreleme anahtarları kullanıcı kodundan yalıtılır.
  • Güvenli Önyükleme (Secure Boot): Yalnızca üreticinin özel RSA/ECC anahtarıyla imzalanmış firmware dosyalarının çalışmasına izin verir.
  • 8 KB OTP (One-Time Programmable) Bellek: Geri döndürülemez şekilde yakılabilen donanımsal sigortalar ile güvenlik anahtarları saklanır.
  • Donanımsal SHA-256 Hızlandırıcı: Kriptografik doğrulama işlemlerini milisaniyeler içinde tamamlar.

MicroPython ile İlk Kurulum ve Başlangıç Kodu

Pico 2 üzerinde MicroPython ortamına geçiş yapmak, selefinde olduğu gibi saniyeler sürer:

  • Kart üzerindeki beyaz BOOTSEL butonuna basılı tutarak USB kablosunu bilgisayarınıza takın.
  • Bilgisayarınızda RP2350 etiketli taşınabilir bir sürücü belirecektir.
  • Resmi Raspberry Pi web sitesinden indirdiğiniz güncel rp2-pico-2-latest.uf2 dosyasını bu sürücünün içine sürükleyip bırakın. Cihaz kendini otomatik olarak yeniden başlatacaktır.
  • Thonny IDE’yi açın, sağ alt köşeden yorumlayıcı olarak MicroPython (Raspberry Pi Pico) seçeneğini belirleyin.

FPU ve Donanım Testi İçin Örnek MicroPython Kodu

Aşağıdaki başlangıç scripti; kartın dahili LED’ini yakıp söndürürken aynı zamanda FPU işlemcisini stres testine sokarak matematiksel işlem süresini milisaniye cinsinden ekrana basar:

import machine
import time
import math

# Pico 2 Dahili Kullanici LED Pini
led = machine.Pin("LED", machine.Pin.OUT)

print("--- Raspberry Pi Pico 2 (RP2350) Baslatildi ---")
print(f"Islemci Frekansi: {machine.freq() / 1_000_000:.1f} MHz")

# FPU ve Matematiksel Performans Kıyaslama Fonksiyonu
def fpu_benchmark(iterasyon=100_000):
    start_time = time.ticks_ms()
    toplam = 0.0
    for i in range(1, iterasyon + 1):
        # Trigonometrik ve logaritmik hesaplamalar doğrudan FPU uzerinde kosar
        toplam += math.sin(i) * math.cos(i) + math.sqrt(i)
    elapsed = time.ticks_diff(time.ticks_ms(), start_time)
    return elapsed, toplam

# Benchmark Testini Baslat
print("FPU Matematik Benchmark Testi Yurutuluyor (100.000 Dongu)...")
sure_ms, sonuc = fpu_benchmark()
print(f"Test Tamamlandi: {sure_ms} ms | Kontrol Degeri: {sonuc:.4f}")

# Basit LED Blinking Dongusu
print("LED Yanip Sonuyor. Durdurmak icin Ctrl+C basiniz.")
sayac = 0
while True:
    led.toggle()
    sayac += 1
    if sayac % 2 == 0:
        print(f"Kalp Atisi: {sayac // 2}. saniye")
    time.sleep(0.5)

Bu testi eski bir RP2040 kartıyla yan yana çalıştırdığınızda, Pico 2’nin kayan noktalı matematik hesaplamalarını yazılımsal emülasyona kıyasla katbekat daha kısa sürede tamamladığını doğrudan gözlemleyebilirsiniz.


Kaynaklar ve Referanslar

Bu makale hazırlanırken aşağıdaki kaynaklardan ve orijinal teknik dökümantasyonlardan faydalanılmıştır:

Yukarı Çık