Penyimpanan data merupakan bagian penting dalam pengembangan sistem embedded. Salah satu cara yang umum digunakan adalah dengan menggunakan SD Card. Pada artikel ini, kita akan membahas tentang bagaimana cara menyimpan data menggunakan SD Card modul yang dihubungkan dengan board STM32. Kita akan membahas komponen yang dibutuhkan, langkah-langkah implementasi, dan contoh kode untuk mewujudkannya.
1. Apa itu SD Card?
SD Card (Secure Digital Card) adalah jenis media penyimpanan yang kecil dan portabel, sering digunakan dalam berbagai perangkat elektronik seperti kamera, smartphone, dan sistem embedded. SD Card menawarkan kapasitas penyimpanan yang besar, transfer data yang cepat, serta kemampuan untuk di-remove dan digunakan di perangkat lain.
Jenis-jenis SD Card
- SD (Secure Digital): Kapasitas maksimum 2GB.
- SDHC (Secure Digital High Capacity): Kapasitas dari 2GB hingga 32GB.
- SDXC (Secure Digital Extended Capacity): Kapasitas lebih dari 32GB sampai 2TB.
2. Mengapa Menggunakan STM32?
STM32 adalah keluarga mikrokontroler 32-bit yang dikembangkan oleh STMicroelectronics. Keunggulan STM32 adalah performa tinggi, efisiensi daya, dan berbagai fitur yang mendukung komunikasi serta antarmuka yang kaya. Hal ini menjadikannya pilihan populer untuk banyak aplikasi embedded, termasuk penyimpanan data.
3. Komponen yang Diperlukan
Untuk membangun sistem penyimpanan data menggunakan SD Card dan STM32, Anda akan membutuhkan beberapa komponen, di antaranya:
- Board STM32: Misalnya STM32F103C8T6 (Blue Pill).
- SD Card Modul: Modul ini biasanya sudah dilengkapi dengan slot untuk SD Card.
- Kabel Jumper: Untuk membuat koneksi antar modul dan board.
- PC atau Laptop: Untuk memprogram STM32.
- Software: STM32CubeIDE atau Arduino IDE (tergantung pada development environment yang Anda pilih).
4. Schematic Koneksi
Berikut adalah schematic sederhana untuk koneksi antara STM32 dan SD Card modul:
STM32 | SD Card Modul
-----------|--------------
PA4 (SPI) | CS (Chip Select)
SPI1 SCK | SCLK
SPI1 MOSI | MOSI
SPI1 MISO | MISO
GND | GND
3.3V | VCC
Pastikan untuk memeriksa pinout spesifik dari board STM32 yang Anda gunakan agar semua koneksi dilakukan dengan benar.
5. Langkah-langkah Implementasi
5.1. Instalasi Library
Jika menggunakan STM32CubeIDE, Anda perlu menggunakan library FatFs untuk menangani sistem file di SD Card. Jika menggunakan Arduino IDE, Anda bisa menggunakan pustaka SD.h
yang sudah tersedia.
5.2. Konfigurasi IDE
Dalam STM32CubeIDE:
- Buat project baru untuk STM32.
- Konfigurasi pin SPI dan pin Chip Select.
- Aktifkan Periph SPI dan GPIO dari Peripheral settings.
5.3. Contoh Kode
Berikut adalah contoh kode sederhana untuk menyimpan dan membaca data dari SD Card menggunakan STM32 dengan fungsi FatFs. Pastikan Anda telah menginstal semua library yang diperlukan.
#include "ff.h" // Include FatFs header
#include "stm32f1xx_hal.h" // Include STM32 HAL header
FATFS FatFs; // File system object
FIL fil; // File object
FRESULT fr; // FatFs function result
UINT bw, br; // Bytes written & read
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_SPI1_Init(void);
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
// Mount filesystem
fr = f_mount(&FatFs, "", 1);
if (fr == FR_OK) {
// Write data to file
fr = f_open(&fil, "data.txt", FA_CREATE_ALWAYS | FA_WRITE);
if (fr == FR_OK) {
char *data = "Hello, SD Card!";
f_write(&fil, data, strlen(data), &bw);
f_close(&fil);
}
// Read data from file
fr = f_open(&fil, "data.txt", FA_READ);
if (fr == FR_OK) {
char buffer[20];
f_read(&fil, buffer, sizeof(buffer), &br);
f_close(&fil);
}
}
while (1) {
// Loop infinitely
}
}
5.4. Penjelasan Kode
- f_mount: Mengaitkan sistem file ke SD Card.
- f_open: Membuka file dengan mode yang dipilih. Anda bisa menggunakan mode
FA_CREATE_ALWAYS
untuk membuat file baru atauFA_READ
untuk membaca file. - f_write: Menulis data ke file yang dibuka.
- f_read: Membaca data dari file yang dibuka.
- f_close: Menutup file setelah selesai operasi.
6. Pengujian Sistem
Setelah kode diprogram ke dalam STM32, sambungkan SD Card ke modul dan pastikan semua koneksi benar. Setelah itu, Anda bisa menghidupkan board STM32 dan memeriksa file data.txt
di SD Card untuk memastikan bahwa data telah disimpan.
7. Kesimpulan
Penyimpanan data menggunakan SD Card modul dan STM32 merupakan solusi yang efektif untuk aplikasi embedded. Dengan penggunaan library seperti FatFs, Anda dapat dengan mudah menulis dan membaca data dari SD Card. Proyek ini tidak hanya meningkatkan pemahaman Anda tentang antarmuka SPI, tetapi juga mempersiapkan Anda untuk aplikasi yang lebih kompleks di masa mendatang.
Dengan penelitian lebih lanjut, Anda bisa mengembangkan sistem ini untuk menyimpan berbagai jenis data, dari sensor hingga data logging, atau bahkan untuk aplikasi multimedia. Selamat mencoba dan semoga berhasil!