Modul STM32-TF |
Daftar Komponen (hardware)
Untuk membangun modul STM32, divais berikut dirancang untuk ditempatkan pada board PCB dibawah:- F/CM12P
- H11L1M
- BAUT 2mm
- JACK-PLUG0
- 10-XX
- 2N3904-NPN-TO92-EBC
- PINHD-1X40
- TRIM_EU-CA6V
- CRYSTALTC38H
- CRYSTALHC49U-V
- PC817
- TUXGR_16X2_R2
- FT232RL
- IRF530
- LEDSML1206
- C-EUC1206
- C-EUC1206
- R-EU_R1206
- R-EU_R1206
- STM32F10XRXT6
- USB_MICROB_PLUGCONN-11752
Desain PCM modul stm32tf v1.0 yang dibuat dengan eagle |
Daftar Paket (software)
Sedangkan daftar paket(software) yang dibutuhkan adalah sebagai berikut (pada Ubuntu diinstall dengan apt-get) :=> Git:
- git-cola
- ssh
=> Design:
- eagle
=> Qt SDK:
- qt4-qtconfig
- libqt4-dev
- libqt5serialport5-dev
- libqt5svg5-dev
- qt4-designer
- qtbase5-dev
- qtcreator
- qttools5-dev
- qt5-default
=> Compiler ARM:
- gcc-arm-none-eabi
- libnewlib-arm-none-eabi
- libnewlib-dev
=> LibUSB:
- usbutils
- libftdi-dev
- libusb-1.0-0-dev
=> Builder:
- automake
- cmake
- dh-autoreconf
- pkg-config
=> Python-Serial:
- python-serial
- python3-serial
Step-by-step program (semua source code diambil dari repo di Github)
Flash (stm32-tf/tools/linux/stm32flash-stm32flash)
1. Pindah ke directory stm32flash
2. sudo make
3. sudo make install
Membuat program:
1. Copy file main.c, Makefile, halconf.h dan mcuconf.h dalam satu folder
2. Edit Makefile baris ke-58, rename coba1 dengan nama project/folder anda
3. Tulis program utama anda dalam file main.c
Mengupload program (jumper mode programming):
1. $make
2. $sudo stm32flash -w ./build/coba2.bin -v -b 115200 /dev/ttyUSB0
3. Pindahkan jumper ke mode running dan reset
Print LCD dengan qtserialterminal
Sebelum mengakses (print) ke LCD, file program lcd sudah harus di compile dan diupload ke STM 32 (Sesuai dengan perintah compile dan upload sebelumnya)
1. sudo xhost +
2. sudo ./qtserialterminal
3. Open port /dev/ttyUSB0, Sesuaikan baudrate-nya
4. Gunakan perintah "lcd 0 tes" untuk mencetak 'tes' pada baris atas dan "lcd 1 OK" untuk mencerak 'OK' pada baris bawah
5. Print text ke lcd juga bisa dijalankan dari terminal biasa (gnometerm):
echo -e "lcd 0 coba\r" > /dev/ttyUSB0
Daftar Fitur
UARTBerupa komunikasi serial standar TTL UART Rx dan Tx yang di konversi menjadi data USB oleh chip FT232RL dengan konektor Micro-USB
Untuk Ubuntu/Debian butuh paket linux-image-extra-3.16.0-23-generic dan terbaca sebagai /dev/ttyUSBx
Untuk Windows butuh driver yang dapat di download di situs resmi FTDI dan terbaca sebagai COMx
Fitur ini wajib ada karena selain untuk interfacing (terminal/shell ) juga menjadi jalur pemrograman via UART bootloader (diaktifkan oleh reset dan pin boot0)
ADC
Berupa 3 trim-potensiometer untuk mensimulasikan Analog to Digital Converter
Nilai analog yang tersedia antara 0v sampai 3,3v dengan jangkauan digital 12-bit (0 sampai 4093)
EXTI
Berupa 2 tombol untuk mensimulasikan External Interrupt
External Interrupt berfungsi untuk menjalankan immedietly-respon berupa dari event input digital di pin
LED
Berupa 4 LED untuk mensimulasikan:
1. contoh sederhana multitasking
2. penundaan/delay
3. PWM
4. Timer GPT
ICU
Berupa pembacaan frekuensi/periode dari sinyal kotak baik nilai rising-to-rising, falling-to-falling, rising-to-falling, atau falling-to-rising
Dilengkapi rangkaian thresholder untuk mengkonversi secara sederhana dari sinyal non-kotak ke sinyal kotak
Driver Motor
Berupa driver berbasis MOSFET IRF530 dengan level tegangan 12v.
Tegangan dipisah oleh PC817 agar aman
Membutuhkan adaptor 12v tambahan.
Dapat untuk mensimulasikan efek PWM terhadap kecepatan motor.
Buzzer
Berupa driver berbasis MOSFET IRF530 dengan level tegangan 12v.
Tegangan dipisah oleh PC817 agar aman
Sama seperti driver motor namun keluaran langsung terhubung continues-buzzer 12v.
Membutuhkan adaptor 12v tambahan.
Dapat untuk mensimulasikan efek PWM terhadap suara yang dihasilkan buzzer.
Alphanumeric-LCD
Berupa data-bus nibble (4bit) untuk komunikasi dengan display LCD alphanumeric (bukan graphic) standar chip HD44780.
Info Compiler
Seluruh program yang digunakan di board menggunakan compiler arm-gcc-none-eabi (tersedia untuk Ubuntu/Debian dan Windows).
Untuk abstraksi hardware dan multitasking menggunakan RealTime Operating System ChibiOS
Contoh Program/Bare Minimum
Contoh program sederhana (bare minimum) untuk modul stm32-tf diatas adalah sebagai berikut,#include "hal.h" #include "ch.h" int main(void){ halInit(); chSysInit(); while(1); { // kode disini } }
Sedangkan program "hello world" untuk mengedipkan lampu (blinker) misalnya sebagai berikut,
#include "hal.h" #include "ch.h" int main(void){ halInit(); chSysInit(); palSetPadMode(GPIOA,8,PAL_MODE_OUTPUT_PUSHPULL); while(1){ palClearPad(GPIOA,8); chThdSleepMilliseconds(500); palSetPad(GPIOA,8); chThdSleepMilliseconds(500); } }
Catatan dan Evaluasi:
- Pada desain PCB versi 1.0 ini ada kesalahan wiring dan telah diperbaiki pada versi 1.1 (updated di repo)
- Port micro USB sangat rentan dan mudah disconnect, kedepannya akan digunakan port printer seperti yang dipakai Arduino
- Jumper untuk Vcc belum ada, kedepannya akan ditambahkan.