TnEX
GPIO
ADC
UART PWM I2C
GPIO SPI
2
Interfacing
Peripheral Devices
Programming
MCU
ICE (Nu-Link)
PC IDE
CAN2.0 RS232
USB2.0 to PC Speaker : Con3 earphone : J1 mic : J2
Reset SW Int VR
LEDs
Input only with high impedance
►
Open-Drain Output
►
Quasi bi-direction
Set GPIOx_PMD (PMDn[1:0]) to 00b the GPIOx port [n] pin is in Input mode and the I/O pin is in tri-state (high impedance) without output drive capability
Push-Pull Output
An 8-bit data bus, controlled by a clock, transmitting a byte every clock pulse. 9 wires are used. Contoh: LCD Karakter 16 x 2
Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Function Ground (0V) 5V (4.7V – 5.3V) Contrast Perintah (LOW) / Data (HIGH) Terima (LOW) / Kirim (HIGH) Proses data (Falling Edge) 8-bit data
Backlight 3V ~12mA Backlight Ground (0V)
Name Vss Vdd VEE Register Select Read/write Enable DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 Led+ Led-
USART = Universal Synchronous/ Asynchronous Receiver Transmitter Data serial dikirimkan per 1 bit pada sekali waktu Antarmuka serial lebih murah USB adalah contoh antarmuka serial.
ASYNCHRONOUS Untuk komunikasi kecepatan lambat, >115Kbps akan mengakibatkan banyak error Tidak membutuhkan jalur clock Masing-masing piranti memiliki clock sendiri Perlu menyamakan clock dengan BAUD rate Contoh: UART / Serial RS-232 / COMx
SYNCHRONOUS
Untuk komunikasi kecepatan tinggi Clock memiliki frekuensi yang sama dari 1 sumber Membutuhkan 1 jalur clock Contoh: SPI I2C 1-Wire I2S
Menghilangkan: Bit Start, Stop, Parity
Menambah: Bit Start, Stop, Parity
–
Transmitter buffer +
Receiver buffer
Data
Data 1 byte
Data 1 byte
Transmitter
Receiver
♦ Menggeser (shift) bit parallel ke jalur serial dengan clocknya ♦ Menambah: Bit Start, Stop, Parity
♦ Menghilangkan: Bit Start, Stop, Parity ♦ Membuka (extract) jalur serial menjadi bit data parallel dengan clock-nya
Drive
Drive
Drive
Drive
Drive
Drive
Drive
Drive
Drive
Drive
Drive
Serial Transmit Start Bit
Data Bit 0
Data Bit 1
Data Bit 2
Data Bit 3
Data Bit 4
Data Bit 5
Data Bit 6
Data Bit 7
Parity Bit
Stop Bit
MSB
LSB
Sample Sample Sample Sample Sample Sample Sample Sample Sample Sample Sample
Serial Receive Start Bit
Data Bit 0 LSB
Data Bit 1
Data Bit 2
Data Bit 3
Data Bit 4
Data Bit 5
Data Bit 6
Data Bit 7 MSB
Parity Bit
Stop Bit
Bit Start — mengindikasikan awal pengiriman data dalam 1 byte Bit Stop — mengindikasikan akhir pengiriman data dalam 1 byte Bit Parity — tambahan untuk deteksi error (optional) Bit-bit Data — data yang dikirim/diterima Baud Rate—bit rate komunikasi serial (seberapa cepat) Throughput— kenyataan data yang dikirimkan per detik (total bit) Contoh: 115200 baud = 115200 bit/det Jika data 8-bit + 1 start +, 1 stop tanpa parity, maka throughputnya: 115200 * 8 / 10 = 92160 bit/det
Bagaimana receiver dapat mengetahui bahwa yang dikirim adalah bit start atau bukan? 0 Bit start
1
2
3
USART and Asynchron ous Communic ation
Data di-sample terus-menerus dengan 16 clk hingga falling edge. Saat terdeteksi maka menanti 6 clocks to begin sampling. 1 clk sebelum tangah-tengah clk, diambil 3 sample (bagian kotak) Jika sample ke 2 atau ke 3 terdeteksi HIGH, Maka mencari falling edge lagi sebagai bit start Jika ketiganya LOW maka, terdeteksi bit start. Selanjutnya mulai men-sampling setiap 16 clk dari bit tengah-tengah
Perlu kesepakatan antara receiver dan transmitter tentang: Kecepatan clock / baud rate Jumlah bit data, jenis parity dan jumlah bit stop Endianness: LSB / MSB first 0
1
2
sample
sample
sample
3
Bit start sample
dibentuk dari proses XOR bit-bit data dapat berjenis even atau odd Peven= dn XOR dn-1 XOR dn-2 ........ XOR d0 Podd= dn XOR dn-1 XOR dn-2 ........ XOR d0 XOR 1 Misal bit 0010 1101, MSB first dengan jenis parity Podd maka bit parity adalah 1 Bit yang dikirim adalah 0 0010 1101 1 1
Syarat agar tidak error untuk koneksi gambar disamping: Half duplex Menggunakan multiplexer
Jika kedua transmitter mengirimkan data yag berbeda di saat yang bersamaan, maka perbedaan tegangan akan merusaknya
Menghilangkan: Bit Start, Stop, Parity
Menambah: Bit Start, Stop, Parity Data
–
Transmitter buffer +
Receiver buffer
Clock
Data 1 byte
Data 1 byte
Transmitter
Receiver
♦ Menggeser (shift) bit parallel ke jalur serial dengan clocknya ♦ Mengirimkan kondisi clock ke penerima ♦ Menambah: Bit Start, Stop, Parity
♦ Menghilangkan: Bit Start, Stop, Parity ♦ Membuka (extract) jalur serial menjadi bit data parallel sesuai dengan jalur clock yang diterima
Serial Peripheral Interface: Dikenalkan oleh Motorola Mampu menangangi clock 70 MHz (atau berdasarkan dari Master) Antarmuka ke banyak device, walaupun bisa jadi bukan peripheral SPI Bertindak sebagi Master atau Slave Master biasanya microcontroller Slave biasanya peripheral lain Master mengirimkan clocks dan Chip Select (CS) untuk mengaktifkan Slave
Memerlukan 4 jalur interface (Master ;Full duplex): MOSI MISO SCK SS (CS)
master out slave in master in slave out serial clock slave select
Biasanya disertakan jalur interrupt untuk mengirimkan sinyal tertentu dari peripheral
MASTER
SLAVE MOSI 7 6
0 SCLK
1
5
2
4
3
3
4
2
SS
5
1
6
0
7 MISO
INDEPENDENT
Harus ada pull-up pada bagian SS MISO harus dalam keadaan tri-state impedansi tinggi
DAISY CHAIN
Output MISO slave pertama dihubungkan ke MOSI slave selanjutnya Bertindak seperti prinsip shift register
CASCADE DAISY CHAIN
SS
3 INPUT – 24 OUTPUT (74LS164)
Bus SPI pada micro-controller / processor SCLK - Serial Clock (output dari master) MOSI - Master Output, Slave Input (output dari master) MISO - Master Input, Slave Output (output dari slave) SS - Slave Select (active low; output dari master)
Nama alternatif pada peripheral SCLK: SCK, CLK, SH (Shift) MOSI : SIMO, SDI, DI, DIN, SI, MTST, DS MISO : SOMI, SDO, DO, DOUT, SO, MRSR SS : nCS, CS, CSB, CSN, EN, nSS, STE, SYNC, SSEL 6-27
CPOL=0 CPOL=1 CPHA=0 CPHA=1
clock idle/inactive adalah LOW clock idle/inactive adalah HIGH data di-sampling saat perubahan SCK dari kondisi idle ke kondisi aktif data di-sampling saat perubahan SCK dari kondisi aktif ke kondisi idle
Mode
CPOL
0 1 2 3
0 0 1 1
CPHA
0 1 0 1
Kelebihan SPI: Lebih cepat dari asynchronous Dapat menggunakan shift register Mendukung banyak koneksi slaves
Kekurangan SPI: Memerlukan lebih banyak jalur Komunikasi data yang beragam, memerlukan pemahaman dan penerapan sesuai di datasheet Master mengendalikan arah pengiriman data, slave tidak bisa mengendalikan arah pengiriman Jika mode SPI peripheral berbeda-beda maka membutuhkan banyak SS untuk setiap peripheral dengan koneksi independen Hanya digunakan untuk koneksi jarak dekat, krn rentan interferensi pada jalurnya
MISO TRI-STATE
PULL-UP PADA CS
www.silabs.com/MCU
I2c - LCD