ATMEL PROGRAMLAMA 8- UsbAsp ile program yükleme

 
 Önceden yazmış olduğumuz led_yakma (_delay_ms() ile olanı) programını   mikrodenetleyicimize yükleyelim.

    Programı yüklemeden önce devremizin kurulu ve usbasp programlayıcımızın gerekli bağlantıları yapılmış olduğundan emin olmalıyız.


Yazmış olduğumuz programı Atmel Studio 7'de açıyoruz. (Programımızın hatasız ve önceden derlenmiş olduğunu farz ediyorum - değil ise önce derleyiniz.) 

Tools ----->> External Tools seçenklerini seçiyoruz.

 


karşımıza  şöyle bir ekran gelecek

 

Burada

Title  : burada  bir isim veriyoruz. örneğin ben usbasp328p dedim.

 


Buraya yazılan isim otomatik olarak  hemen yukarıdaki Menu contents kısmında görülecektir.












Command    :  kullanacağımız program olan avrdude.exe yazıyoruz.






Argument :  buraya  -c usbasp -p m328p -U flash:w: yazıp hemen devamında boşluk bırakmadan yan taraftaki ok işaretine basarak önce TargetDirectory  sonra TargetName 'i seçiyoruz.


 

 yaptığımızda

  -c usbasp -p m328p -U flash:w:$(TargetDir)$(TargetName)

olacak hemen devamına .hex:i yazmalıyız.

son olarak Argument  : -c usbasp -p m328p -U flash:w:$(TargetDir)$(TargetName).hex:i olmalı

bu şekilde Atmel Studio'ya  programlayıcımızın (-c usbasp ) usbasp , programlanacak mikrodenetleyicinin atmega328p  (-p m238p), programlama işleminin flash'a yazma (-U flash:w:)şeklinde olduğunu ve hedef hex dosyasının ($(TargetDir)$(TargetName).hex:i) ne olduğunu belirtmiş oluyoruz.




 Use Output window seçeneğini seçiyoruz. böylece yükleme sonuçlarını Atmel Studio'nun  Output kısmında görebiliriz.

Önce Apply ardından OK 'ye basıyoruz ve  External Tools ekranı kapanıyor.

Tekrar Tools menusune giriyoruz.  Bu sefer karşımıza biraz önce title kısmında yazdığımız usbasp328p seçeneği çıkıyor. Bu seçeneği seçtiğimizde yükleme işlemimiz yapılıyor. Yükleme sonucunu output kısmında görebiliyoruz.





devremiz üzerinde led'imizin yanıp söndüğünü görüyorsak yükeleme işlemini başarı ile yapmışız demektir. Bu konuda herhengi bir sigorta ve osialtör ayarı yapmadık. Atmega 328p'nin default ayarlarını kullandık. İlerki konularda yükleme sırasında bu tür ayarlamaları da yapacağız.





