• Tidak ada hasil yang ditemukan

Praktikum Perancangan Komponen Terprogram

N/A
N/A
Rama Wisnu

Academic year: 2023

Membagikan "Praktikum Perancangan Komponen Terprogram"

Copied!
11
0
0

Teks penuh

(1)

P3 Rangkaian ADC,DAC,I2C, dan LPF

RAMA WISNU WIRANANDA 5022201017

Praktikum

Perancangan Komponen Terprogram

(2)

Data Percobaan Percobaan 1

- ADC

Tegangan PSU (0 - 5 V) Nilai ADC

0,5 403

1 816

1,5 1229

2 1638

2,5 2049

3 2451

3,5 2459

4 3266

4,5 3682

5 4098

Percobaan 2 - DAC dan I2C

Frekuensi I2C Foto Sinyal Output

400 kHz

40 kHz

(3)

4 kHz

400 Hz

40 Hz

Percobaan 3

- Low Pass Filter (LPF)

Sinyal Asli Frekuensi Cut off Sinyal Hasil

100 Hz

(4)

Pembahasan

Pada praktikum modul P3 yang berjudul ADC, DAC, I2C, dan LPF ini dilakukan 3 kali percobaan, percobaan pertama mengenai ADC atau analog to digital converter dengan mengkonfigurasi terlebih dahulu ADC dan mensetting parameter ADC, kemudian nilai ADC kan dikonversikan nilainya dari 12 bit menjadi 16 bit dengan tiap 4 bitnya akan mewakili 1 digit dari nilai secara keseluruhan, dari pengkonversian 4 bit tersebut selanjutnya akan dikonversikan lagi menjadi 7 bit untuk 7 segmennya. Hasil yang didapatkan dapat dilihat pada table data praktikum percobaan 1, ketika tegangan input 0,5V akan menghasilkan nilai ADC 403, 1V = 816, 1,5V = 1229, 2 = 1638, 2,5V = 2049, 3V = 2451, 3,5V = 2459 dan seterusnya.

Dapat dilihat bahwa semakin besar tegangan input maka semakin tinggi nilai ADC. Pada tabel dan percobaan dapat dikatakan sudah sesuai dengan hasil pengukuran ADC., namun terdapat toleransi pada hasil sehingga nilai yang didapatkan tidak sama persis dengan perhitungan.

Kemudian percobaan kedua mengenai DAC dan I2C yaitu digital to analog converter yang akan mengeluarkan output sinyal tegangan ke osiloskop agar dapat dilihat bentuknya dengan menggunakan pengiriman I2C. Pada percobaan ini dilakukan percobaan untuk menguji Digital to Analog Converter (DAC) dan Inter-Integrated Circuit (I2C) dengan input frekuensi I2C 400kHz, 40kHz, 4kHz, 400Hz, 40Hz. Hasil yang didapatkan dapat dilihat pada table data praktikum percobaan 2, dimana semakin besar frekuensi yang diberikan maka sinyal yang dihasilkan akan menunjukkan bentuk analog sedangkan ketika frekuensi yang diberikan lebih rendah sinyal yang didapatkan akan lebih menunjukkan bentuk sinyal digitalnya.

Terakhir yaitu percobaan ketiga mengenai LPF atau Low Pass Filter dengan

memberikan frekuensi cut off agar sinyal yang didapatkan lebih halus tanpa ada noise. Hasil

yang didapatkan dapat dilihat pada table data praktikum percobaan 3. Dari percobaan yang

dilakukan, diberikan sinyal dengan frekuensi 500 Hz yang masih memiliki noise lalu dilakukan

pemfilteran hingga frekuensi 100 Hz untuk mendapatkan sinyal yang halus tanpa ada noise.

(5)

Kesimpulan

Dari praktikum PKT modul 3 yang membahas mengenai “Analog to Digital

Converter(ADC), Digital to Analog Converter(DAC), Inter-Integrated Circuit(I2C), Low Pass

Filter(LPF)” ini bertujuan untuk memahami sistem ADC pada Field Programmable Gate Array

(FPGA) DE10-Lite ini dapat diambil kesimpulan FPGA dapat melakukan ADC dan DAC serta

dengan I2C untuk menampilkan sinyal yang dibangkitkan. Dengan menggunakan ADC, nilai

inputnya akan diubah menjadi nilai biner. Pada Digital to Analog Converter dengan

menggunakan I2C, sinyal yang didapatkan akan semakin berbentuk digital sempurna ketika

frekuensi yang diberikan lebih rendah. Low Pass Filter juga dapat dilakukan pada FPGA

dengan frekuensi yang rendah untuk mendapatkan sinyal yang halus tanpa noise.

(6)

Lampiran Percobaan 1

- ADC

(Kode Program)

library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all;

use IEEE.numeric_std.all;

