Noise Filter Pada Mikrokontroler

Merancang sebuah perangkat otomatis berbasis mikrokontroler tidaklah mudah, salah satu kendalanya yaitu adanya noise yang mengganggu kinerja mikrokontroler atau biasa disebut EMI (Electromagnetic Interference).

Pernahkan rangkaian mikrokontroler anda tiba-tiba error, hang, program tiba-tiba tidak berjalan sebagaimana mestinya. Ketika dicoba dirumah berjalan dengan baik dan sempurna akan tetapi ketika dibawa kelain tempat misalnya di pabrik dengan mesin-mesin besar yang sedang berjalan tiba-tiba rangkaian anda error. Atau seringkali dimanapun dicoba rangkaian mikrokontroler anda cendrung tidak stabil.

Jika anda mengalami hal di atas, berarti anda berhadapan dengan yang dimaksud dengan EMI. Apa itu EMI?

EMI (Electromagnetic Interference) adalah gangguan berupa gelombang elektromagnetik yang berasal dari sumber tegangan, seperti electric power, peralatan elektronik, motor listrik dll terhadap peralatan yang ada disekitar gelombang elektromagnetik tersebut.

Bagaimana EMI bisa sangat mempengaruhi mikrokontroler?

Mikrokontroler akan dapat bekerja dengan baik dan stabil apabila supply tegangan juga bekerja dengan stabil. tidak hanya nilai tegangannya tetapi juga harus bebas dari gangguan frekuensi luar. Gambar diatas sangat terlihat sumber tegangan yang terkena interferensi dan sumber tegangan yang baik.

Bagaimana cara menanggulangi EMI pada mikrokontroler?

1. Memasang EMI filter sebelum power supply
Cara ini terbilang yang paling praktis dalam hal ini karena tidak perlu merubah rangkaian mikrokontroler anda. anda bisa memasang produk emi filter sebelum power supply mikrokontroler anda. akan tetapi cara ini menurut saya tidak ekonomis, 

2. Menambahkan rangkaian filter pada rangkaian Power Supply.
Cara ini cukup praktis terutama jika anda membuat rangkaian mikrokontroler sendiri. anda cukup rangkaian ini setelah regulator.

3. Memasang chip EMI filter pada rangkaian
Cara ini yang paling banyak di pakai dalam rangkaian mikrokontroler, selain praktis dan ekonimis EMI filter dalam bentuk chip ini sangat efektif dan presisi. anda cukup memasang chip emi filter pada Vcc dan Gnd rangkaian power supply mikrokontroler anda.
Chip EMI Filter


Semoga bermanfaat.

Migrasi ATMEGA16/32 ke ATMEGA16A/32A

Dalam rangka mengoptimalkan proses manufaktur dan untuk mengurangi konsumsi daya, versi yang telah dioptimalkan dari  mikrokontroler ATMEGA16 adalah ATmega16A, dengan fungsi dan fitur yang identik sama dan merupakan pengganti ATMEGA16. Semua fitur dan set instruksi yang sama namun memiliki karakteristik kelistrikan yang berbeda.
Berikut tabel komparasi perbedaan tersebut :

1. Konsumsi Arus Listrik


2. Reset Pull Up


Membuat PCB Single Layer Dengan Diptrace

Pada kesempatan kali ini saya ingin menunjukan langkah-langkah membuat skema rangkaian (schematic) dan langsung merubahnya kedalam PCB Layout single layer dengan memanfaatkan fungsi autorouter. sehingga proses penjaluran PCB secara otomatis. Semoga bermanfaat..

Jenis-Jenis Mikrokontroler

Mikrokontroler adalah sebuah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O.



Jenis – jenis Mikrokontrol:

Atmel
Atmel AT91 series (ARM THUMB architecture)
AT90, Tiny & Mega series – AVR (Atmel Norway design)
Atmel AT89 series (Intel 8051/MCS51 architecture)

Microchip
Low End, Mikrokontroler PIC 12-bit
Mid Range, Mikrokontroler PIC 14-bit
(PIC16F84, PIC16F877)
16-bit instruction PIC
High End, Mikrokontroler PIC 16-bit

Philips Semiconductors
LPC2000, LPC900, LPC700

Penggunaan microcontrol

Sistem mikrokontroler lebih banyak melakukan pekerjaan-pekerjaaan sederhana yang penting seperti mengendalikan motor, saklar/relay, resistor variabel, atau perangkat elektronis lain. Seringkali satu-satunya bentuk antarmuka yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED, bahkan ini pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian.


Alat - Alat pemrograman microcontrol


Untuk membuat suatu aplikasi AVR, perlu beberapa tool yang harus
disiapkan. Tool-tool tersebut diperlukan untuk menjalankan tahap-tahap pemrograman AVR. Pada dasarnya, terdapat tiga tahap utama yang perlu dikerjakan dalam pemrograman AVR, yaitu:


