Advertisement

Memahami Peta Memori Pada Mikrokontroler STM32

0 174

Kala kita ingin mempelajari perangkat – perang elektronika, di dalam banyak kesempatan banyak orang dari dosen hingga para pakar selalu memberikan nasehat agar anda untuk membaca datasheet. Hal yang sama berlaku, jika pembaca ingin mempelajari lebih lanjut tentang mikrokontroler STM32, seorang perancang sistem embedded,  tidak boleh malas  untuk membaca  dokumentasi resmi berupa datasheet dan Reference Manual dari Mikrokontroler yang ingin diprogram.

Meskipun dokumentasi tersebut tidak perlu dibaca semua sekaligus, tapi setidaknya file tersebut dijadikan acuan resmi, kala anda mendapatkan referensi dari internet, seorang programmer harus memverifikasinya ke dalam datasheet dan Manual Reference.

Dalam artikel kali ini, embeddednesia akan mengajak pembaca untuk membuka Reference Manual dari Mikrokontroler STM32F446RE yang merupakan mikrokontroler yang digunakan dalam development board Nucleo-F446RE. Namun jika pembaca memahami konsep yang disajikan, teori ini dapat digunakan untuk diimplementasikan pada jenis mikrokontroler STM32 yang lain, bahkan juga pada vendor mikrokontroler dengan arsitektur yang serupa (arsitektur ARM Cortex-M4, misalnya pada Tiva C Series)

Satu topik yang wajib dipahami oleh seorang pemrogram sistem embedded adalah peta memori (memory map). Inilah mengapa memprogram mikrokontroler menggunakan Arduino sangat diharamkan oleh banyak dosen pada mata kuliah mikrokontroler. Karena penggunaan Arduino akan menghindarkan seorang programmer untuk belajar peta memori yang dimiliki suatu mikrokontroler. Dan hal semacam ini dapat dianggap sebagai “pembodohan” bagi seseorang yang ingin serius belajar sistem embedded.

Pembaca dapat mengunduh Reference Manual dari Mikrokontroler STM32F446RE melalui situs Resmi ST di tautan berikut, atau langsung melalui repositori embeddednesia di Google Drive di tautan ini.

Sedangkan dokumen berikut adalah potongan  dari Reference Manual (halaman 56 – 59) yang sengaja disediakan embdeddednesia untuk memudahkan pembaca untuk fokus ke 3 halaman tersebut yang membahas tentang Peta Memori

Adverstiment

 

  • Peta Memori 

Memory Map adalah peta rentang alamat memori yang digunakan suatu sistem komputer.  Pada mikrokontroler STM32F4 yang memiliki inti prosesor ARM Cortex-M4, mempunyai system bus dengan lebar data 32 bit. Sehingga prosesor tersebut memiliki 232  (= 4294967296 atau 4 Giga) alamat yang berbeda.

Alamat memori pada STM32 diencode dengan format Little Indian Format dimana LSB (least Significant Byte) dari data ditulis pada alamat yang terkecil.

Jadi semua program memory, data memory, register hingga port I/O terorganisasi pada alamat dengan rentang  dari0x0000 0000 hingga 0xFFFF FFFF. Jika pembaca membuka Reference Manual STM32F446xx pada halaman 57 akan ditemui periferal – periferal yang ditanamkan ke dalam mikrokontroler dan juga alamat  yang digunakan

Misalnya, berdasarkan Reference Manual, Register yang terkait dengan GPIOA diletakkan pada  alamat 0x4002 00000x4002 03FF. Alamat yang berbeda mungkin dijumpai untuk jenis mikrokontroler lain (seperti Tiva C Series). Contoh berikutnya adalah register terkait dengan SPI4 yang diletakan pada rentang alamat  0x4001 34000x4001 37FF

Perhatikan pada Tabel 1. STM32F446xx Register Boundary Adresses dimana kolom ketiga adalah nama bus dimana peripheral – peripheral yang terkait bergantung padanya. Misalnya untuk Alamat AHB1 (Advance High Bus1) memiliki alamat memori dari 0x4002 00000x4007 FFFF. Sedangkan untuk APB1 (Advance Peripheral Bus 1) berada pada alamat memori 0x4000 00000x4000 77FF

Untuk banyak peripheral lainnya, pembaca dapat menemukannya sendiri di Reference Manual. Penulis tidak mungkin menuliskan semua alamat – alamatnya pada peta memori di dalam artikel ini. Tulisan ini  hanya mengajak pembaca  bagaimana membuka reference manual sambil memahami isinya terkait dengan peta memori pada Mikrokontroler STM32.

Pemahaman tentang hal ini akan menjadi modal penting saat ulasan embeddednesia berikutnya yang mengulas  lebih lanjut tentang arsitektur mikrokontroler STM32. Misalnya tentang antarmuka bus pada  mikrokontroler STM32

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: