Sabtu, 08 Januari 2011

CodeVisionAVR v2.05.0

V2.05.0 Commercial Release
  • added ADC support for ATxmega chips in the CodeWizardAVR
  • added support for the ATmega8U2, ATmega16U2, ATmega32U2, ATmega32A chips in the C Compiler, CodeWizardAVR and Programmer
  • added support for the USB controller of the AT90USB82, AT90USB162, ATmega16U4 and ATmega32U4 chips in the CodeWizardAVR
  • added a new alphanumeric LCD library (alcd_ks0073.h) for the Samsung KS0073 controller
  • improved configuration settings for ATxmega EBI SDRAM mode
  • disabled the possibility to specify the SCK clock rate for SPI slave mode in the CodeWizardAVR for non-ATxmega devices
  • added code to clean up NVM controller command register after EEPROM write for ATxmega chips
  • fixed: when the EBI was configured in SDRAM 3P mode, the upper 4 bits of PORTJ were not set as outputs for address lines A8..A11
  • fixed: functions with __reset attribute were removed by the linker
  • fixed: added code to ensure that RAMPX=0 after clearing/initializing more than 65535 bytes of RAM in the start-up code for the ATxmega chips
  • added the missing definitions of EBI_SDCAS_bm, EBI_SDROW_bm and EBI_CS_SDSREN_bm used by the start-up code during EBI initialization for ATxmega chips
  • corrected SP initialization for ATxmega chips when calling functions with __reset attribute and external RAM enabled
  • fixed: the compiler could produce incorrect code (hardware stack unbalance) when adressing structure members in complex expressions using pointers, if the member's offset is higher than 64-sizeof(member)
  • fixed: because the ATxmega registers are not mapped to RAM, like in the rest of the AVR chips, the addresses of global variables allocated to registers R2..R14, obtained using the & operator, were not correctly passed as function arguments
  • fixed: the CodeWizardAVR for ATxmega chips incorrectly set the upper 4 bits of the USART BAUDCTRLB register for negative values of BSCALE
  • corrected the signature for the ATtiny4313 chip in the programmer
  • added new ATxmega ADC examples in the \EXAMPLES ATxmega\ADC directory
  • updated the Help topics: CodeVisionAVR C Compiler Reference|Accesing the I/O Registers and CodeVisionAVR C Compiler Reference|Bit Level Access to the I/O Registers with ATxmega specific examples
CodeVisionAVR 2.5.0

Kamis, 30 Desember 2010

USB AVRISP mkII In-System Programmer

AVRISP MKII adalah salah satu programmer mikrokontroler AVR yang menggunakan interface USB.
Perangkat ISP ini sangat memudahkan bagi pembuat rangkaian-rangkaian berbasis mikrokontroler AVR karena sudah menggunakan interface USB dan support untuk kompiler CodevisionAVR (CVAVR) dan AVRStudio.

Rangkaian untuk membuat perangkat ini adalah sebagai berikut :


Setelah membuat rangkaian tersebut dalam PCB, mikrokontroler ATMEGA8 diisikan firmware berikut :


unduh firmware di sini

Untuk memasang driver pada winXP, pasang driver berikut :

unduh driver winXP di sini

Kamis, 16 Desember 2010

Sensor Cahaya dengan Komparator Histerisis

A.   Latar Belakang
Sensor fotodioda digunakan sebagai penangkap intensitas cahaya. Tegangan keluaran sensor fotodioda masih dalam bentuk tegangan analog, sehingga untuk mengubahnya menjadi digital dapat menggunakan rangkaian ADC (Analog to Digital Converter) atau rangkaian komparator.
Penggunaan rangkaian komparator akan mengubah tegangan analog menjadi digital 1-bit. Penggunaan komparator dengan histerisis akan memberikan dua buah tegangan pembanding atau tegangan referensi. Sehingga setiap tegangan input akan dibandingkan dengan dua buah tegangan referensi tersebut.

