December 5, 2021

Blogna Kang U-2 Man

STM32, Embedded System, Microcontroller, ARM Cortex-M, RTOS, FreeRTOS

Pengenalan Timer STM32 Bagian 3 (Habis)

5 min read

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم

Artiker terakhir (bagian 3) pembahasan mengenai Timer STM32.

FUNGSI BREAK

Unit break, yang hanya dimiliki oleh TIM1 dan TIM8,digunakan untuk pengendalian motor atau sistem catu daya menggunakan sinyal PWM, terutama untuk sistem proteksi. Jika terjadi masalah di sistem kendali, unit break ini bisa diatur agar output timer diset di kondisi yang aman, menghentikan sinyal PWM. Sinyal break bisa berasal dari luar melalui pin TIMx_BKIN (sinyal BRK) dan dari internal melalui sistem keamanan clock (Clock Security System) yang berasal dari kendali clock reset (Reset Clock Controller) yang dinamakan dengan sinyal BRK_ACTH.

Kedua sinyal break ini di-OR-kan dan digunakan untuk mengendalikan sinyal OCxREF dan output compare (OC) dan juga keluaran komplemennya. Setelah reset unit break berada dikondisi tidak aktif. Fungsi break bisa diaktifkan melalui bit BKE di register TIMx_BDTR. Sedangkan polaritas dari sinyal break, apakah aktif tinggi atau aktif rendah, diset melalui bit BKP di register yang sama. Ketika sinyal BRK_ACTH diaktifkan sebagai sumber break, polaritasnya harus diset aktif tinggi. Kalau tidak, sinyal PWM tidak akan dibangkitkan secara mandiri dari sinyal break yang berasal dari sumber internal.

Unit Break

Di dalam aplikasi, pin TIMx_BKIN bisa dihubungkan dengan sensor tegangan atau sensor arus yang bisa berupa sebuah rangkaian pembanding (comparator). Keluaran pembanding disesuaikan dengan polaritas sinyal BRK. Jika sensor mendeteksi adanya masalah, misal arus atau tegangan berlebih, sensor segera mengirimkan sinyal break ke mikrokontroler, dan unit break dengan segera menghentikan keluaran PWM. Mikrokontroler bisa diprogram juga untuk memberikan indikasi error melalui LED, buzzer atau perangkat tampilan lainnya.

ANTARMUKA ROTARY ENCODER DAN SENSOR EFEK HALL

Rotary encoder merupakan perangkat elektro-mekanik yang mengubah posisi atau gerakan putaran ke dalam bentuk sinyal analog atau sinyal digital. Rotari enkoder banyak ditemukan di sistem kendali industri, misal untuk pengukuran kecepatan atau posisi putaran sebuah motor listrik. Rotari enkoder juga banyak dipakai diperangkat audio mobil sebagai pengganti potensiometer analog dan dipakai juga sebagai pendeteksi posisi di mouse komputer ketika masih menggunakan teknologi opto-mekanikal.

Ada 2 jenis rotari enkoder:

  • Jenis absolut
  • Jenis penambahan (incremental)

Jenis absolut biasanya mempertahankan posisi terakhirnya walaupun catu daya dihilangkan. Outputnya biasanya dalam bentuk data paralel, misal 3 bit data.

Jenis penambahan memberikan data saat terjadi perubahan posisi. Diperlukan perangkat lain untuk menentukan posisi sebenarnya, misal dengan menggunakan mikrokontroler. Enkoder jenis penambahan ini biasanya mempunyai 2 bit output, sinyal A dan sinyal B. Kedua sinyal ini memiliki beda fase sebesar 90, oleh karena itu biasa disebut dengan sinyal quadrature. Enkoder jenis inilah yang bisa ditangani secara langsung oleh timer STM32F207.

Contoh Rotary Encoder

Dengan memperhatikan keluaran dari rotari enkoder ini maka bisa ditentukan arah putaran dari enkoder, apakah enkoder diputar searah atau berlawanan dengan jarum jam. Misal prosesor membaca keluaran enkoder (00 → 01 → 11) maka enkoder diputar searah jarum jam, dan ketika keluaran enkoder (00 → 10 → 11) maka enkoder diputar berlawanan arah dengan jarum jam. Selain itu karena enkoder merupakan perangkat elektro-mekanis, maka bisa menghasilkan efek bouncing yang bisa membuat pembacaan salah. Sehingga diperlukan penanganan terhadap efek ini.

Bentuk Gelombang Enkoder Jenis Penambahan

Untuk membaca rotary enkoder digunakan 2 input timer (T1 dan T2). Polaritas kedua input bisa diprogram apakah aktif saat transisi naik, transisi turun atau keduanya. Filter juga bisa diaktifkan untuk mengurangi efek bouncing dari enkoder. Pencacah bisa diprogram untuk mencacah saat T1 aktif, T2 aktif atau saat keduanya aktif. Nilai cacahan bisa naik atau turun sesuai urutan bit yang diterima dari pin T1 dan T2. Nilai cacahan maksimal ditentukan oleh nilai register  auto-relod (TIMx_ARR). Selain itu bit DIR di register TIMx_CR1 bisa di-set atau di-reset sesuai dengan arah cacahan.

