USB Programlayıcı (Revizyon 2)


Fischl'ın orijinal devresinde bulunan 3V6'lık Zener diyotlar benim devremde bulunmuyordu, bazı bigisayarlar bu yüzden programlayıcıyı tanımıyordu. Devreye iki adet Zener diyot eklenerek bu sorun giderilmiştir.

Modern dizüstü bilgisayarlarda genel olarak seri ya da paralel port bulunmadığı için uzun zamandır bir USB Programlayıcıyı yapmayı düşünüyordum. Sonunda USBasp Projesinde (www.fischl.de) karar kıldım. Şu ana kadar Atmega8 ve Atmega128 ile yaptığım deneyler başarıyla sonuçlandı, üstelik etkileyici bir programlama hızına sahip. Programlayıcı Linux, Windows ve Mac OS X ile çalışıyor ve firmware özgür yazılım lisansıyla (GPL) dağıtılmaktadır. USB protokolü yazılımla gerçekleştirildiğinden ayrı bir entegre kullanılmamaktadır.

WinAVR ile gelen AVRDude programıyla Programmer's Notepad'in içinden derlediğiniz programı doğrudan işlemciye yükleyebilirsiniz. LibUsb-Win32 Projesine ait USB kütüphanelerini kullanmaktadır. AVRDude programının görsel bir ara yüzü yoktur, ancak komut satırlarıyla arası iyi olmayanlar için iyi bir haber var: AVR8 Burn-O-Mat programı AVRDude için geliştirilmiş ücretsiz bir grafik ara yüzüdür.


Kurulum

Devreyi çalıştırmak için gerekli tüm dosyaları ve örnek bir programı proje dosyasında bulabilirsiniz. Örnek programımız bir PB0 portuna bağlı olan LED'i yakıp söndüren basit bir program, burada dikkat etmeniz gereken nokta Make dosyasında AVRDude ile ilgili olarak yapılan değişikliklerdir. Make dosyasının Programlama Seçenekleri (Programming Options) kısmında aşağıdaki iki satırda yaptığımız değişikliğe dikkat edin;

#---------------- Programming Options (avrdude) ----------------
AVRDUDE_PROGRAMMER = usbasp
AVRDUDE_PORT = USB

bu iki satırda programlayıcımızın tipinin usbasp, programlama portunun ise usb olduğunu belirtiyoruz. Programmer's Notepad içinden USBasp ile programlamanın nasıl yapıldığını görmek için tıklayın. Burn-O-Mat

Sigorta Ayarları

İşlemci programlanırken sigorta ayarları şu şekilde olmalıdır:

HFUSE=0xC9 (1100 1001) / LFUSE=0x9F (1001 1111)
RSTDISBL
WDTON
SPIEN
CKOPT
EESAVE
BOOTSZ1
BOOTSZ0
BOOTRST
1
1
0
0
1
0
0
1
BODLEVEL
BODEN
SUT1
SUT0
CKSEL3
CKSEL2
CKSEL1
CKSEL0
1
0
0
1
1
1
1
1

AVR8 Burn-O-Mat

Eğer programlama işini Burn-O-Mat ile görsel olarak yapacaksanız Make file ile uğraşmanıza gerek yok. Burn-O-Mat ile programlamanın ne kadar kolay yapıldığını izlemek içi tıklayın. Burn-O-Mat

Programlayıcıyı devreye bağlarken, 2x5 pinlik erkek soketin bağlantılarını Resim 3'de görüldüğü gibi yapın. (Resim 3: Standart ISP bağlantısı üsten görünüş)

Köprüler (Jumpers)

 
JP1
Takılıyken programlama saat hızı (SCK) 1.5 Mhz olarak, boşta iken 8Mhz olarak seçilir. Programlanan işlemcinin düşük kristal hızında çalışması halinde, düşük SCK hızı kullanılır.

İlgili Linkler

USBasp Projesi
LibUSB-Win32
AVR8 Burn-O-Mat

Proje Dosyaları

Proje Dosyaları