Akses SD Card & FRAM Menggunakan MCS-51. Oleh: Tim IE

dokumen-dokumen yang mirip
Akses SD Card & FRAM Menggunakan AVR. Oleh: Tim IE

DT-AVR Application Note

DT-51 Application Note

DT-AVR Application Note

DT-AVR Application Note

DT-SENSE Application Note

GPS Starter Kit Application Note AN GPS - GPS Navigator. Oleh: Tim IE

DT-51 Application Note

DT-AVR Application Note

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

SureLink A. Gambar 1 Blok Diagram AN63

DT-51 Application Note

DT-51 Application Note

DT-AVR Application Note

DT-51 Application Note

DT-51 Application Note

AVR Application Note AN95 Wireless Chatting with PC

DT-BASIC Application Note

asic Application Note AN97 BASIC Chatting

DT-51 Application Note

DT-51 Application Note

DT-AVR Application Note

DT-BASIC Mini System. Gambar 1 Blok Diagram AN132

DT-51 Application Note

DT-51 Application Note

Mengenal SD Card & FAT16. Oleh: Tim IE

How2Use DT-51 AT89C51XXX BMS. Oleh: Tim IE. Gambar 1 Tata Letak DT-51 AT89C51XXX BMS

Gambar 1 Blok Diagram AN72. (a) (b) (c) Gambar 2 SPC Seven Segment (a), DT-51 Low Cost Micro System (b), dan DT-51 Low Cost Nano System (c)

DT-SENSE. UltraSonic Ranger (USR)

DT-SENSE Application Note AN168 Color Game. Gambar 1 Blok Diagram AN168

de KITS Application Note AN51 How 2 Use de KITS SPC Character LCD w/ PC

DT-BASIC Application Note

DT-AVR. Application Note AN213

DT-AVR Application Note

DT-SENSE. Temperature & Humidity Sensor

DT-SENSE. Humidity Sensor

DT-SENSE Application Note

DT-AVR. Application Note AN214

DT-AVR Application Note

DT-SENSE. Color Sensor

DT-SENSE Color Sensor Q uick S tart

DT-AVR Application Note. Gambar 1 Blok Diagram AN133

DT-SENSE. Barometric Pressure & Temperature Sensor

DT-AVR Application Note AN191 SMS Gateway dengan GSM STARTER KIT

a b c Gambar 1 DT-BASIC Nano System (a), DT-BASIC Micro System (b), DT-BASIC Mini System (c), de KITS Phone Interface ver 2.0 (d)

Starter Kit Application Note AN165 - Update Tampilan Character LCD Berbasis USB Flash Disk

DT-SENSE. Flame Detector

DT-I/O DT-I/O. Application Note AN171

PC-Link Application Note

DT-IO Application Note

DT-BASIC Application Note

DT-SENSE. IR Proximity Detector

DT-AVR Application Note

DT-AVR Application Note

BAB III PERANCANGAN SISTEM

DT-SENSE. Temperature Sensor

DT-I/O. DT-I/O Application Note

DT-AVR Application Note

SPC Application Note. SPC Blue-Link (J2) Tabel 1 Hubungan SPC Blue-Link Dengan Komputer

Programmer. Petunjuk Penggunaan

DT-AVR Application Note. AN186 Digital Compass

DT-51Application Note

DT-SENSE. UltraSonic and InfraRed Ranger (USIRR)

Apllication Note AN155 Mini Reklame pada Graphic LCD 320 x 240

EMS Application Note. 1x Kabel USB 1x Komputer (Memiliki wireless adapter, serta wireless network melalui router atau program Connectify)

DT-AVR Application Note

DHT11 Temperature and Humidity Sensor Board Gambar 1 Blok Diagram AN196. 5V (Power) GND (Power)

Application Note. Adapun blok diagram secara keseluruhan adalah sebagai berikut: AN156 Touch Screen Panel Graphic LCD 320 x 240

a b c Gambar 1 DT-BASIC Nano System (a), DT-BASIC Micro System (b), DT-BASIC Mini System (c), de KITS SPC Seven Segment Display (d)

PC-Link Application Note

SPC SPC. SPC Application Note AN175 Bluetooth Mobile Robot. Application Note AN175

DT-AVR Application Note Monitoring Suhu Nirkabel (Bahasa BASIC)

DT-I/O DT-I/O. Application Note. Application Note AN193

DT-BASIC Application Note

AT89 USB ISP Trademarks & Copyright

DT-AVR. Gambar 1 Blok Diagram AN177

