Tutorial 1: Penjelasan GPIO pada STM32

 



kali ini saya akan berbagi pembahasan tengan gpio pada stm32, berikut ini daftar isi pembahasannya

  1. STM32 GPIO Ports
  2. STM32 GPIO Speed
  3. STM32 GPIO Bit Atomic Operations
  4. STM32 GPIO Interrupts
  5. Remapping Alternate Function Pins in STM32
  6. STM32 GPIO Locking Mechanism
  7. STM32 GPIO Configurations
  8. STM32 GPIO Concluding Remarks
  9. More STM32 GPIO Tutorials & Examples

STM32 GPIO Ports


entang port I/O serbaguna pada mikrokontroler STM32. Setiap port I/O ini memiliki beberapa jenis register yang berbeda. Ada dua register konfigurasi 32-bit, yang digunakan untuk mengatur bagaimana port tersebut beroperasi. Kemudian, ada dua register data 32-bit, yang digunakan untuk menyimpan data yang ingin dikirim atau diterima oleh port tersebut.

Selain itu, ada juga register set/reset 32-bit, yang berguna untuk mengatur nilai tertentu pada port dengan cepat dan aman. Terdapat juga register reset 16-bit, yang digunakan untuk mereset nilai port secara keseluruhan. Terakhir, ada register penguncian 32-bit, yang berguna untuk mencegah perubahan yang tidak diinginkan pada konfigurasi port tersebut.


.setiap bit pada port I/O bisa diatur sesuai keinginan, artinya kita bisa mengaturnya untuk melakukan berbagai tugas yang kita inginkan. Namun demikian, untuk mengakses register port I/O tersebut, kita harus melakukannya dengan menggunakan kata-kata (words) yang berukuran 32-bit. Artinya, kita tidak bisa mengaksesnya setengah kata atau satu byte sekaligus.

Kemudian, kalimat tersebut menjelaskan tentang fungsi dari register set/reset. Fungsinya adalah untuk memungkinkan kita mengakses dan mengubah nilai-nilai pada register GPIO (General Purpose Input/Output) secara aman dan langsung, tanpa ada kemungkinan terjadinya gangguan dari proses lain. Dengan begitu, tidak ada risiko bahwa interrupt request (IRQ) terjadi di antara proses membaca dan mengubah nilai register tersebut.

Ada sebuah diagram digital yang menunjukkan struktur internal dari pin GPIO yang umum. Diagram ini mencakup beberapa bagian penting, seperti perlindungan dioda, pengaturan untuk mengaktifkan atau menonaktifkan pull-up atau pull-down internal, driver output push-pull, pengaturan untuk mengaktifkan atau menonaktifkan output sehingga bisa berubah menjadi mode masukan atau keluaran, input digital dengan Schmitt-trigger, dan juga input analog. Dengan kata lain, diagram tersebut memberikan gambaran tentang bagaimana setiap bagian dari pin GPIO tersebut diatur dan bekerja dalam mikrokontroler STM32.




STM32 GPIO Votage

Tegangan keluaran pada pin GPIO adalah 3.3V, dan begitu juga dengan tegangan masukannya. Namun, beberapa pin masukan dapat mentoleransi tegangan sebesar 5V. Namun, untuk memastikan pin mana yang dapat mentoleransi tegangan 5V, Anda harus merujuk pada lembar data (datasheet).

Anda harus mengasumsikan bahwa semua pin GPIO secara default tidak mentoleransi tegangan 5V, kecuali Anda menemukan informasi di lembar data bahwa pin tertentu mentoleransi tegangan 5V. Hanya pada saat itu Anda bisa menggunakannya sebagai pin 5V. Sebagian besar pin memiliki tegangan 3.3V dan dapat rusak jika terhubung dengan jalur masukan digital 5V. Penggeseran level mungkin diperlukan dalam banyak kasus.


STM32 GPIO Max Current (Output/Input)

batas arus maksimum pada pin GPIO dari mikrokontroler STM32, yaitu 25mA per pin IO. Ini merupakan batas maksimum arus yang bisa disuplai atau diserap oleh setiap pin IO.


Oleh karena itu, Anda perlu berhati-hati dengan tingkat tegangan untuk pin masukan. Dan juga, Anda harus memperhatikan arus keluaran saat Anda mengatur pin keluaran GPIO. Arus maksimum yang dapat disuplai atau diserap ke setiap pin GPIO adalah 25mA sesuai dengan lembar data. Dan Anda harus memeriksanya untuk mikrokontroler STM32 target tertentu yang Anda gunakan


STM32 GPIO Speed

garis GPIO STM32 memiliki kontrol kecepatan yang dapat diprogram, yang digunakan untuk mengatur "slew rate" dari garis IO yang menentukan kecepatan maksimum yang diizinkan untuk garis IO tersebut. Pada bagian ini, kami akan merangkum fitur kontrol kecepatan GPIO ini beserta semua konfigurasi (opsi) yang mungkin.

input

Kalimat tersebut menjelaskan bahwa ketika sebuah pin GPIO diatur ke mode masukan, data yang ada pada pin I/O tersebut diambil sampelnya ke dalam Register Data Masukan setiap siklus clock APB2. Ini berarti kecepatan bus APB2 menentukan kecepatan pengambilan sampel masukan untuk pin GPIO.

output

Ketika sebuah pin GPIO diatur ke mode keluaran, Anda akan memiliki opsi untuk mengonfigurasi mode kecepatan pin dengan memprogram bit-bit yang sesuai dalam register konfigurasi. Di bawah ini terdapat tabel untuk berbagai mode yang tersedia dalam lembar data untuk mikrokontroler STM32F103C8.


