Kirim Data dengan Sistem Pooling
Kebutuhan Komponen
- Sistem Minimum STM32F4Discovery 1 unit
- USB Logic Analyzer 1 unit
- Kabel Jumper Male-Female secukupnya
Gambar Percobaan
Langkah Percobaan
- Buatlah project baru menggunakan STM32 CubeMX
Pada saat melakukan konfigurasi program. Aktifkan fitur SPI2 pada menu Peripherals dan pilih mode Full-Duplex Master
Lankutkan dengan melakukan konfigurasi SPI2 pada menu Configuration
Pada menu tab menu Parameter Settings ubahlah baudrate default dari SPI dengan cara mengganti nilai prescaler menjadi yang lebih besar. Pada percobaan kali ini digunakan nilai prescaler 256. Sehingga baudrate yang digunakan adalah 164.062 Kbps.
Pada tab menu GPIO Setting, ubahlah nama user label dari pin yang digunakan untuk SPI menjadi nama-nama berikut ini
Generate dan simpan project Anda dengan nama project STM32_SPI_MASTER_Send_Pooling dengan target IDE MDK-ARM V5
Ubahlah program pada file main.c menjadi seperti berikut ini
Tambahkan header file string.h#include "string.h"
Tambahkan sintaks program berikut ini pada fungsi main
int main(void) { // Deklarasi variabel yang akan dikirimkan melalui SPI uint8_t data[] = "Hello"; /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI2_Init(); /* Infinite loop */ while (1) { // Mengirimkan data melalui SPI2 HAL_SPI_Transmit(&hspi2,data,strlen(data),100); HAL_Delay(100); } }
Simpan project dan lakukan download program ke mikrokontroler.
Untuk melakukan ujicoba, hubungkan pin SPI pada STM32F4Discovery ke USB Logic Analyzer sesuai dengan gambar percobaan. Kemudian capture sinyal dengan cara menekan tombol Start pada software Saleae Logic. Tampilan sinyal MOSI dan SCK dari STM32F4Discovery akan ditampilkan pada software Saleae Logic.
Lakukan analisa sinyal lebih lanjut dengan cara men-decode sinyal menggunakan protokol SPI. Klik simbol + pada menu Analyzer. Kemudian pilih SPI
Pada window Analyzer Settings sesuaikan konfigurasinya seperti berikut ini. Pada percobaan kali ini yang dilakukan analisa hanya sinyal MOSI dan SCK dari STM32F4Discovery yang berfungsi sebagai perangkat master. Klik Save untuk mengakhiri proses konfigurasi
Setelah melakukan konfigurasi diatas maka pada bagian sinyal akan muncul data karakter dan kode ASCII dari data yang dikirimkan melalui SPI.
Kirim Data dengan Sistem Interupsi
Kebutuhan Komponen
- Sistem Minimum STM32F4Discovery 1 unit
- USB Logic Analyzer 1 unit
- Kabel Jumper Male-Female secukupnya
Gambar Percobaan
Langkah Percobaan
Buatlah project baru menggunakan STM32 CubeMX. Lakukan konfigurasi seperti pada percobaan pertama. Pada saat melakukan konfigurasi SPI2, aktifkan mode interupsi dengan cara mencentang menu SPI2 global interrupt pada tab menu NVIC Settings
Simpan project Anda dengan nama STM32_F4_SPI_Master_Send_Interrupt
Tambahkan program berikut ini pada file main.c
Tambahkan header file "string.h"
#include "string.h"
Tambahkan fungsi callback yang berfungsi untuk memberi tanda jika pengiriman data sudah selesai
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) { UNUSED(hspi); HAL_GPIO_TogglePin(LD3_GPIO_Port,LD3_Pin); }
Tambahkan program pada fungsi main untuk mendeklarasikan variabel dan mengirim data dengan interupsi
int main(void) { uint8_t data[] = "Hello"; /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI2_Init(); /* Infinite loop */ while (1) { HAL_SPI_Transmit_IT(&hspi2,data,strlen(data)); HAL_Delay(500); } }
Untuk melakukan ujicoba pada percobaan kali ini, lakukan hal yang sama seperti pada percobaan pertama.