DT-AVR Low Cost Micro System. Gambar 1 Blok Diagram AN154. RXD (J13 Pin 3) TXD (J8 Pin 4) GND (J10/J11/J12/J13 Pin 1) GND (J7/J8 Pin 1)

DT-SENSE Application Note

Smart Peripheral Controller Low Cost Serial LCD/OLED

BAB III DESKRIPSI DAN PERANCANGAN SISTEM

AVR-51 USB ISP Trademarks & Copyright

PC-Link Application Note

SPC Application Note. SPC IR Transceiver. Gambar 1 Blok Diagram AN159. RX (PORTD.0 J13 pin3 / J4 pin2)

BAB III PERANCANGAN ALAT

DT-I/O. Application Note AN211. Komunikasi data saat ini terus dikembangkan dan diimplementasikan di dalam setiap bidang, seperti proses

AVR Application Note AN187 Monitoring Suhu Nirkabel (Bahasa C)

AVR USB ISP Trademarks & Copyright

Application Note. Oleh: Tim Digiware dan Hadid T.B. - Sihmanto - Idam F.R. (Institut Teknologi Sepuluh Nopember)

DT-SENSE. Photoreflector

Trademarks & Copyright

DT-51 Application Note

BAB IV IMPLEMENTASI DAN EVALUASI

BAB III METODE PENELITIAN. oleh karenanya akan dibuat seperti pada Gambar 3.1.