entity konfigurasi_adc is port(

-- IO UNTUK ADC -- clk : in std_logic;

rst : in std_logic;

-- IO UNTUK 7 SEGMENT --

seg_0 : out std_logic_vector(6 downto 0); seg_1 : out std_logic_vector(6 downto 0); seg_2 : out std_logic_vector(6 downto 0);

seg_3 : out std_logic_vector(6 downto 0)

);

end konfigurasi_adc;

architecture data_flow of konfigurasi_adc is

Signal signal_CH0 : std_logic_vector(11 downto 0); -- readings.CH0 Signal signal_CH1 : std_logic_vector(11 downto 0); -- .CH1 Signal signal_CH2 : std_logic_vector(11 downto 0); -- .CH2 Signal signal_CH3 : std_logic_vector(11 downto 0); -- .CH3 Signal signal_CH4 : std_logic_vector(11 downto 0); -- .CH4 Signal signal_CH5 : std_logic_vector(11 downto 0); -- .CH5

Signal signal_CH6 : std_logic_vector(11 downto 0); -- .CH6 Signal signal_CH7 : std_logic_vector(11 downto 0); -- .CH7

component ADCx is port (

CLOCK : in std_logic := '0'; -- clk.clk

CH0 : out std_logic_vector(11 downto 0); -- readings.CH0 CH1 : out std_logic_vector(11 downto 0); -- .CH1 CH2 : out std_logic_vector(11 downto 0); -- .CH2 CH3 : out std_logic_vector(11 downto 0); -- .CH3 CH4 : out std_logic_vector(11 downto 0); -- .CH4 CH5 : out std_logic_vector(11 downto 0); -- .CH5 CH6 : out std_logic_vector(11 downto 0); -- .CH6 CH7 : out std_logic_vector(11 downto 0); -- .CH7 RESET : in std_logic := '0' -- reset.reset

);

end component ADCx;

----KONVERSI 12 BIT MENJADI 16 BIT----

component bin_a_bcd_12 is

port( bin : in STD_LOGIC_VECTOR (11 downto 0); bcd : out

STD_LOGIC_VECTOR (15 downto 0)

);

end component bin_a_bcd_12;

(7)

Gambar 1.1 (Pengujian ADC) Gambar 1.2 (Pengujian ADC) Gambar 1.3 (Pengujian ADC)

signal output_16_bit : STD_LOGIC_VECTOR (15 downto 0);

---KONVERSI 4 bit MENJADI 7 BIT UNTUK 7 SEGMENT---

component hex7seg is

port( x : in STD_LOGIC_VECTOR (3 downto 0); y : OUT

STD_LOGIC_VECTOR (6 downto 0)

);

end component hex7seg;

begin

adc2: ADCx port map (

clk,

signal_CH0, signal_CH1, signal_CH2, signal_CH3,

signal_CH4, signal_CH5, signal_CH6, signal_CH7,

not rst

);

bcd_conversion : bin_a_bcd_12 port map ( signal_ch0,

output_16_bit

);

digit_ke_0 : hex7seg port map ( output_16_bit(3 downto 0), seg_0 );

digit_ke_1 : hex7seg port map ( output_16_bit(7 downto 4), seg_1 );

digit_ke_2 : hex7seg port map ( output_16_bit(11 downto 8), seg_2 );

digit_ke_3 : hex7seg port map ( output_16_bit(15 downto 12), seg_3 );

end data_flow;

(Output)

(8)

Percobaan 2 - DAC dan I2C (Kode Program)

IEEE.std_logic_unsigned.all;

use IEEE.numeric_std.all;

entity i2c is port(

clk : in std_logic;

rst : in std_logic;

seg_0 : out std_logic_vector (6 downto 0); seg_1 : out std_logic_vector (6 downto 0); seg_2 : out std_logic_vector (6 downto 0); seg_3 : out std_logic_vector (6 downto 0);

PSDA : inout std_logic;

PSCL : inout std_logic;

EN_A : in std_logic

);

end i2c;

architecture data_flow of i2c is

SIGNAL SCH0 : std_logic_vector(11 downto 0); -- readings.CH0 SIGNAL SCH1 : std_logic_vector(11 downto 0); -- .CH1 SIGNAL SCH2 : std_logic_vector(11 downto 0); -- .CH2 SIGNAL SCH3 : std_logic_vector(11 downto 0); -- .CH3 SIGNAL SCH4 : std_logic_vector(11 downto 0); -- .CH4 SIGNAL SCH5 : std_logic_vector(11 downto 0); -- .CH5

SIGNAL SCH6 : std_logic_vector(11 downto 0); -- .CH6 SIGNAL SCH7 : std_logic_vector(11 downto 0); -- .CH7

component ADCx is port (

CLOCK : in std_logic := '0'; -- clk.clk

CH0 : out std_logic_vector(11 downto 0); -- readings.CH0 CH1 : out std_logic_vector(11 downto 0); -- .CH1 CH2 : out std_logic_vector(11 downto 0); -- .CH2 CH3 : out std_logic_vector(11 downto 0); -- .CH3 CH4 : out std_logic_vector(11 downto 0); -- .CH4 CH5 : out std_logic_vector(11 downto 0); -- .CH5 CH6 : out std_logic_vector(11 downto 0); -- .CH6 CH7 : out std_logic_vector(11 downto 0); -- .CH7 RESET : in std_logic := '0' -- reset.reset

);