Yorumlar

  1. yöntem usbtiny için de geçerli,"usbasp" yazan yerleri "usbtiny" olarak değiştirin.

    YanıtlaSil
  2. usbtiny kullanmadım ama sipariş verdim ebay dan gelecek inşallah. o zaman denerim teşekkür ederim :)

    YanıtlaSil
  3. elimde klon avrisp mkii var, plastik kabı çatladı. sırf onun için 8 dolara USBTinyISP aldım. plastik kap tek satılıyor (2-3 dolar) ama DHL mi EPS mi ne 20-30 dolar kargo tutuyor. satıcıya mesaj attım olumsuz cevap verdi. satış adedi zaten "0". sonrasında kabı için aldığım ürün bu; http://www.ebay.com/itm/USBtinyISP-V4-AVR-ISP-Programmer-with-Reliable-Plastic-Enclosure-/330824700564?hash=item4d06b05294:m:mTSTddO1WY-YjyNQu2TCNFg
    ara sıra programlanacak devreyi bağlayınca kendini kapatıyor (3-5 defada bir)
    AVRISP MK2 (klon) hızlı ve sorunsuz firmware upgrade oluyor.PicProjede mod konusunu da anlatmıştım; http://www.picproje.org/index.php/topic,62435.0.html

    YanıtlaSil
  4. mesajlarımı okudum da sanki çok şey biliyormuş gibi olmuş :) herşeyi yeni öğreniyorum ve siten çok faydalı, arada konu ile ilgili yorumları yazıcam. Kolay gelsin..

    YanıtlaSil
  5. ilk başlarda ben de AVRISP MK2 almayı düşünüyorduma ama fiyatı ahalı geldi. usbasp ucuzdu alıp deneyeyim dedim hoşuma gitti onunla devam ediyorum. şimdilik bana yetiyor.

    yorum yazarsanız sevinirim.özellikle eksik veya yanlış gördüğünüz noktaları belirtirseniz faydalı olur.

    YanıtlaSil
  6. barış bey aldıgım usb asp ile program yükleyemiyorum. yukardaki işlemleri yaptım, 328 ile bağlantıları kontrol ettim fakat program cannot set sck period rc = -1 hatası veriyor. usb driver falan da güncelledim ama sorunu bulamadım. yardımcı olabilir misiniz.

    YanıtlaSil
    Yanıtlar
    1. iki yerde hata olabilir. biri yukarıda anlattığım yazılımla ilgili kısımları tam yaptığınızdan emin olmalısınız. ikincisi devreyi breadboarda kuruyorsanız bu hatayı alma ihtimaliniz yüksek pinler tam oturmuyor veya gevşeklik oluyor bundan kaynaklanıyordur. Bir diğer nedende atmelin sigorta ayarlarıyla uğraştıysanız yanlış birşeyler yapmış olabilirsiniz. özellikle bazı sigorat ayarlarına dokunmamanız gerekiyor..

      Sil
    2. barış öncelikle tesekkur ederim. daha önce pic ve arduino ile ufak tefek şeyler yaptım.
      usbasp altındaki pinlerle 328 in pinleri arasını avometre ile kontrol ettim bir sorun yok. sigorta ayarlarını bilmiyorum dolayısıyla oynamadım. yazdığınız ayarları aynen yaptım. programlayıcının kartla bağlantısını çıkardığımdada aynı hatayı alıyorum 328 veya usbasp nin bozuk olabilirmi ve windowsun güvenlik ayarları ile ilgili olabilir mi

      Sil
    3. ben board üzerinde program yüklerken tüm bağlantılar doğru olduğu halde bu hatayı alıyordum. programlayıcıdan board tarafında programlayıcıdan gelen kabloları bastırarak program yüklüyordum. programlayıcıdan gelen kablo ile programlama pinleri arasında uzun kablolalama yapmayın. mümkün olduğu kadar programlayıcıdan çıkan kabloyu atmeganın programlama pinlerine yakın bir yere takın.
      windows güvenlik duvarıyla ilgili olduğunu düşünmüyorum . windows veya virüs koruma programlarını kapatıp deneyebilirsiniz.
      ürünlerin bozuk olma ihtimali de olabilir. bunu da yeni bir atmega alıp deneyerek kontrol edebilirsiniz. ama ben hala bağlantı konusunda sıkıntı olduğunu düşünüyorum .Özellikle baord üzerinde işlem yapıyorsanız.

      Sil
  7. barış bey kabloları kısalttım ama sonuç aynı. -F parametresini kullanınca
    avrdude: warning: cannot set sck period. please check for usbasp firmware update
    .
    avrdude: error: programm enable: target doesn't answer. 1
    avrdude: initialization failed, rc=-1
    avrdude: AVR device initialized and ready to accept instructions
    avrdude: Device signature = 0x000000
    avrdude: Yikes! Invalid device signature.
    avrdude: Expected signature for ATMEGA328P is 1E 95 0F
    çıkıyor heralde benim 328 bozuk

    YanıtlaSil
  8. aklıma başka birşey gelmiyor. dediğiniz gibi geriye 328 i değiştirmek kalıyor. sonuç aldığınızda haber verirseniz sevinirim.

    YanıtlaSil
  9. barıs bey uzun zaman oldu ama cevap veriyim dedim. 3. usbasp çalıştı hemde ilk seferde . diğerlerinde ne yanlıştı Anlamadım statik elektrikten falan bozulmus olabilir. İlginiz ve yardımlarınız için teşekkür ederim.

    YanıtlaSil
    Yanıtlar
    1. Teşekkürler kolay gelsin. Büyük ihtimalle usbasp yazılımı ile ilgili de olabilir.

      Sil
  10. Slm arkadaşlar. Ben arduino dip klon r3 un 16u2 cipini mkii olarak programladim. Bu yöntemle baglantilari kurarak arduino bootlarini islemciye yukleyebiliyorum.ancak ben atmega 8 e usbasp boot u yuklemek istiyorm. Elimde hex dosyasi var ancak arduino ide nin listesinde dogal olarak yok. Elimdeki imkanlar sınırlı ancak bu yöntemle yükleneceğini zannediyorm. Konu bilen varsa yardimci olursaniz cak memnun olurum :)

    YanıtlaSil
    Yanıtlar
    1. Kusura bakmayın yorumunuzu yeni gördüm. Fazlasıyla meşguldüm ve blogu ihmal ettim biraz. :( dediğinizi yapabildiniz mi?

      Sil
    2. Yükledim hatta bilgisayarada usbasp olarak tanıttım ancak sanırım sigorta ayarlarını yapamadım bu yüsden usbasp çalışmadı en sonunda da çipi bozdum:( ve halen mağdurum ve başka yollar araştırıyorum. Konuyu bilen arkadaşlardan yardım bekliyorum .

      Sil
    3. Usbasp yi başka cihazlarla çalıştırabildiniz mi? bazı usbasp lerin yazılım versiyonlarının güncellenmesi gerekiyor.

      Sil
  11. Elimdeki son yazılimı 2011 yazılımı.usbasp olarak çalıstirmak istediğim çip ise atmega8a pu idi.okuttugum fuse ise L=0×E1 H=0×D9. Bu aslında fabrika ćıkışı. Olması gereken neydi deneyemedim çünki her kaynak farklı yaziyo.

    YanıtlaSil
    Yanıtlar
    1. iki farkli devrede denedim ama olmadı.ben saadece doğru fuse ayarlarini yükleyemedigimi düşünüyorum. Bi yerinde 8mhz secimi yaptim yükledim ve birden bilgisayar aygiti tanimaz oldu ve devremin ışığı söndü. Bana en yakin yer samsun ordada bu çip yoktu. Istanbulda bi arkadaşa siparis verdim ancak hala gelmedi. Ulkemi gerçekten bu konuda cok geride. Bilgi ve destek cok zayıf. :(((

      Sil
    2. iki farkli devrede denedim ama olmadı.ben saadece doğru fuse ayarlarini yükleyemedigimi düşünüyorum. Bi yerinde 8mhz secimi yaptim yükledim ve birden bilgisayar aygiti tanimaz oldu ve devremin ışığı söndü. Bana en yakin yer samsun ordada bu çip yoktu. Istanbulda bi arkadaşa siparis verdim ancak hala gelmedi. Ulkemi gerçekten bu konuda cok geride. Bilgi ve destek cok zayıf. :(((

      Sil
    3. Fuse ayarları atmelde en sıkıntı olan ayarlar. ben mümkün olduğu kadar dokunmamaya çalışıyorum. değiştirmek istediğim zaman 5-10 defa abartısız kontrol ediyorum. en son emin olunca programlıyorum. fuse ayarları hatlı olunca programlayıcı entegreyi tanımıyor. bunun tek çaresi bu linkteki devreyi yapmanız .
      https://320volt.com/atmel-avr-fuse-bit-onarim-devresi-atmega-fusebit-doctor/

      Sil
  12. Yardımlarınız için gerçekten çok teşekkür ederim. Bu devreyi daha önceden indirmiştim. İlerde denicem. Birde atmega8 usbasp için fuse ayarlarını yazarmısınız. Ayrıca bu fuse ayarı hex kodu yüklenmeden öncemi yapılmalı yoksa sonramı.

    YanıtlaSil
  13. Son ćalıßmamda 8051 seri programci devresi kurdum. 4-5 tane parça eksik. Temin ettiğimde onuda denicem. Ćalışırsa burda paylaşıcam.ancak bir kac ayı bulur sanırım.

    YanıtlaSil
  14. Son ćalıßmamda 8051 seri programci devresi kurdum. 4-5 tane parça eksik. Temin ettiğimde onuda denicem. Ćalışırsa burda paylaşıcam.ancak bir kac ayı bulur sanırım.

    YanıtlaSil
  15. Yardımlarınız için gerçekten çok teşekkür ederim. Bu devreyi daha önceden indirmiştim. İlerde denicem. Birde atmega8 usbasp için fuse ayarlarını yazarmısınız. Ayrıca bu fuse ayarı hex kodu yüklenmeden öncemi yapılmalı yoksa sonramı.

    YanıtlaSil
  16. fuse ayarını neden yapmak istiyorsunuz ? default ayarları ile fuse ayarı yapmadan atmega 8 i kullanabilirsiniz. üzerinde hali hazırda fuse ayarları zaten vardır. veya fuse ayarlarında neyi değiştirmek istiyorsunuz.?

    YanıtlaSil
  17. https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf buradan atmega 8 in datasheet i var. sayfa 216ve 217 deki fuse ile ilgili bir tablo var bu tabloda fuse için kullanılan registerlar veriliyor. datasheet içersinde bu registerları bulup ayarlarını istediğiniz gibi yapabilirsiniz. fuse ayarları şöyle omalı böyle olmalı diye sabit bir ayar yok. bu sizin yapacağınız devre ile alakalı . dediğim gibi hali hazırda üzerinde zaten fuse ayarları var . datasheet sayfa 217 table 88in alt kısmında notes 2 de : The default setting of CKSEL3..0 results in internal RC Oscillator @ 1MHz. yazıyor . yani sizin atmega 8 iniz normalde dahili rc osilatörile 1MHz de çalışacak şekilde size geliyor. bu şekilde kullanabilirsiniz.

    YanıtlaSil
  18. Teşekkür edrim ilgilendiğiniz için. Atmega8 i usbasp de kullanmak istiyorum. Bi sitede bunun ićin h fuse =0xc9 Lfuse =ef tavsiye etmiş. Baàka kaynaklarda baska yaziyo. Bilemedim fabrika çıkisını mı kullansam bunumu.zaten fabrika cikisinda çalistiramadim.bilgisayarda programda görüyo ancak programlama yapmak istediğimde aygitiniz arizali falan diyo...

    YanıtlaSil
    Yanıtlar
    1. dediğim gibi hangi osilatörü kullanacağınıza ve hangi frekansta çalıştıracağınıza bağlı olarak hfuse ve lfuse değeri değişir. hassas bir zamanlama işi yapmayacaksanız veya hassas biryerde kulanmayacaksanız fabrika çıkış değerlerinde kullanabilirsiniz. eğer breadboard üzerinde deneme yapıyorsanız hata alma ihtimaliniz çok yüksek. Usbasp ile board arasındaki kablo kısa olsun ve kabloyu boarda taktığınız noktada elinizle konnektörü biraz basılı tutarak programlamayı deneyin.

      Sil
  19. 12 mhz kristal kullandim. Zaten saadeece onda taniyo bilgisayar.verdiniz bilgiler icin teşekkür edrim. Devre icin yenni yöntemler denemeye zamanim olmadi. Test ertiğimde sonucu sizinlede paylaşicam 😊

    YanıtlaSil
  20. Yeniden selamlar deneylere basladim atmega 8 i usbasp olarak ayni yöntemle progranlayip calistirdim biraz yavaş calisiyo ama calisiyo. Sigorta ayarlarini degistirmedende caliyo sanirim sorun a serisi olmasiymis😊

    YanıtlaSil
  21. Simdi at89s52 icin bi devre yaptim bitirdim ama bilgisayarin rs232 portu sanirim bozuk test edemiyorum.rs232 yi usbye dönüsturecek bi devre varsa bildiniz iyi olacak yardimlariniz icin simdiden tesekkürler😊

    YanıtlaSil
    Yanıtlar
    1. rs232 yi usb ye dönüştürecek hazır modüller var ondan kullanabilirsiniz..
      https://www.robotistan.com/pl2303-usb-ttl-seri-donusturucu-karti-prolific-rs232-ftdi-donustucu
      veya kablolar var
      https://www.hepsiburada.com/alfais-4891-usb-rs232-cevirici-donusturucu-9-pin-uydu-receiver-guncelleme-kablosu-pm-HB00000CE88B

      Sil
  22. 8051 tipi işlemcileri destekliyor mu acaba

    YanıtlaSil

Yorum Gönder