PC-Link. Gambar 1 Blok Diagram AN201. AGND (J3 pin 1) Pin 1 VCC (J3 pin 2) Pin 3 Dapat dipilih salah satu dari A0 s.d. A7 (J3 pin 3 s.d.

BAB III METODE PENELITIAN. Penelitian ini dilakukan pada bulan Maret 2015 sampai dengan Agustus

1 Pendahuluan Spesifikasi Sistem yang Dianjurkan... 3

DT-I/O. I/O Application Notes AN164 Komunikasi Jarak Jauh antara 2 PC dengan RS-485. Application Note AN164

DT-AVR. DT-AVR Application Note AN207 Library USB Controller untuk Komunikasi Serial pada DT-AVR Inoduino

Programmer. Petunjuk Penggunaan

PC-Link. 1x Komputer / Laptop dengan OS Windows 2000, Windows XP atau yang lebih tinggi. Gambar 1 Blok Diagram AN200

Transkripsi:

EMS SD/MMC/FRAM Application te Akses SD Card & FRAM Menggunakan MCS-51 Oleh: Tim IE Secure Digital (SD) atau MultiMedia Card (MMC) seringkali digunakan sebagai sarana penyimpan data pada Personal Digital Assistant (PDA), kamera digital, dan telepon seluler (ponsel). AN ini akan menggunakan EMS SD/MMC/FRAM sebagai sarana penyimpanan data dengan menggunakan SD card dan FRAM yang tersedia. Aplikasi in terdiri dari 3 program: 1. DT-51 Low Cost Micro System / Low Cost Nano System membaca parameter format data SD Card lalu mengirimkannya secara UART ke komputer. 2. Berdasar parameter yang sudah dibaca dan sudah dimasukkan ke program, DT-51 Low Cost Micro System / Low Cost Nano System akan menulis sebuah file beserta isinya ke dalam SD Card. 3. DT-51 Low Cost Micro System / Low Cost Nano System menulis data ke FRAM lalu membacanya dan mengirimkannya secara UART ke komputer. Bahasa pemrograman yang digunakan adalah bahasa BASIC (BASCOM-8051 ). Modul yang diperlukan: - 1 DT-51 Low Cost Micro System / Low Cost Nano System, - 1 EMS SD/MMC/FRAM, - 1 SD Card dengan format FAT16 (umumnya berkapasitas antara 32 MB hingga 2 GB) Pastikan SD card yang digunakan tidak menyimpan data penting atau terproteksi karena program pada AN ini akan menghapus/merusak isi sebelumnya. Adapun blok diagram sistem secara keseluruhan adalah sebagai berikut: EMS SD/MMC/FRAM DT-51 Low Cost Micro System / Low Cost Nano System Komputer Gambar 1 Blok Diagram Hubungan antara modul-modul tersebut terdapat pada tabel berikut: DT-51 Low Cost Micro System / Low Cost Nano System Port 1 EMS SD/MMC/FRAM J2 GND (pin 1) GND (pin 1) VCC (pin 2) VCC (pin 2) P1.0 (pin 3)* SCL (pin 3) P1.1 (pin 4)* SDA (pin 4) P1.2 (pin 5)* CD (pin 5) P1.3 (pin 6)* WP (pin 6) P1.4 (pin 7)* CSSD (pin 7) P1.5 (pin 8)* MOSI (pin 8) P1.6 (pin 9)* MISO (pin 9) P1.7 (pin 10)* SCK (pin 10) * Pin ini tidak mutlak dan dapat diganti pin lain tetapi harus mengubah program Tabel 1 Hubungan DT-51 Low Cost Micro System / Low Cost Nano System dengan EMS SD/MMC/FRAM Jumper J8 & J9 (DT-51 Low Cost Micro System) atau jumper J3 & J4 (DT-51 Low Cost Nano System) perlu diatur agar P3.0 dan P3.1 terhubung ke rangkaian UART RS-232 (posisi 1-2). Hubungkan DT-51 Low Cost Series ke komputer menggunakan kabel serial yang tersedia. Pada komputer, gunakan program Terminal pada BASCOM-8051, HyperTerminal, Terminal, atau program terminal lainnya dengan baud rate 9600, 8 bit data, 1 Page 1 of 7

bit stop, tanpa bit parity, dan tanpa flow control. Khusus DT-51 Low Cost Nano System, jumper J8 perlu dipasang untuk memberi resistor pull-up pada P1.0 dan P1.1. Setelah semua rangkaian dan catu daya terhubung dengan benar, programlah MCSread.HEX ke DT-51 Low Cost Series menggunakan DT-HiQ AT89S In System Programmer atau divais programmer lain yang mendukung. Jika pemrograman ISP terganggu, coba lepas SD Card atau lepas modul EMS SD/MMC/FRAM atau ubah program dan pindahkan koneksi ke port lain. Flowchart dari program MCSread.BAS adalah sebagai berikut: Start Deklarasi variabel Konfigurasi port serial Baca Master Boot Record alamat 454 sebanyak 4 byte Tampilkan Insert card Baca Boot Sector alamat 11 sebanyak 8 byte CD=0? Hitung & Tampilkan alamat FAT Region Baca Boot Sector alamat 22 sebanyak 2 byte Hitung & Tampilkan alamat Root Directory Kirim perintah RESET Hitung & Tampilkan alamat Data Region Kirim perintah INIT Hitung & Tampilkan jumlah Sector per Cluster Baca Boot Sector alamat 19 sebanyak 2 byte Baca Boot Sector alamat 32 sebanyak 4 byte Byte 1 dan byte 2 = 0? Hitung & Tampilkan tipe FAT Baca Boot Sector alamat 11 sebanyak 2 byte Hitung & Tampilkan kapasitas SD card CD=1? Gambar 2 Flowchart Program MCSread.BAS Page 2 of 7

Cara kerja program secara garis besar adalah sebagai berikut: 1. Pertama program melakukan deklarasi variabel yang akan digunakan untuk menampung data dan parameter yang berhubungan dengan SD card. Program juga melakukan konfigurasi port serial pada baud rate 9600, 8 bit data, 1 bit stop, tanpa bit parity, dan tanpa flow control. 2. Program mengirimkan Insert card ke komputer lalu menunggu adanya kartu yang dimasukkan ke slot. 3. Setelah ada kartu yang dimasukkan ke slot (CD=0), program akan menunda 1 detik sebelum mengakses kartu. Hal ini bertujuan untuk memastikan bahwa kartu sudah tepat berada di tempatnya saat akan diakses. Nilai waktu 1 detik ini dapat diubah atau dihilangkan jika dirasa tidak diperlukan. 4. Langkah awal sebelum mengakses SD card untuk pertama kalinya adalah mengirimkan perintah Reset dan Init ke SD card. 5. Karena SD card yang digunakan memiliki format FAT16, maka parameter yang harus dibaca disesuaikan dengan format FAT16. Yang pertama harus dilakukan adalah membaca Master Boot Record (berada di sektor 0) agar lokasi Boot Sector dapat diketahui. 6. Lalu Boot Sector dibaca pada alamat-alamat tertentu sehingga didapat parameter antara lain: alamat FAT Region, alamat Root Directory, alamat Data Region, jumlah sector per cluster, tipe FAT, dan kapasitas SD card. 7. Program menunggu kartu dikeluarkan (CD=1). 8. Berikut ini tampilan yang muncul pada program terminal: Insert card Init - OK FATregion: 59 RootDir: 81 DataRegion: 113 SectorCluster: 8 Type: FAT16 Size (MB): 30 9. Setelah kartu dikeluarkan, program kembali ke langkah nomor 2. Setelah program MCSread berjalan normal dan menampilkan parameter seperti pada langkah 8, maka sesuaikan program MCSwrite dengan parameter tersebut. Contoh setelah baris program untuk deklarasi konstanta pada MCSwrite.BAS diganti: Const Fatregion = 59 Const Rootdir = 81 Const Dataregion = 113 Const Sectorcluster = 8 Const Fattype = 16 Periksa dan pastikan bahwa nilai yang dituliskan sama dengan nilai yang telah dibaca oleh program MCSread. Kesalahan atau perbedaan nilai dapat mengakibatkan format FAT16 pada SD card kacau dan tidak dapat diakses oleh card reader, kamera digital, PDA, dsb. Setelah itu lakukan compile terhadap MCSwrite.BAS dan program ke DT-51 Low Cost Series. Page 3 of 7

Flowchart dari program MCSwrite.BAS adalah sebagai berikut: Start Deklarasi variabel Konfigurasi port serial Kirim perintah RESET Tampilkan Insert card CD=0? Kirim perintah INIT Tulis FAT Table pada FAT Region alamat 0 sebanyak 8 byte Tulis File Name pada Root Directory alamat 0 sebanyak 27 byte WP=0 dan FATtype=16? Tampilkan Card is read only Baca Root Directory alamat 26 sebanyak 6 byte Hitung posisi sector awal untuk posisi file Tulis 32 karakter ke posisi sector awal alamat 0 Tampilkan Eject card Baca Root Directory alamat 0 sebanyak 32 byte CD=1? Tulis File Size pada Root Directory alamat 0 sebanyak 32 byte Tampilkan Write complete Gambar 3 Flowchart Program MCSwrite.BAS Cara kerja program secara garis besar adalah sebagai berikut: 1. Pertama program melakukan deklarasi variabel yang akan digunakan untuk menampung data dan parameter yang berhubungan dengan SD card. Program juga melakukan konfigurasi port serial pada baud rate 9600, 8 bit data, 1 bit stop, tanpa bit parity, dan tanpa flow control. 2. Program mengirimkan Insert card ke komputer lalu menunggu adanya kartu yang dimasukkan ke slot (CD=0). 3. Jika kartu yang dimasukkan ke slot dalam posisi terkunci (WP=1), maka program akan menampilkan Card is read only dan Eject card lalu program menunggu SD card dikeluarkan (CD=1). Setelah SD card dikeluarkan, program kembali ke langkah nomor 2. 4. Jika kartu yang dimasukkan tidak terkunci dan tipe FAT yang dimasukkan adalah FAT16, program akan menunda 1 detik sebelum mengakses kartu. Hal ini bertujuan untuk memastikan bahwa kartu sudah tepat berada di tempatnya saat akan diakses. Nilai waktu 1 detik ini dapat diubah atau dihilangkan jika dirasa tidak diperlukan. 5. Langkah awal sebelum mengakses SD card untuk pertama kalinya adalah mengirimkan perintah Reset dan Init ke SD card. 6. Karena SD card yang digunakan memiliki format FAT16, maka proses menulis file harus disesuaikan dengan format FAT16. Program akan menulis tabel FAT pada FAT Region. 7. Program akan menulis Nama File pada Root Directory. Page 4 of 7

8. Root Directory akan dibaca untuk mengetahui posisi sector awal untuk file. 9. Isi file sebanyak 32 karakter dituliskan ke posisi sector awal mulai alamat 0. 10. Root Directory dibaca mulai alamat 0 sebanyak 32 byte. 11. Parameter ukuran file diubah lalu dituliskan kembali ke Root Directory mulai alamat 0 sebanyak 32 byte. 12. Program menampilkan pesan Write Complete lalu Eject Card dan menunggu kartu dikeluarkan. 13. Berikut ini tampilan yang muncul pada program terminal jika SD card tidak terkunci dan proses penulisan berhasil: Insert card Reset - OK Init - OK Writing: FAT Table... File Name... File Contents... File Size... Write complete Eject card 14. Setelah kartu dikeluarkan, program kembali ke langkah nomor 2. Setelah proses tulis selesai, maka SD card dapat dilepas lalu dibaca pada komputer menggunakan card reader atau pada PDA. Di dalamnya akan terdapat 1 file bernama TESTINGS.TXT sebesar 32 byte yang berisi: 123456789:;<=>?@ABCDEFGHIJKLMNOP Akses ke SD card membutuhkan buffer sebanyak 512 byte. Karena keterbatasan RAM pada AT89S2051 dan AT89S51, terpaksa proses baca dan tulis dibatasi hanya 32 byte sehingga proses menjadi lebih rumit dan beberapa fitur harus dihilangkan. Caranya antara lain dengan hanya membaca/menulis alamat tertentu sebanyak byte tertentu, misalnya hanya mampu menulis File Name tapi tidak mampu menulis Card Name atau hanya membaca Boot Sector alamat tertentu pada satu saat sehingga harus membaca berulang-ulang dengan alamat yang berbeda. Untuk itu, FRAM pada EMS SD/MMC/FRAM dapat digunakan sebagai buffer. Karena BASCOM-8051 versi demo membatasi ukuran program 4 KB, maka contoh program untuk akses FRAM diletakkan pada program terpisah. Contoh penggunaan FRAM sebagai buffer dalam akses SD card terdapat pada AN SD Card Module - AVR Flowchart dari program FRAM.BAS adalah sebagai berikut: Start Deklarasi variabel Konfigurasi port serial Isi variabel EE dengan kode ASCII Testing FRAM FMwrite page 5 Isi variabel EE dengan 0 FMread page 5 Kirimkan isi variabel EE yang sudah diubah menjadi karakter ke komputer End Gambar 4 Flowchart Program FRAM.BAS Page 5 of 7

FMwrite FMread Slave address (slad) = ((Page and 07h) * 2) + A0h Slave address (slad) = ((Page and 07h) * 2) + A0h Kirim kondisi Start I2C Kirim kondisi Start I2C Kirim Slave Address (slad) Kirim Slave Address (slad) Kirim alamat byte 0 Kirim alamat byte 0 Kirim variabel EE Slave address (slad) = slad or 01h Kirim kondisi Stop I2C Kirim kondisi Start I2C Return Kirim Slave Address (slad) Baca I2C dan masukkan ke variabel EE Kirim kondisi Stop I2C Return Gambar 5 Flowchart Rutin FMread dan FMwrite Cara kerja program secara garis besar adalah sebagai berikut: 1. Pertama program melakukan deklarasi variabel yang akan digunakan untuk menampung data dari/ke FRAM. Program juga melakukan konfigurasi port serial pada baud rate 9600, 8 bit data, 1 bit stop, tanpa bit parity, dan tanpa flow control. 2. Program mengisi variabel EE dengan string Testing FRAM. Pada listing program, variabel string ini harus diubah dulu ke kode ASCII agar dapat dimasukkan ke variabel EE. 3. Program akan menuliskan variabel EE ke dalam FRAM pada page 5 mulai alamat 0. 4. Semua isi variabel EE ditulis dengan 0. 5. FRAM page 5 dibaca lalu hasil pembacaan dimasukkan ke variabel EE. 6. Isi variabel EE diubah menjadi karakter lalu dikirimkan ke komputer. 7. Berikut ini tampilan yang muncul pada program terminal jika proses penulisan berhasil: Testing FRAM Cara kerja rutin FMwrite adalah sebagai berikut: 1. Pertama rutin akan menghitung alamat slave sesuai dengan parameter page (pager) yang diberikan saat memanggil rutin. 2. Lalu rutin akan mengirim kondisi Start I2C yang diikuti dengan alamat slave yang telah dihitung. 3. Rutin selalu menulis mulai dari alamat 0 untuk tiap page sehingga data yang dikirim berikutnya adalah 0. 4. Semua isi variabel EE sebanyak 16 byte dituliskan ke FRAM. 5. Setelah semua data terkirim, rutin mengakhiri dengan mengirim kondisi Stop I2C. Page 6 of 7

Cara kerja rutin FMread adalah sebagai berikut: 1. Pertama rutin akan menghitung alamat slave sesuai dengan parameter page (pager) yang diberikan saat memanggil rutin. 2. Lalu rutin akan mengirim kondisi Start I2C yang diikuti dengan alamat slave yang telah dihitung. 3. Rutin selalu membaca mulai dari alamat 0 untuk tiap page sehingga data yang dikirim berikutnya adalah 0. 4. Lalu kondisi Start I2C akan dikirim yang diikuti dengan alamat slave untuk proses baca (bit 0 = 1). 5. Data sebanyak 16 byte pada page FRAM tersebut akan dibaca dan disimpan ke dalam variabel EE. 6. Setelah semua data dibaca, rutin mengakhiri dengan mengirim kondisi Stop I2C. Listing program terdapat pada folder BAS51. Selamat berinovasi! MCS-51 is a registered trademark of Intel Corporation. DT-51 is a trademark of Innovative Electronics. BASCOM-8051 is copyright by MCS Electronics. HyperTerminal is a copyright by Hilgraeve Inc. Terminal is a copyright by Bray++. Page 7 of 7