B.   Tujuan
Tujuan dari rangkaian ini adalah menghasilkan tegangan digital 1-bit dari sensor cahaya menggunakan komparator yang mempunyai dua buah tegangan pembanding.

C.   Landasan Teori
1.    Schmitt Trigger
Schmitt trigger adalah jenis komparator dengan dua tegangan pembanding yang berbeda (Threshold voltage). Saat tegangan input melebihi tegangan batas atas (high threshold) maka tegangan komparator akan bernilai high pada model non-inverting input atau low pada model inverting input. Tegangan output akan bernilai tetap sampai tegangan input berada di bawah tegangan batas bawah (low threshold). Saat tegangan input berada di bawah tegangan batas bawah, maka tegangan ouptut akan berubah dari keadaan sebelumnya. Kondisi tegangan output high atau low bernilai mendekati tegangan positif atau negatif dari catu daya yang digunakan pada komparator [1]. Gambar 1. Menunjukkan grafik perubahan tegangan output terhadap tegangan input pada rangkaian Schmitt Trigger.
Gambar 1.
2.    Sensor Cahaya
Sensor cahaya adalah alat yang digunakan untuk merubah besaran cahaya menjadi besaran listrik. Prinsip kerja dari sensor cahaya adalah mengubah energi dari foton menjadi elektron. Sebagai pemancar (transmitter) menggunakan LED (Light-Emitting Diode) ultrabright, sedangkan sebagai penerima (receiver) cahaya dapat menggunakan LDR, fototransistor atau fotodioda. [2]

D. Gambar Rangkaian

E. Analisa Rangkaian
Arus yang mengalir pada LED adalah ±10 mA. Sehingga dengan tegangan catudaya 5 Volt diperlukan resistansi sebesar :

R_LED=VCC/I_LED
R_LED=(5 V)/(10 mA)=500 Ω

Karena resistor yang bernilai 500 Ω dipasaran tidak ada, maka nilai resistor yang mendekati adalah 560 Ω.
R1 (22k) membentuk rangkaian pembagi tegangan dengan fotodioda. Sehingga tegangan keluaran hasil pembacaan sensor diumpankan ke masukan pembalik pada komparator (no.pin 6).
R2 (5k) sebagai resistor variabel yang berfungsi menetapkan tegangan referensi berkisar antara 0 Volt hingga 5 Volt.
Perhitungan dua buah tegangan pembanding adalah sebagai berikut :

Tegangan batas atas (VUT)
V_UT=(n/(n+1)×V_REF )+(V_(out(max))/(n+1))

Dimana n=R4/R3=220k/22k=10 dan VREF = 2 Volt
V_UT=(10/(10+1)×2)+(5/(10+1))=1,81+0,45=2,26 Volt

Tegangan batas bawah (VLT)
V_UT=(n/(n+1)×V_REF )-(V_(out(max))/(n+1))
V_UT=(10/(10+1)×2)-(0/(10+1))=1,81+0=1,81 Volt

Tegangan Histerisis
VH=VUT-VLT
VH=2,26-1,81=0,45 Volt

Tegangan keluaran komparator akan bernilai +Vsat = 5 V saat input komparator bernilai kurang dari VLT. Tegangan keluaran komparator akan bernilai -Vsat = 0 V saat input komparator bernilai lebih dari VUT. Jika tegangan input bernilai diantara dua tegangan tersebut, maka tegangan output yang dihasilkan adalah tegangan output sebelumnya.

F. Daftar Pustaka
[1] Ihyauddin. 2010. Op-Amp Sebagai Komparator. STIKOM Surabaya. Surabaya
[2] Ihyauddin. 2010. Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler. Laboratorium Mikrokontroler STIKOM Surabaya. Surabaya.
[3] Digikey. OP906. (Online). (http://rocky.digikey.com/weblib/Optek/Web%20photos/OP906.jpg, diakses tanggal 28 Nopember 2010).