Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Senin, 18 Agustus 2025

Penjelasan Penyimpanan Permanen di Flash Memory Raspberry Pi Pico

Raspberry Pi Pico adalah mikrokontroler berbasis RP2040 yang dilengkapi dengan flash memory internal untuk penyimpanan permanen. Tidak seperti komputer biasa yang menggunakan hard disk atau SSD, Pico menyimpan data dan firmware secara permanen di flash memory non-volatile, yang berarti data tidak hilang meskipun daya dimatikan. Artikel ini akan membahas secara mendalam tentang struktur flash memory, cara kerja penyimpanan, metode penyimpanan data, pemrograman flash memory, manajemen ruang penyimpanan dan optimasi serta keamanan data di flash memory. Selain itu, artikel ini ditujukan bagi pengembang embedded systems, mahasiswa teknik, dan hobbyist yang ingin memahami cara memanfaatkan penyimpanan permanen di Raspberry Pi Pico secara optimal.  

 


Struktur Flash Memory Raspberry Pi Pico

 

Raspberry Pi Pico memiliki 2MB flash memory SPI yang terhubung ke RP2040. Flash ini digunakan untuk menyimpan firmware (termasuk bootloader, program pengguna (file, .uf2 atau .bin) serta data konfigurasi dan penyimpanan permanen.

Partisi Flash Memory pada Raspberry Pi Pico

Flash sebesar 2MB dibagi menjadi beberapa area penting, antara lain:

1. Bootloader (sekitar ratusan KB)

- Bagian awal flash yang menyimpan UF2 bootloader bawaan.

- Bootloader ini memungkinkan Pico masuk ke USB Mass Storage Mode saat tombol BOOTSEL ditekan.

- Dari sini kita bisa mengunggah firmware baru (MicroPython, C/C++, CircuitPython, dll).

2. Program Space (~1.75 MB)

- Area utama tempat kode program disimpan.

- Setelah firmware dimuat, bagian ini berisi aplikasi user (misalnya skrip MicroPython).

- Ukurannya tergantung seberapa besar bootloader + file system yang dipakai.

3. Filesystem (opsional)

- Jika MicroPython digunakan, sebagian flash bisa dipartisi sebagai sistem file internal.

- Berguna untuk menyimpan:

    - Skrip Python tambahan (.py)

    - File teks atau konfigurasi

    - Data log hasil eksperimen

- Kapasitasnya menyesuaikan dengan ukuran program.

Karakteristik Teknis Flash Memory

Flash di Raspberry Pi Pico menggunakan NOR Flash dengan antarmuka QSPI (SPI cepat). Detailnya:

1. Tipe Memory: NOR Flash

Kelebihannya: cepat dibaca, cocok untuk kode program. Kekurangannya: lebih kecil kapasitas dibanding NAND.

2. Interface: Quad-SPI (QSPI)

Bisa membaca data dengan kecepatan tinggi, hingga 50 MHz clock speed.

3. Endurance: ±100.000 siklus tulis/hapus

Artinya, jangan terlalu sering menulis data secara intensif (misalnya logging cepat), karena umur flash bisa menurun.

4. Ukuran Blok: 4 KB per sektor

Flash bisa dihapus per sektor (4KB), bukan per byte.

Jadi, saat memperbarui data kecil, tetap ada proses hapus–tulis per blok.


Cara Kerja Penyimpanan Permanen di Pico

 

Karena Pico tidak memiliki EEPROM bawaan, penyimpanan permanen dilakukan dengan dua cara utama:  

- Emulasi EEPROM di flash memory

- Menggunakan Filesystem (LittleFS atau FAT)

1. Emulasi EEPROM di Flash Memory

EEPROM (Electrically Erasable Programmable Read-Only Memory) berguna untuk menyimpan data kecil seperti konfigurasi. Karena Pico tidak memiliki EEPROM fisik, kita bisa mengemulasikannya di flash memory.  

Implementasi di MicroPython

MicroPython menyediakan modul `machine` untuk mengakses emulated EEPROM:  


import uos


# Menulis file ke flash (sebagai pengganti EEPROM kecil)

with open("config.txt", "w") as f:

    f.write("Hello Pico")


# Membaca kembali

with open("config.txt", "r") as f:

    data = f.read()

    print(data)


Implementasi di C/C++

Di SDK Raspberry Pi Pico, kita bisa menggunakan Flash API untuk menulis data:  


#include "hardware/flash.h"  

const uint8_t data[] = "Hello Pico";  

uint32_t flash_offset = 0x100000;  // Alamat di flash (setelah program)  

flash_range_erase(flash_offset, FLASH_SECTOR_SIZE);  

flash_range_program(flash_offset, data, sizeof(data));  


2. Menggunakan Filesystem di Flash Memory

Jika membutuhkan penyimpanan file (seperti teks, CSV, atau konfigurasi), Pico mendukung filesystem FAT.  

FAT Filesystem di C/C++  

Untuk kompatibilitas dengan PC, FAT bisa digunakan:  


#include "pico/stdlib.h"  

#include "f_util.h"  

FIL file;  

f_open(&file, "config.txt", FA_WRITE | FA_CREATE_ALWAYS);  

f_puts("data=123", &file);  

f_close(&file);  


Manajemen Ruang Penyimpanan di Pico

 

Karena ukuran flash terbatas (2MB), penting untuk mengoptimalkan penggunaan memori.  

Tips Optimasi Penyimpanan  

1. Gunakan Kompresi Data – Untuk file teks atau JSON, gunakan kompresi seperti zlib.  

2. Hindari Penulisan Berulang – Flash memory memiliki batasan siklus tulis.  

3. Gunakan Buffer sebelum Menulis – Kumpulkan data sebelum menyimpan ke flash.  

4. Partisi Memory dengan Bijak – Pisahkan program, data, dan filesystem.  


Keamanan Data di Flash Memory  

 

Karena flash memory bisa mengalami korupsi, beberapa langkah keamanan yang bisa diambil:  

- Checksum Data – Gunakan CRC32 atau SHA-1 untuk memverifikasi data.  

- Wear Leveling – Distribusikan penulisan ke berbagai sektor untuk memperpanjang usia flash.  

- Backup Data – Simpan data penting di dua lokasi berbeda.  

Catatan: Wear levelling tidak otomatis ada di flash Raspberry Pi Pico, melainkan perlu diimplementasikan di tingkat software (filesystem seperti LittleFS sudah mendukung).

 

Kesimpulan:

Raspberry Pi Pico menyediakan flash memory yang handal untuk penyimpanan permanen. Dengan memahami struktur flash, metode penyimpanan (EEPROM emulasi & filesystem), dan teknik optimasi, pengguna dapat memaksimalkan penggunaan Pico untuk berbagai proyek IoT dan embedded systems.  

 

Baca juga: Konsep Penyimpanan Data Sementara di RAM Raspberry Pi Pico









Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?

Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami! 

 

0 on: "Penjelasan Penyimpanan Permanen di Flash Memory Raspberry Pi Pico"