Terdapat beberapa peripheral utama yang bisa digunakan untuk antarmuka pada
BBB diantarnya adalah General Purpose Input Output(GPIO), yang terdapat pada pin
header P8 dan P9. Setiap pin pada pin header tersebut mempunyai fungsi bermacammacam, atau dikenal dengan mempunyai mode operasi yang berbeda. 1 jenis mode
operasi artinya mempunyai fungsi yang berbeda dengan mode operasi yang lain.
Berikut adalah mode dasar pin:
Digital Output
Contoh aplikasi : kontrol LED, LED Matrix, ON/OFF Digital Load(Relay) dll
Digital Input
Contoh aplikasi : Pembacaan tombol, Pembacaan output digital sensor dll
Analog Input(ADC)
Contoh aplikasi : pembacaan sensor-sensor analog, membaca potensiometer
Analog Output(PWM)
Contoh aplikasi : Pengendalian VSD(Variable Speed Drive) pada motor control
};
};
};
Untuk memvalidasi apakah pin telah aktif dan siap digunakan, gunakan kombinasi
perintah cat/dmesg.
5.2 Kontrol ON/OFF Output LED dan Buzzer
Terdapat 5 LED yang sudah terangkai pada modul B3 yaitu LED1, LED2,
LED3, LED4 dan LED5-PWM. Hal pertama yang perlu dipahami rangkaian
tambahan pada masing-masing LED yang akan dikontrol ON/OFF. Seperti terlihat
pada gambar bahwa modul B3 mempunyai sejumlah 2 pin header. Namun apabila
dilihat dari sisi pinout chip GPIO, modul B3 memiliki 4 chip GPIO (chip GPIO 0
s/d 3) yang masing-masing chip memiliki sejumlah 32 pin. Sehingga total
sebenarnya modul B3 memiliki 4 chip * 32 pin GPIO/chip = 128 pin GPIO dari pin
GPIO 0 s/d 127. Namun, tidak semua pin dikeluarkan pada output header karena ada
beberapa pin yang sudah terpakai untuk peripheral on board modul B3 seperti
antarmuka ke microSD, ethernet, user LED dan lainnya.
Untuk mengakses pin GPIO dengan nomor tertentu, maka tentunya harus
mengetahui chip GPIO ke berapa dan nomor pin sekian. Sebagai contoh pada ouput
LED1, terhubung pada header P8 pin 7 (sesuai dengan gambar diatas adalah pada
pin P8_7: TIMER4/GPIO2_2[lihat tabel lengkap pada lampiran]). Maka no GPIO
sebenarnya adalah :
(2 * 32) + 2 = 66
Jadi LED1 terhubung pada GPIO pin ke 66.
Praktikum 4.1
Tahapan Kontrol ON/OFF Output 4 LED dan 1 Buzzer:
Tujuan Praktikum
1) Mampu menggunakan metode DTOs untuk mengaktifkan pin IO
2) Mengendalikan LED digital output ON/OFF
Alat yang digunakan
1) Modul Embedded System BeagleBone Black
2) PC/Laptop
Tahapan Praktikum
1) Login pada modul B3 seperti pada materi sebelumnya
2) Perhatikan rangkaian 4 LED dan 1 buzzer yang terhubung pada pin header masingmasing:
Gambar 4. 4
3) Tentukan terlebih dahulu no GPIO semua pin LED dan buzzer, seperti pada Tabel
4.1.
Tabel 4. 1 Tabel Pin Aktual LED dan Buzzer
gpiochip64
gpiochip96
unexport
gpio66
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio66
root@arm:/sys/class/gpio/gpio66# ls -l
total 0
-rw-r--r-- 1 root root 4096
Aug
Aug
6 15:24 direction
Aug
6 15:24 edge
Aug
6 15:24 power
6 15:24 active_low
Aug
6 15:24 uevent
Aug
6 15:24 value
6) Terlihat file arah GPIO masih sebagai input, maka harus diubah sebagai output.
Jalankan perintah berikut
6 15:31 export
0 Aug
0 Aug
0 Aug
0 Aug
0 Aug
6 15:26 unexport
root@arm:/sys/class/gpio# cd gpio69
root@arm:/sys/class/gpio/gpio69# cat direction
in
11) Terlihat file arah GPIO masih sebagai input, maka harus diubah sebagai output.
Jalankan perintah berikut
root@arm:/sys/class/gpio/gpio69# echo out > direction
14) Apabila telah selesai maka kembalikan status pin seperti semula
root@arm:/sys/class/gpio/gpio69# cd ../
root@arm:/sys/class/gpio# echo 69 > unexport
root@arm:/sys/class/gpio#
15) Untuk menyalakan kemudian mematikan LED3 nomor pin GPIO adalah 45,
jalankan perintah berikut:
root@arm:/sys/class/gpio# echo 45 > export
root@arm:/sys/class/gpio# ls
export
gpio45
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio45
root@arm:/sys/class/gpio/gpio45# ls -l
total 0
-rw-r--r-- 1 root root 4096 Aug
6 15:37 active_low
0 Aug
6 15:37 direction
6 15:37 edge
0 Aug
6 15:37 power
0 Aug
6 15:37 uevent
6 15:37 value
16) Untuk menyalakan kemudian mematikan LED4 nomor pin GPIO adalah 47,
jalankan perintah berikut:
root@arm:/sys/class/gpio# echo 47 > export
root@arm:/sys/class/gpio# ls
export
gpio47
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio47
root@arm:/sys/class/gpio/gpio47# ls -l
9
total 0
-rw-r--r-- 1 root root 4096 Aug
6 15:40 active_low
0 Aug
6 15:40 direction
6 15:40 edge
0 Aug
6 15:40 power
0 Aug
6 15:40 uevent
6 15:40 value
17) Untuk menyalakan kemudian mematikan LED4 nomor pin GPIO adalah 22,
jalankan perintah berikut:
root@arm:/sys/class/gpio# echo 22 > export
root@arm:/sys/class/gpio# ls
export
gpio22
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio22
root@arm:/sys/class/gpio/gpio22# cat value
0
root@arm:/sys/class/gpio/gpio22# cat direction
in
root@arm:/sys/class/gpio/gpio22# echo out > direction
root@arm:/sys/class/gpio/gpio22# echo 1 > value
root@arm:/sys/class/gpio/gpio22# echo 0 > value
root@arm:/sys/class/gpio/gpio22# ls -l
total 0
-rw-r--r-- 1 root root 4096 Aug
6 15:43 active_low
0 Aug
6 15:43 direction
6 15:43 edge
0 Aug
6 15:43 power
0 Aug
6 15:43 uevent
6 15:43 value
root@arm:/sys/class/gpio/gpio22# cd ..
10
18) Untuk menyalakan kemudian mematikan buzzer 5Volt nomor pin GPIO adalah 7,
jalankan perintah berikut:
root@arm:/sys/class/gpio# echo 7 > export
root@arm:/sys/class/gpio# ls
export
gpio7
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio7/
root@arm:/sys/class/gpio/gpio7# cat direction
in
root@arm:/sys/class/gpio/gpio7# echo out > direction
root@arm:/sys/class/gpio/gpio7# echo 1 > value
root@arm:/sys/class/gpio/gpio7# echo 0 > value
root@arm:/sys/class/gpio/gpio7# cd ..
root@arm:/sys/class/gpio# echo 7 > unexport
root@arm:/sys/class/gpio#
Praktikum 4.2
Pembacaan Input Tombol BTN1, BTN2 dan BTN3
11
Tujuan Praktikum
1) Mampu menggunakan metode DTOs untuk mengaktifkan pin IO
2) Membaca input logika high dan low pada BTN1, BTN2 dan BTN3
Alat yang digunakan
1) Modul Embedded System BeagleBone Black
2) PC/Laptop
Tahapan Praktikum
1) Login pada modul B3 seperti pada materi sebelumnya
2) Perhatikan rangkaian 3 tombol push button terhubung pada pin header masingmasing:
Pada modul B3, terdapat 3 kombinasi tombol yang bernama BTN1, BTN2 dan
BTN3. Dengan mempelajari peripheral ini diharapkan untuk bisa membaca input
tegangan digital ke modul B3. Perhatikan gambar untuk mengetahui rangkaian
koneksi tombol menuju ke modul B3.
Gambar 4. 5 Rangkaian Input Tombol Push Button BTN1, BTN2 dan BTN3
3) Tentukan terlebih dahulu no GPIO semua pin tombol, seperti pada Tabel 4.2.
12
gpio3
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio3/
root@arm:/sys/class/gpio/gpio3# ls -l
total 0
-rw-r--r-- 1 root root 4096 Aug
6 16:08 active_low
0 Aug
6 16:08 direction
6 16:08 edge
0 Aug
6 16:08 power
0 Aug
6 16:08 uevent
6 16:08 value
Paramater in artinya konfigurasi direction telah benar, sehingga tidak perlu dirubah
6) Selanjutnya adalah memeriksa file value yang berisi status tombol. Logika 1 artinya
tidak ditekan dan logika 0 artinya ditekan(untuk pin input aktif low) dan sebaliknya
untuk rangkaian aktif high. Jadi saat tombol tidak ditekan:
root@arm:/sys/class/gpio/gpio3# cat value
1
root@arm:/sys/class/gpio/gpio3# cd ../
root@arm:/sys/class/gpio# echo 3 > unexport
root@arm:/sys/class/gpio#
gpio49
gpiochip0
gpiochip32
gpiochip64
gpiochip96
unexport
root@arm:/sys/class/gpio# cd gpio49
Paramater in artinya konfigurasi direction telah benar, sehingga tidak perlu dirubah
11) Selanjutnya adalah memeriksa file value yang berisi status tombol. Logika 1 artinya
tidak ditekan dan logika 0 artinya ditekan(untuk pin input aktif low) dan sebaliknya
untuk rangkaian aktif high. Jadi saat tombol tidak ditekan:
root@arm:/sys/class/gpio/gpio49# cat value
0
gpio109
gpiochip96
gpiochip0
gpiochip32
gpiochip64
unexport
14
root@arm:/sys/class/gpio# cd gpio109
Paramater in artinya konfigurasi direction telah benar, sehingga tidak perlu dirubah
16) Selanjutnya adalah memeriksa file value yang berisi status tombol. Logika 1 artinya
tidak ditekan dan logika 0 artinya ditekan(untuk pin input aktif low) dan sebaliknya
untuk rangkaian aktif high. Jadi saat tombol tidak ditekan:
root@arm:/sys/class/gpio/gpio109# cat value
0
Praktikum 4.3
Kontrol LED super bright dari PWM dan Motor Servo
Tujuan Praktikum
1) Mampu
menggunakan
metode
DTOs
untuk
mengaktifkan
pin
Analog
Output(PWM)
2) Mengendalikan intensitas cahaya LED superbright dan sudut putar motor servo
Alat yang digunakan
1) Modul Embedded System BeagleBone Black
2) PC/Laptop
Tahapan Praktikum
1) Login pada modul B3 seperti pada materi sebelumnya
15
2) Perhatikan rangkaian motor servo dan LED super bright terhubung pada pin header
masing-masing.
Gambar 4. 6
Rangkaian
3) Untuk mengetahui semua informasi pin yang suda terpakai pada modul B3, jalankan
perintah berikut:
4) Login sebagai root user
16
ubuntu@arm:~$ sudo su
root@arm:/sys/kernel/debug/pinctrl/44e10800.pinmux# cat
pingroups
registered pin groups:
group: pinmux_uart0_pins
pin 92 (44e10970.0)
pin 93 (44e10974.0)
group: cpsw_default
pin 66 (44e10908.0)
....
....
....
group: mcasp0_pins
pin 107 (44e109ac.0)
pin 103 (44e1099c.0)
pin 101 (44e10994.0)
pin 100 (44e10990.0)
pin 27 (44e1086c.0)
root@arm:/sys/kernel/debug/pinctrl/44e10800.pinmux#
file pingroup berisi informasi mengenai semua daftar pin group list yang dimiliki
oleh modul B3 dan dikenali oleh sistem operasi. Semua pin groups terdaftar disini
dengan penomoran masing-masing pada lokasi alamat yang unik.
7) Untuk mengetahui pin sudah terpakai secara lebih detail, jalankan perintah berikut:
root@arm:/sys/kernel/debug/pinctrl/44e10800.pinmux# cat
pinmux-pins | more
Pinmux settings per pin
Format: pin (name): mux_owner gpio_owner hog?
pin 0 (44e10800.0): 481d8000.mmc (GPIO UNCLAIMED) function
pinmux_emmc_pins group pinmux_emmc_pins
pin 1 (44e10804.0): 481d8000.mmc (GPIO UNCLAIMED) function
pinmux_emmc_pins group pinmux_emmc_pins
pin 2 (44e10808.0): 481d8000.mmc (GPIO UNCLAIMED) function
............
17
............
............
pin 16 (44e10840.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 17 (44e10844.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 20 (44e10850.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 21 (44e10854.0): leds (GPIO UNCLAIMED) function
user_leds_default group user_leds_default
pin 24 (44e10860.0): leds (GPIO UNCLAIMED) function
user_leds_default group user_leds_default
pin 25 (44e10864.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
file pin-mux-pins digunakan untuk informasi pin-pin yang telah terpakai atau aktif
secara default dan kemungkinan digunakan pada sistem operasi. File ini bisa
digunakan untuk memeriksa dan validasi dari pengaktifan DTOs yang telah
dibahasa sebelumnya.
8) Untuk mengetahui daftar semua pin, jalankan perintah berikut:
root@arm:/sys/kernel/debug/pinctrl/44e10800.pinmux# cat pins
| more
registered pins: 142
pin 0 (44e10800.0) 00000031 pinctrl-single
pin 1 (44e10804.0) 00000031 pinctrl-single
pin 2 (44e10808.0) 00000031 pinctrl-single
...
...
...
pin 8 (44e10820.0) 00000027 pinctrl-single
pin 9 (44e10824.0) 00000027 pinctrl-single
pin 10 (44e10828.0) 00000027 pinctrl-single
pin 11 (44e1082c.0) 00000027 pinctrl-single
pin 12 (44e10830.0) 00000027 pinctrl-single
9) Download terlebih dahulu contoh program Device Tree Overlay dari github,
menggunakan aplikasi git dari halaman internet
git://github.com/derekmolloy/boneDeviceTree.git:
root@arm:~# pwd
/root
root@arm:~# git clone
git://github.com/derekmolloy/boneDeviceTree.git
Cloning into 'boneDeviceTree'...
remote: Counting objects: 121, done.
18
BeagleboneBlackP8HeaderTable.pdf
BeagleboneBlackP9HeaderTable.pdf
DTSource3.8.11
am335x-boneblack.dts
am335x-bone-common.dtsi
am335x-bone.dts
am33xx.dtsi
build
derek.dts
skeleton.dtsi
tps65217.dtsi
DTSource3.8.12
am335x-boneblack.dts
am335x-bone-common.dtsi
am335x-bone.dts
am33xx.dtsi
skeleton.dtsi
tps65217.dtsi
DTSource3.8.13
am335x-boneblack.dts
am335x-bone-common.dtsi
am335x-bone.dts
am33xx.dtsi
skeleton.dtsi
tps65217.dtsi
gpio
build
SimpleGPIO.cpp
SimpleGPIO.h
TestApplication
TestApplication.cpp
overlay
build
DM-GPIO-Test-00A0.dtbo
19
DM-GPIO-Test.dts
README.md
spi
build
DM-SPI-Test-00A0.dtbo
DM-SPI-Test.dts
8 directories, 34 files
10) Pada gambar diatas motor servo ditunjukkan terhubung pada pin P8_14 atau
EHRPWM1A. Untuk mengatur mode pin ini menjadi PWM, tulislah source code
berikut kemudian kompile
/*
* Copyright (C) 2013 CircuitCo
* Copyright (C) 2013 Texas Instruments
*
* This program is free software; you can redistribute it
and/or modify
* it under the terms of the GNU General Public License
version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
/* identification */
part-number = "bone_pwm_P9_14";
version = "00A0";
/* state the resources this cape uses */
exclusive-use =
/* the pin header uses */
"P9.14",
/* pwm: ehrpwm1A */
20
pinctrl-single,pins = <0x048
0x6>; /* P9_14
= "pwm_test";
pwms
pwm-names
= "PWM_P9_14";
pinctrl-names
= "default";
pinctrl-0 = <&pwm_P9_14>;
enabled
= <1>;
duty
= <0>;
status
= "okay";
};
};
};
};
11) Pada direktori overlay terdapat sebuah file build script yang digunakan untuk
mengkompilasi file berekstensi dts. Modifikasi dan sesuaikan file dts untuk nama
file source dan nama file hasil kompilasi. File dts adalah source file yang bisa
dimodifikasi sesuai dengan keinginan dan dtbo adalah obyek file hasil kompilasi
oleh dtc compiler.
12) Simpan file tersebut dengan nama bone_pwm_P9_14-00A0.dts pada direktori
overlay. Kompilasi modifikasi file build agar bisa mengkompikasi file dts yang baru
dibuat.
root@beaglebone:~/boneDeviceTree/overlay# nano build
root@beaglebone:~/boneDeviceTree/overlay# ./build
Compiling the overlay from .dts to .dtbo
root@beaglebone:~/boneDeviceTree/overlay# ls -l
total 28
-rw-r--r-- 1 root root
root@beaglebone:~/boneDeviceTree/overlay#
13) Copy file dtbo hasil kompilasi ke direktory /lib/firmware, lalu aktifkan pada file
slots dan periksa pada system.
root@beaglebone:~/boneDeviceTree/overlay# cp bone_pwm_P9.1400A0.dtbo /lib/firmware/
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
4: P-O-L-
5: P-O-L-
Manuf,bone_pwm_P9.14
22
export
npwm
power
subsystem
uevent
unexport
export
npwm
power
pwm0
subsystem
uevent
unexport
root@beaglebone:/sys/class/pwm/pwmchip0# cd pwm0/
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# ls
duty_cycle
enable
period
polarity
power
uevent
19) Enable terlebih dahulu PWM out, periode(dengan satuan nano second), duty cycle.
Sebagai contoh sinyal pwm dengan frekuensi 1 Hz, duty cycle 50%:
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# echo 1 > enable
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# echo 1000000000 >
period
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# echo 500000000 >
duty_cycle
PeUntuk motor servo, nilai frekuensi dan duty cycle adalah tertentu. Diskusikan
dengan teman anda untuk menemukan nilai duty cycle dan frekuensi yang
dibutuhkan.
20) Perintah diatas juga bisa diajalankan menggunakan file dtbo yang sudah tersedia
pada direktory /lib/firmware.
21) Aktifkan mode PWM pada pin P9.19 pada pada direktory /sys/class/pwm dengan
masuk kedirektori overlay dan buka file dts menggunakan teks editor. Melalui file
inilah semua pin pada P8 dan P9 dapat dikonfigurasi. Masuk kedirektory
/lib/firmaware dan aktifkan mode PWM pada
BB-PWM2-00A0.dtbo, lalu
tambahkan pada slot file.
root@beaglebone:~# ls /lib/firmware/*PWM* -l
-rw-r--r-- 1 root root 1198 Aug
3 15:48 /lib/firmware/BB-PWM0-
00A0.dtbo
-rw-r--r-- 1 root root 1198 Aug
3 15:48 /lib/firmware/BB-PWM1-
00A0.dtbo
23
3 15:48 /lib/firmware/BB-PWM2-
00A0.dtbo
root@beaglebone:/lib/firmware# cat $SLOTS
0: PF----
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
root@beaglebone:~# cd /lib/firmware/
root@beaglebone:/lib/firmware# echo BB-PWM2 > $SLOTS
root@beaglebone:/lib/firmware# cat $SLOTS
0: PF----
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
7: P-O-L-
22) Sampai disini, maka pin PWM pada pin header P8_19 telah aktif pada mode PWM.
Selanjutnya untuk mengatur nilai duty cycle dan periode sinyal yang di bangkitkan,
jalankan perintah-perintah berikut:
root@beaglebone:~# cd /sys/class/pwm/pwmchip0
root@beaglebone:/sys/class/pwm/pwmchip0# ls
device
export
npwm
power
subsystem
uevent
unexport
export
npwm
power
pwm0
subsystem
uevent
unexport
root@beaglebone:/sys/class/pwm/pwmchip0# cd pwm0/
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# ls
duty_cycle
enable
period
polarity
power
uevent
23) Enable terlebih dahulu PWM out, periode(dengan satuan nano second), duty cycle.
Sebagai contoh sinyal pwm dengan frekuensi 1 Hz, duty cycle 50%:
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# echo 1 > enable
24
24) Amati pada LED super bright yang terkoneksi dengan pin P8_19. Seharusnya LED
berkedip. Percobaan bisa dilanjutkan dengan cara merubah nilai duty cycle dan
periode berbeda untuk pengaturan intensitas cahaya led.
root@beaglebone:/sys/class/pwm/pwmchip0/pwm0# echo 1 > enable
25) Untuk menonaktifkan mode pin PWM pada P8_19, jalankan perintah berikut:
root@beaglebone:cd ../
root@beaglebone:echo 0 > unexport
Praktikum 4.4
Input Tegangan Analog/ADC
Modul B3 memiliki sejumlah 7 channel ADC dengan resolusi hasil konversi sebesar 12
bit. Sebelum mempelajari materi ini diharuskan untuk memahami materi ADC pada
mikrokontroler. Resolusi ADC ini digunakan bisa digunakan untuk membaca input
tegangan analog maksimal sebesar 1,8 Volt. Sehingg, tegangan input 1,8 Volt ini akan
direpresentasikan menjadi data informasi digital dari 0 sampai dengan 4095(12bit).
Berikut ini adalah daftar peripheral koneksi ADC pada modul B3.
1. Pin P9.32 : VDDADC
2. Pin P9.33 : AIN4
3. Pin P9.34 : GNDADC
4. Pin P9.35 : AIN6
5. Pin P9.36 : AIN5
6. Pin P9.37 : AIN2
7. Pin P9.38 : AIN3
8. Pin P9.39 : AIN1
9. Pin P9.40 : AIN0
Adapun pada modul tambahan B3, input ADC sudah terhubung dengan sensor LDR,
LM 35 dan input potensiometer. Berikut adalah gambar koneksi ke-3 input ADC
25
tersebut:
LM35 = P9.40/AIN0
LDR = P9.38/AIN3
POTENSIOMETER = P9.36/AIN0
26
Tujuan Praktikum
1) Mampu menggunakan metode DTOs untuk mengaktifkan pin Analog Input(ADC)
2) Mampu membaca tegangan input sensor LM35, LDR dan Potensiometer
Alat yang digunakan
1) Modul Embedded System BeagleBone Black
2) PC/Laptop
Tahapan Praktikum
1) Login pada modul B3 seperti pada materi sebelumnya
2) Masuk kedirektory /lib/firmware
root@beaglebone:~# cd /lib/firmware/
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
5: P-O-L-
27
/sys/bus/iio/devices/iio\:device0
9)
cat in_voltage3_raw
3225
Praktikum 4.5
Protokol Serial Programming Interface/SPI
Komunikasi SPI digunakan untuk komunikasi antara 1 IC master dan 1/ lebih IC slave.
Komunikasi ini menggunakan 4 jenis koneksi yakni:
1. MOSI : Master Out Slave In
2. MISO : Master In Slave Out
3. SCLK : Signal Clock
4. CS : Chip Select
Pada modul B3 sendiri komunikasi ini terhubung pada display 7 Segment menggunakan
IC 74HC595 shift register yang langsung terhubung pada header P9. Berikut adalah
gambar rangkaian tersebut:
29
Tujuan Praktikum
1) Mampu menggunakan metode DTOs untuk mengaktifkan protokol komunikasi
serial SPI
2) Mampu membangkitkan karakter angka pada display 7-segment dari modul B3
Alat yang digunakan
1) Modul Embedded System BeagleBone Black
2) PC/Laptop
Tahapan Praktikum
1) Login pada modul B3 seperti pada materi sebelumnya
2) Masuk kedirektory /dev dan periksa apakah spi telah aktif sebagai device node
root@beaglebone:~# ls /dev/*spi*
ls: cannot access /dev/*spi*: No such file or directory
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
31
6) Lalu periksa lagi apakah file node pada direktory /dev/ telah aktif
root@beaglebone:/lib/firmware# ls /dev/*spi*
/dev/spidev2.0
/dev/spidev2.1
Terdapat 2 file node spi yang siap digunakan. Pada rangkaian telah dijelaskan bahwa
7 segment terhubung dengan SPI channel 2
7) Untuk memvalidasi ulang, periksa daftar slot lagi
root@beaglebone:/lib/firmware# cat $SLOTS
0: PF----
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
6: P-O-L-
Praktikum 4.6
Protokol Komunikasi I2C
Untuk membahas materi bab ini pertimbangkan rangkaian I2C pada Cape TK4B3
seperti dalam Gambar.
32
33
Menurut datasheet, DS1307 memiliki alamat tetap 0xD0 (0b1101 0000) atau jika bit
R/W ditiadakan (dengan cara alamat tersebut digeser satu bit ke kanan) maka alamat
DS1307 menjadi 0x68 (0b0110 1000). Adapun alamat 24C256 adalah 0b1010 A2-A1A0-R/W. Tampak dalam gambar tersebut bahwa A0, A1 dan A2 dipullup sehingga
berlogika 1. Tetapi karena A2 dilengkapi
sebagai 0 bila jumper tersebut dipasang. Jadi alamat 24C256 akan bernilai 0b1010 0110
(0xA6) ketika A2=0 atau 0b1010 1110 (0xAE) ketika A2=1. Apabila bit R/W diabaikan
(digeser satu bit ke kanan) maka alamat 24C256 menjadi 0b0101 0011 (0x53) ketika
A2=0 atau 0b0101 0111 (0x57) ketika A2=1.
Ikuti prosedur berikut untuk melakukan pengujian pada protokol komunikasi I2C yang
terkoneksi pada eeprom 24C256:
Tujuan Praktikum
1) Mampu menggunakan metode DTOs untuk mengaktifkan protokol komunikasi
serial I2C
2) Mampu bermkonukasi dengan perangkat EEPROM dan RTC dari modul B3
Alat yang digunakan
1) Modul Embedded System BeagleBone Black
2) PC/Laptop
Tahapan Praktikum
1) Login pada modul B3 seperti pada materi sebelumnya
2) Install terlebih dahulu i2c-tools
root@beaglebone:~#
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
34
-1
1: PF----
-1
2: PF----
-1
3: PF----
-1
4: P-O-L-
7) Periksa juga apakah device node telah aktif pada direktori /dev
root@beaglebone:/dev# ls i2c-* -l
crw-rw---- 1 root i2c 89, 0 Aug 29 06:18 i2c-0
crw-rw---- 1 root i2c 89, 1 Aug 29 06:23 i2c-1
crw-rw---- 1 root i2c 89, 2 Aug 29 06:18 i2c-2
root@beaglebone:/dev#
8) Terdapat 3 channel i2c yang telah aktif. Tahap pertama adalah dengan mendeteksi semua
perangkat i2c yang terhubung ke bus:
root@beaglebone:/dev# i2cdetect -l
i2c-0 i2c
I2C adapter
i2c-1 i2c
I2C adapter
i2c-2 i2c
I2C adapter
9) Periksa kondisi slots setelah penambahan dan selanjutnya adalah memeriksan setiap
channel yang terkoneksi dengan slave chip yang aktif:
root@beaglebone:/lib/firmware# i2cdetect -y -r 0
0
00:
-- -- -- -- -- -- -- -- -- -- -- -- --
35
Terlihat pada channel 0 terhubung dengan sebuah chip I2C. Tanda - - artinya alamat
device telah dicek namun tidak terdeteksi, sedangkan UU artinya alamat tersebut sudah
terpakai oleh system embedded untuk tujuan yang lain, sehingga tidak dicek lagi. 0X34
artinya adalah perangkat I2C yang terdeteksi oleh sistem pada hardware. Untuk melihat
lebih detail informasi chip/driver yang aktif pada alamat 0x34 tersebut, gunakan
perintah i2cdump, i2cget dan i2cset.
36