Penulisan / Editing
Asembling dan Debuging
Programming/Downloading/Burning
Alat yang dibutuhkan :
Kit Microcontroller / Trainer Microcontroller
Software Assembler
Programmer/downloader

Bahasa Pemrograman yang sering digunakan :
Assembler ( AVR Studio 4 )
Bahasa C (ext. WinAVR)
Setiap bahasa memiliki kelebihan dan kekurangannya masing-masing. Bahasa assembler dituliskan dengan detail setiap langkah yang dijalankan, sehingga penulisanya relatif lebih panjang. Pemrogram harus mengetahui benar proses yang terjadi dalam program tersebut. Namun demikian, program assembler sangat cocok dalam hal efisiensi penggunaan memori program. Di sisi lain, bahasa C memiliki kemudahan dalam penulisan program, namun terkadang kode yang dihasilkan akan memakan memori program yang besar.

Pemrograman Assembler


Program assembler berisi mnemonic instruksi, label, dan pengarah assembler (directive). Mnemonic instruksi, label, dan pengarah assembler (directive). Mnemonic instruksi dan pengarah sering kali membutuhkan operan dalam penulisannya. Baris kode dalam penulisan program assembler dibatasi hingga 120 karakter.
Software yang dibutuhkan :
AVR Studio 4
Digunakan untuk menulis kode program dan mengcompile kode yang selanjutnya siap untuk didownload ke chip micro.
Ponyprog 2000
Digunakan untuk downloader hasil compile dari AVR Studio kedalam chip micro.

Struktur dasar micro
Terdiri atas :
General purpose register ( R0 – R31) untuk operasi aritmetika
I/O Register ( Register Untuk Input Output )
Port I/O

Register adalah media penyimpanan dengan kapasitas 8 bit.
Register dapat diisidengan bilangan dari 0 sampai 255 atau dengan bilangan
Hexadecimal dari $00 sampai $FF

Cara memulai belajar pemrograman bisa dilihat disini.



Contoh kode :
Output sederhana .
Tuliskan pada editor AVR Studio.


;My Very First AVR Project
.include “2313def.inc" ;Memasukan file definisi 2313 kedalam program
.def Temp = R16 ; mendefinisikan R16 dengan nama Temp
rjmp RESET ;melompat ke label RESET
RESET: ;Reset Label
ldi Temp, $FF ; Mengisi Temp dengan bilangan $FF
out DDRB, Temp ;Mengeset PORTB sebagai Output
Loop: ;Loop Label
ldi Temp, $0F ; Mengisi Temp dengan bilangan $0F
out PORTB, Temp ; outputkan nilai Temp ke PORTB
rjmp Loop ;melompat ke label Loop


Contoh kode :
Input sederhana .
Tuliskan pada editor AVR Studio.

;My Very First AVR Project
.include “2313def.inc" ;Memasukan file definisi 2313 kedalam program
.def Temp = R16 ; mendefinisikan R16 dengan nama Temp
rjmp RESET ;melompat ke label RESET
RESET: ;Reset Label
ldi Temp, $00 ;Mengisi Temp dengan bilangan $00
out DDRD, Temp ;mengeset PORTD sebagai Input
ldi Temp, $FF ; Mengisi Temp dengan bilangan $FF
out DDRB, Temp ;Mengeset PORTB sebagai Output
LOOP:
sbis PIND,0 ;Lewati perintah selanjutnya jika PIND bit 0 Kondisi HIGH
rcall NYALA ;Memanggil Instruksi dalam label NYALA
sbis PIND,1 ;Lewati perintah selanjutnya jika PIND bit 1 Kondisi HIGH
rcall MATI ;Memanggil Instruksi dalam label MATI
rjmp LOOP ;Melompat ke label LOOP
NYALA:
sbi PORTB,0 ;Mengeset HIGH pada PORTB bit 0
ret ;Return / Kembali
MATI:
cbi PORTB,0 ;Mengeset LOW pada PORTB bit 0
Ret ;Return / Kembali


Contoh kode :
Delay.
Tuliskan pada editor AVR Studio.

.include “2313def.inc"
.def Temp = R16
rjmp RESET
RESET: ldi TEMP,low(RAMEND)
out SPL,TEMP
ldi Temp, $FF
out DDRB, Temp
LEDBLINK: ldi Temp,$0F
out PORTB,Temp
rcall DELAY
ldi Temp,$F0
out PORTB,Temp
rcall DELAY
rjmp LEDBLINK
DELAY: ldi R17, $48
WGLOOP0: ldi R18, $BC
WGLOOP1: ldi R19, $C4
WGLOOP2: dec R19
brne WGLOOP2
dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
ldi R17, $02
WGLOOP3: dec R17
brne WGLOOP3
nop
nop
ret