Antarmuka Rotary Enkoder dengan Timer

Pembacaan rotary enkoder dengan timer ini hanya akan memperoleh data posisi (putaran) dan arah putaran. Sedangkan untuk memperoleh data kecepatan, percepatan dan perlambatan diperlukan timer lain sebagai dasar pewaktuan yang menghitung nilai cacahan per satuan waktu.

Pembacaan Rotary Enkoder

SINKRONISASI TIMER

Unit kendali master mempunyai sebuah sinyal keluaran triger (TRGO) yang bisa digunakan sebagai sinyal input triger ke timer lain. Sinyal TRGO juga bisa digunakan sebagai pengatur ADC atau DAC. Ketika dihubungkan dengan timer lain, maka kedua timer akan bekerja secara sinkron, timer pertama bertindak sebagai master sedangkan timer lainnya berrtindak sebagai slave.

Contoh Sinkronisasi Timer Master dan Slave

Fungsi pertama yang bisa dilakukan oleh sinkronisasi timer adalah timer master bisa menjadi pra-skalar dari timet slave. Timer master akan mengeluarkan sinyal update secara periodik ke timer slave melalui sinyal TRGO. Timer slave diprogram di mode slave dengan picu internal ITR0. Kendali slave bekerja di clock eksternal mode 1. Sementara timer master bisa mengambil sumber clock internal maupun eksternal. Sinyal TRGO akan terjadi setiap timer master mengalami suatu event (misalnya overflow), dan sinyal ini akan menjadi sumber clock bagi timer slave, sehingga timer master akan bekerja sebagai pra-skalar bagi timer slave.

Sinyal OC1REF Timer 1 Mengandalikan Timer 2

Selain menggunakan sinyal OC1REF, timer master juga bisa mengaktifkan timer slave menggunakan sinyal UEV (update event). Timer master tinggal diprogram untuk mengeluarkan sinyal UEV sebagai output, sedangkan timer slave tetap mendapat input dari timer master.

Sinyal UEV Timer 1 Mengendalikan Timer 2

Sinkronisasi timer juga bisa digunakan untuk mensikronkan 2 buah timer melalui picu eksternal (misal melalui pin TIx). Sebagai contoh Timer 1 dan Timer 2 akan disinkronkan melalui pin TI1. Timer 1 diprogram di mode slave untuk masukan TI1 dan di mode master untuk Timer 2. Timer 2 tetap mendapat sinyal picu dari Timer 1. Pada saat terjadi transisi di pin TI1, kedua timer akan mulai melakukan pencacahan secara sinkron.

Masukan TI1 Mensinkronkan 2 Timer

FUNGSI MODE SLAVE

Ada beberapa mode yang bisa dipilih saat sebuah timer bekerja di mode slave dan memperoleh picu eksternal: mode reset (reset mode), mode gerbang (gated mode) dan mode picu (trigger mode).

Pada mode reset, pencacah dan pra-skalarnya bisa diinisialisasi merespon setiap even dari masukan picunya. Misal ketika timer diprogram untuk merespon saat transisi  naik di pin TI1, maka pencacah mulai mencacah dari clock internal. Ketika ada transisi naik di TI1, pencacah akan direset dan cacahan kembali ke 0. Contoh aplikasi mode ini adalah pengukuran sinyal PWM.

Mode Reset

Mode gerbang mengatur timer hanya akan bekerja (mencacah) pada saat sinyal picunya berada pada level tertentu. Gambar di bawah menunjukan Timer 1 yang bekerja di mode gerbang dan diatur aktif selama sinyal picu (pin TI1) berada di logika rendah. SelamaTI1 berlogika renah Timer 1 akan melakukan caacahan dan berhenti saat TI1 menjadi tinggi.

Mode Gerbang

Mode picu mengatur timer merespon atau aktif saat terjadi even di pin masukan, saat terjadi transisi turun atau transisi naik. Gambar di bawah menunjukan timer di mode picu dan aktif saat transisi naik. Jeda waktu saat terjadi transisi dengan saat mulai pencacahan diakibatkan adanya sinkronisasi pencacah dengan pin masukan.

Mode Picu

Mode picu jika dikombinasikan dengan clock eksternal mode 2 akan membentuk mode baru. Pada mode ini, timer akan memperoleh clock dari sinyal ETR. Gmbar berikut menunjukan timer yang bekarja di mode ini. Timer akan aktif saat ada transisi naik di pin TI dan melakukan cacahan saat transisi naik di ETR.

Mode Picu dan Clock Eksternal Mode 2

MODE DEBUG

Pada saat STM32F207 berada di mode debug (core Cortex-M3 berhenti), timer bisa diatur untuk tetap melakukan cacahan (misal saat pengendalian motor dengan sinyal PWM) atau berhenti melakukan cacahan (misal untuk keperluan watchdog).

Semoga bermanfaat…

Visits: 4 Visits: 97931

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright © All rights reserved. | Newsphere by AF themes.