Usbisp Programlayıcı

Endorfin35+

Kayıtsız Üye
Staff member
Katılım
1 Mayıs 2020
Mesajlar
3,188
Birkaç projemde atmega328p kullanıyorum. Yazılım kısmınıda arduino ide yazmıştım. Zaten arduino kullanmamın sebebi nadiren uğraştığım bu işlerde bana kolaylık sağlaması. Kodu yazıyorum, anında yüklüyorum, seriporttan bilgi alıyorum vs... sağlanan fayda kolaylık. Hata ayıklama kolay oluyor. Çok önceden pic programlamıştım. Pic için bir ide üzerinde kodu yaz, hex çevir, yükleyici programına veya isis e hexi göster yükle, test et, sorun varsa, bir kelime hatası yaptıysan baştan başla... bir sürü hikaye... Neyse Şu an pic ile ilgili birşey hatırlamıyorum desem yeridir. Dediğim gibi arduino bana kolaylık sağladığında arduino ve 328 ile projelerimi geliştirdim. Programlayıcı olarakta yine arduinonun kendisini kullanarak 328 leri icsp üzerinden kendin bordumun üzerinde programladım.

Görece olarak tek seferde yüksek adetlerde alım üretim yapıyorum. 328p yi en son yanlış hatırlarmıyorsam 15tl gibi bir fiyata almıştım. Şu an fiyatlar hali ile çok daha yüksek 40tl civarında. Daha ucuz aynı pin yapısına sahip başka bir mcu olurmu derken denemek için birkaçtane atmega48pa satın aldım. atmega48, 328 in 1/4 hafızasına sahip ama benim için uygun görünüyor.

Atmega48 i benim borda takıp normal 328 e program atıyormuş gibi bir denem yaptım. Sonuç başarısız oldu. Başıma gelecekleri az çok tahmin ettiğimden ayrıca iki adet ucuz usbisp programlayıcılardan aldım.

1627720615145.png




Programlayıcı bilgisayara (win10) bağladığımda HID cihaz olarak driver ı otomatik yüklendi. Buna karşın kullanım ürün açıklamasında olduğu gibi olmadı. Usbasp yaygın ucuz bir programlayıcı benim satın aldığım ise usbasp nin çakması usbisp... Arduino IDE üzerinden bu programlayıcı ile şu anda yazılım yüklemek mümkün görünmüyor. Biraz araştırma ile bu programlayıcı için ProgISP 1.72 nin uygun olduğunu öğrendim. İhtiyaç duyabilecekler için Programı indirdiğim linki ekliyorum. Link ölür ise şimdilik bende kopyası var...


1627721216486.png


Program HID cihaz olarak tanınmış olan programlayıcı doğrudan görüyor. Resimde kırmızı çember içine aldığım alandaki logo programlayıcı takılı değil iken gri renk alıyor...

10 Pinli kablosu arduino bordları ile doğrudan uyumlu değil. bağlantıları tekrar düzenleyen bir aparata veya kabloya ihtiyaç var...

1627722149472.png


Bu aşamayı da geçtikten sonra arduino ide de yazdığım programının hex kodunu ProgISP programı yardımı ile 328p ye yüklemeyi başardım. Gayet hızlı ve sorunsuz bir yükleme oldu. Bu aşamada fark ettiğim başka bir sorun ise programının doğru saat hızında çalışmadığı oldu. Bu durumla karşılaşınca fuse ayarlarını yapmam gerektiğini biliyordum. Sorun ise nasıl olacağı idi...

Arduino IDE ile yazılan programların HEX dosyasını almak için derleme sonrasında temp klasörüne giderek orada oluşan HEX dosyasını almak gerekiyor.
Hex dosyası için :

Fuse ayarlarını yapmanın en kolay yolu çalışan bir 328 i proramlayıcıya bağlayarak mevcut ayarları okudum. Sonrasında boş olan 328 e aynı ayarları yazdım.

1627722512645.png



Sonuç olarak benim esas amacım bu olmasada usbisp progralayıcı ile atmega328 programlaya başararak bir aşama kaydettim. Biraz daha uğraşacağım şeyler var. İlerleme sağladıkça konuya devam ederim.
 

Ekler

  • 1627721141520.png
    1627721141520.png
    45.1 KB · Görüntüleme: 96
  • 1477308306-9509.zip
    2.4 MB · Görüntüleme: 69