end component ADCx;

(9)

component bin_a_bcd_12 is

port( bin : in STD_LOGIC_VeCTOR (11 downto 0); bcd : out

STD_LOGIC_VeCTOR (15 downto 0)

);

end component bin_a_bcd_12;

SIGNAL output_16_bit : STD_LOGIC_VECTOR (15 downto 0);

SIGNAL vbusy : std_logic;

SIGNAL ack_err : std_logic;

SIGNAL data_read : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; component i2c_master is

GENERIC(

input_clk : INTEGER := 10_000_000; --input clock speed from user logic in Hz bus_clk : INTEGER :=

400_000); --speed the i2c bus (scl) will run at in Hz

port(

clk : IN STD_LOGIC; --system clock reset_n : IN STD_LOGIC; --active low reset

ena : IN STD_LOGIC; --latch in command

addr : IN STD_LOGIC_VECTOR(6 DOWNTO 0); --address of target slave rw : IN STD_LOGIC; --'0' is write, '1' is read

data_wr : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --data to write to slave data_wr_1 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --data to write to slave busy : OUT STD_LOGIC; - -indicates transaction in progress data_rd : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --data read from slave ack_error : BUFFER STD_LOGIC; --flag if improper acknowledge from slave

sda : INOUT STD_LOGIC; --serial data output of i2c bus scl : INOUT STD_LOGIC --serial clock output of i2c bus

);

end component i2c_master;

component hex7seg is

port( x : in STD_LOGIC_VECTOR (3 downto 0); y : out STD_LOGIC_VECTOR (6 downto 0)

);

end component hex7seg;

begin

adc_x: ADCx port map(

clk, -- clk SCH0, -- readings.export SCH1, -- .export

SCH2, -- .export

SCH3, -- .export SCH4, -- .export SCH5, -- .export

SCH6, -- .export SCH7, -- .export

not rst

(10)

);

bcd_conversion : bin_a_bcd_12 port map (

sCH0,

output_16_bit

);

digit_0 : hex7seg port map( output_16_bit(3 downto 0),

seg_0

);

digit_1 : hex7seg port map( output_16_bit(7 downto 4),

seg_1

);

digit_2 : hex7seg port map( output_16_bit(11 downto 8),

seg_2

);

digit_3 : hex7seg port map( output_16_bit(15 downto 12),

seg_3

);

i2c : i2c_master port map (

clk, rst, EN_A,

"1100000",

'0',

"0000" & SCH0 (11 downto 8), SCH0(7 downto 0),

vbusy,

data_read,

ack_err,

PSDA,

PSCL

);

end data_flow;

(Output)

L

Gambar 2.1 (Pengujian DAN dan i2C) Gambar 2.2 (Pengujian DAN dan i2C) Gambar 2.3 (Pengujian DAN dan i2C)

(11)

Percobaan 3

- Low Pass Filter (LPF)

(Output)

Gambar 3.1 Pengujian LPF Gambar 3.2 Pengujian LPF Gambar 3.3 Pengujian LPF

Referensi

Dokumen terkait

EFEKTIVITAS PENGGUNAAN MEDIA PEMBELAJARAN CST STUDIO SUITE UNTUK PRAKTIK PERANCANGAN FILTER ANALOG FREKUENSI TINGGI PADA PRAKTIKUM TELEKOMUNIKASI DI DEPARTEMEN PENDIDIKAN TEKNIK

untuk dikuatkan. Sinyal analog yang dihasilkan oleh penguat akan masuk ke ADC untuk dirubah menjadi sinyal digital agar mudah diproses oleh MCU. Sinyal-sinyal dari

Dari hasil percobaan dapat dilihat bahwa sinyal amplitudo hasil modulasi akan.. selalu mengikuti

Percobaan Filter Sinyal Digital dengan FIR Bandpass Pada percobaan filter FIR bandpass diberikan sinyal pertama dengan frekuensi 2 kHz, sedangkan pada sinyal kedua

 Untuk percobaan A didapat hasil eksperimen yang menunjukkan bahwa besar frekuensi pada audio generator yang sebelumnya telah ditentukan sesuai dengan hasil

Catat hasil pengukuran sinyal output (frekuensi dan amplitudo) dari Stereo Power Amplifier pada tabel praktikum dan gambarkan bentuk gelombangnya sesuai dengan

Pada sebuah sistem PCM input sinyal berupa sinyal analog yang diproses terlebih dahulu dengan Pulse Amplitude Modulation untuk mengubah sinyal analog kontinue

Hubungan antara kecepatan sampling (juga dapat disebut sebagai frekuensi sampling) dengan frekuensi maksimum sinyal input yang masuk akan anda pelajari pada praktikum ini..