STM32 GPIO Bit Atomic Operations

Kalimat tersebut menjelaskan bahwa tidak perlu bagi perangkat lunak (software) untuk menonaktifkan interrupt saat memprogram GPIOx_ODR pada level bit: memungkinkan untuk mengubah hanya satu atau beberapa bit dalam satu akses tulisan atomik APB2. Ini dapat dicapai dengan memprogram '1' ke Register Penetapan/Reset Bit (GPIOx_BSRR, atau untuk reset saja GPIOx_BRR) untuk memilih bit yang akan dimodifikasi. Bit-bit yang tidak dipilih tidak akan dimodifikasi. Dengan kata lain, fitur ini memungkinkan untuk mengubah bit-bit tertentu pada register GPIO tanpa mengganggu bit-bit lainnya, dan ini dilakukan dalam satu akses tulisan ke bus APB2.

STM32 GPIO Interrupts

Kalimat tersebut menjelaskan bahwa semua port memiliki kemampuan untuk menerima interrupt eksternal. Untuk menggunakan jalur interrupt eksternal, port harus dikonfigurasi ke mode masukan. Pembahasan ini akan disajikan secara lebih detail ketika kita membahas topik EXTI (external interrupt/event controller).

Remapping Alternate Function Pins in STM32

Kalimat tersebut menjelaskan bahwa untuk mengoptimalkan jumlah fungsi I/O periferal untuk paket perangkat yang berbeda, dimungkinkan untuk memetakan kembali beberapa fungsi alternatif ke beberapa pin lain. Ini dilakukan melalui perangkat lunak, dengan memprogram register yang sesuai. Dengan kata lain, pengguna dapat menyesuaikan fungsi I/O periferal pada mikrokontroler dengan cara memetakan fungsi-fungsi alternatif ke pin-pin tertentu sesuai kebutuhan menggunakan perangkat lunak.

Kalimat tersebut menjelaskan bahwa opsi ini dapat membantu Anda memetakan ulang pin I/O periferal, sehingga Anda tidak perlu melakukan banyak perubahan dalam tata letak PCB ketika Anda mengganti mikrokontroler target di papan sirkuit. Ini dapat sangat menguntungkan dan memudahkan proses routing. Selain itu, membantu Anda memindahkan sinyal-sinyal berkecepatan tinggi agar mengurangi "tingkat kebisingan" di bagian tertentu. Dengan kata lain, fitur ini memungkinkan untuk lebih fleksibel dalam mengatur jalur sirkuit pada PCB, mengurangi kerumitan dalam pengembangan dan meningkatkan performa sinyal pada papan sirkuit.

STM32 GPIO Locking Mechanism

Kalimat tersebut menjelaskan bahwa mekanisme penguncian (locking mechanism) memungkinkan konfigurasi IO (Input/Output) untuk tetap tidak berubah. Ketika urutan penguncian telah diterapkan pada sebuah bit port, tidak lagi mungkin untuk mengubah nilai dari bit port tersebut sampai reset berikutnya. Dengan kata lain, setelah suatu pengaturan atau konfigurasi pada suatu bit port telah dikunci, maka nilainya tidak akan dapat diubah lagi hingga terjadi reset pada sistem. Hal ini memastikan bahwa konfigurasi yang telah diatur pada suatu bit port tetap stabil dan tidak dapat diubah secara tidak sengaja.


Kalimat tersebut menjelaskan bahwa tergantung pada karakteristik hardware khusus dari setiap port I/O yang terdaftar dalam lembar data, setiap bit port dari General Purpose IO (GPIO) Ports dapat dikonfigurasi secara individu oleh perangkat lunak dalam beberapa mode:

STM32 GPIO Configurations

Konfigurasi Keluaran
- Keluaran Open-Drain
- Keluaran Push-Pull
Konfigurasi Masukan
- Masukan Mengambang (Hi-Z)
- Masukan Pull-Up
- Masukan Pull-Down
Konfigurasi Fungsi Alternatif
- Fungsi Alternatif Push-Pull
- Fungsi Alternatif Open-Drain
Konfigurasi Analog

STM32 GPIO Concluding Remarks

1. Tidak semua pin GPIO STM32 dapat mentoleransi tegangan 5V. Sebagian besar memiliki tegangan 3.3V.
2. Anda harus mengaktifkan clock untuk GPIO yang ingin Anda gunakan, tidak peduli dengan mode operasinya.
3. Ketika mengonfigurasi pin keluaran GPIO, Anda dapat memilih kecepatan yang sesuai dengan aplikasi Anda, apakah Anda membutuhkan switching frekuensi tinggi pada jalur IO atau tidak.
4. Kecepatan bus APB2 menentukan laju sampling untuk semua pin masukan GPIO yang dikonfigurasi.
5. Anda dapat memutuskan koneksi pada pin GPIO (membuatnya high impedance) dengan mengaturnya ke mode masukan dengan Hi-Z.
6. Anda dapat membekukan atau mengunci konfigurasi pin GPIO setelah inisialisasi sistem jika tidak ada perubahan yang diinginkan menggunakan mekanisme penguncian.
7. Pin fungsi alternatif dapat dipertukarkan (dipetakan kembali) secara internal sehingga Anda dapat memiliki lebih banyak kebebasan dalam merutekan sinyal-sinyal tersebut.
8. Semua pin GPIO STM32 memiliki kemampuan untuk interrupt, tetapi harus dikonfigurasi dalam EXTI seperti yang akan kita lihat nanti dalam seri tutorial STM32 ini.

Sumber: depblue




0 Response to "Tutorial 1: Penjelasan GPIO pada STM32"

Posting Komentar

Berkomentarlah dengan baik ^_^