Last edited by a moderator:

Endorfin35+

Kayıtsız Üye
Staff member
Katılım
1 Mayıs 2020
Mesajlar
3,188
Bu programlayıcı için firmware hazırlamışlar ve programlayıcı UsbASP olarak dönüştürmek mümkünmüş.


Programlayıcının birkaç farklı donanım versiyonu bulunuyor. Bendeki V.5 ve atmega88 e sahip. Firmware update yapmanın temel mantığı şöyle; programlayıcının kendisini programlamak için başka bir programlayıcı gerekiyor. internet üzerindeki kaynaklarda hep arduinoyu programlayıcı olarak kullanmışlar. Ancak ben üründen iki adet aldığım için fazla uğraşmadan biri ile diğerini programladım.


1627740670746.png


Programlama yapılacak olan cihazda aşağıdaki resimde görünen -> UP <- pinleri köprülenmelidir.

1627740733638.png


Ayırca kartın ön yüzünde bulunan 0R direncin yerinden sökülmesi gerekiyor (tekrar takılmayacak)

1627742015462.png


Git hubda bulunan atmega88.hex dosyasını yine ilk mesajda bahsettiğim progisp programı ile diğer programlayıcıya yükledim. Fuse ayarlarında bir değişiklik yapmaya gerek olmadı. Ardından güncellenen programlayıcıdaki UP köprüsünü kaldırıp bilgiayara bağladığımda usbasp olarak cihazı gördü ancak driver istedi... Yine githubda paylaşılan driverı yükleyerek bilgisayarın cihazı tanımasını sağladım. Ancak bu seferde bir başka sorun çıktı. Sürücü özelliklerine girdiğimde dijital imza bilgisi yok gibi bir uyarı aldım. Eskiden bilgisayar soruyordu bu donanumı yinede yükle vs diyorduk. Biraz değiştirmişler. Bilgisayarı gelişmiş seçeneklerden sürücü imzasını devre dışı bırak seçeneği ile yeniden başlattım. Sürücüyü tekrar yükledim. İşte bu aşamada alışık olduğum soru geldi. Yinede yüklemek istiyormusun diye... Neyse sürücü böylece yüklendi. Mevcut program olan progisp usbasp sürücüsü ile de aynen çalışmaya devam etti. Bu güzel...

1627741899285.png


Ayırca programlayıcı avrdudess ile de kullanılabilir oldu...

1627741411355.png



Ancak Arduino ide üzerinde programlayıcıyı usbasp olarak program yüklemek istediğimde hata aldım.

1627741497037.png


Biraz araştırma ile bu sorunun da bir driver sorunu olduğu anlaşıldı...



Programın kullanımı :

zadig programı ile sürücüyü güncellendiğinde bu sorunda çözülüyor.



Sonuç olarak bu güncelleme ile elde edilen kazanımları faydalı buldum. Bir aşama daha tamamlandı. İstediğim dışında herşeyi yaptım. :)
 
Son düzenleme:

Endorfin35+

Kayıtsız Üye
Staff member
Katılım
1 Mayıs 2020
Mesajlar
3,188
Artık Arduino IDE ve ucuz programlayıcı ile gayet güzel iş gördüğümüze göre atmega48 e nasıl program yükleyeceğimize bakalım...

Arduino IDE üzerinden atmega48,8,88 gibi serilere program geliştirmek için minicore adında bir eklenti hazırlanmış.


1627744246128.png


işin güzel tarafı fuse ayarları ile de uğraşmaya gerek yok. Menu den seçim yaparak gerekli ayarlar yapılabiliyor...

Geriye kalan tek şey 328 için yazılan programı olduğu gibi 48 e yazmak oluyor....

Sonuç : Atmega48 e deneme amaçlı birşeyler yükledim. Herhangi bir sorun görünmüyor.

Aslında bu konunun atmel studio ya doğru uzamasını bekliyordum öte yandan bunu istemiyordum... atmel studio kullanmaya/öğrenmeye başlasam iyi olacak diye düşünüyorum ama zorunda kalmadıkça kolay (hızlı) yolu tercih ediyorum... şimdilik atmel studio başka bahara kaldı... :)
 
Son düzenleme:
Top