arduino mega "bilinmeyen cihaz" hatası

Başlatan Emre MERMİ, 03 Mart 2015, 03:51:37

Emre MERMİ

merhaba arkadaşlar

Elimde bir tane arduino mega var. Normal çalışıyorken bilgisayara taktığımda bilgisayar tanımamaya başladı. Başka ardinolar takıp denediğimde bilgisayar görüyor, yani bizim sürücülerde sorun yok.

biraz araştırdım ettim bağzı şeyler çıktı karşıma mesela şunun gibi;

https://www.virtuabotix.com/how-to-cure-sudden-uno-death-syndrome/

bende sorun budur diye kabullendim, sineye çektim. Anlatılanları denedim. Bir türlü cihazı DFU moda sokamadım. Bende mi bir sorun var yoksa cihazda mı anlamadım gitti.

herhalde birisi buna program atarken 16u2 nin içindeki sürücüyü silmiş. Var mıdır bunun başka yükleme yolu ? Böyle bir olay yaşayan  veya fikri olan arkadaşımız varsa eğer yardımcı olursa sevinirim.

Ayrıca ben bunu usb ttl entegreleriyle ya da başka bir arduino ile  programlayabilir miyim ? En azından cihazı atmak yerine böyle kullansam da  olur.

şimdiden yanıtlar için çok teşekkür ediyorum.

Emre MERMİ


mehmet

#2
ICSP konnektörü ile başka bir AVR programlayıcı
ile yazılım yüklemek mümkün olabilir.
Hele ki Arduino IDE' nin desteklediklerinden olursa
bootloader kullanmadan bile yazılım yüklenebilir.

Mega Elimde olmadığı için çok fazla ayrıntıya giremiyorum.
Ancak Rx/Tx pinleri ile de başka bir USB/Seri port dönüştürücüsü
de kullanabilirsiniz. @Kabil ATICI Hoca' mın kişisel blog sayfasında
bu konu ile ilgili ayrıntılar mevcut.

http://elektronikvelemciler.blogspot.com.tr/search?updated-max=2014-10-18T11:05:00%2B03:00&max-results=20
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

bocek

#3
Elbette bir avr programlayıcı ile hem arduino mega'nın ana mcu'sunu (atmega2560), hem de usb<->serial dönüşümünü sağlayan atmega16u2'yi programlayabilirsin.

En yaygın avr programlayıcı Usbasp'dir:
http://www.aliexpress.com/store/product/USBasp-USB-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-10PIN-Wire-Support/223246_2036402518.html


Bir de şu yol var bir dene istersen:
http://www.nexuscyber.com/boards/topic/1/how-to-use-arduino-uno-upgrade-usbasp-firmware

Yalnız burda usbasp'ye arduino ile firmware yüklemeyi anlatmış. Sen usbasp yerine bozuk olan 16u2'yi veya atmega2560'ı bağlayacaksın.
Yani tercüme etmeye çalışırsak:
1- sağlam bir arduino bulacaksın.
2- Arduino IDE'yi açıp examples'tan ArduinoISP'yi sağlam cihaza yükleyeceksin. Resim: Resim
    Böylece senin sağlam olan arduino'n bir avr ISP programlayıcıya dönüşecek (avrisp).
3- Şimdi atmega2560'ı programlamak için 6 tane ucu birbirine bağlayacaksın.
    Mesela senin sağlam olan arduino Uno ile bağlantı şu şekilde:
   programlanacak_mcu        sağlam arduino
    VCC       ->                             5V
    GND       ->                             GND
    RESET    ->                            10 (SS)
    MOSI      ->                            11 (MOSI)
    MISO      ->                           12 (MISO)
    SCK       ->                            13 (SCK)

mega2560 için şu şemaya göre : http://pighixxx.tumblr.com/image/45276036776
RESET ucu 30 no'lu pin
MOSI ucu 21 no'lu pin
MISO ucu 22 no'lu pin
SCK   ucu 20 no'lu pin

16u2'ye firmware atmak için ise biraz lehim yapman gerekecek sanırım. Yukarıdaki 4 ucu 16u2'nin datasheet'inden bulup sağlam arduinodaki uçlara bağlayacaksın.

Bundan sonrası koşturmak istediğin hex dosyasını mcu'ya yazma işi.
onu da en rahat şu programla (progisp) yapabilirsin.
http://www.electrodragon.com/w/index.php?title=ProgISP
(Ekranda programın çince göründüğüne bakma çalıştırınca ingilizce oluyor).

Ekleme: Şimdi farkettim progisp yazılımı avrisp programlayıcıyı tanımıyor.
(avrisp senin sağlam olan arduinoyu yazılım yükleyerek dönüştürdüğün programlayıcı donanımın adı oluyor)

avrisp'yi tanıyan yazılım şurda:
http://shop.myavr.de/index.php?ws=download_file.ws.php&dlid=112&filename=software/tool_myAVR-ProgTool-V139-b2236_en_de.zip

1 ya da 0. işte 'bit'ün mesele..

Emre MERMİ

#4
Alıntı yapılan: mehmet - 04 Mart 2015, 00:02:39
ICSP konnektörü ile başka bir AVR programlayıcı
ile yazılım yüklemek mümkün olabilir.
Hele ki Arduino IDE' nin desteklediklerinden olursa
bootloader kullanmadan bile yazılım yüklenebilir.

Mega Elimde olmadığı için çok fazla ayrıntıya giremiyorum.
Ancak Rx/Tx pinleri ile de başka bir USB/Seri port dönüştürücüsü
de kullanabilirsiniz. @Kabil ATICI Hoca' mın kişisel blog sayfasında
bu konu ile ilgili ayrıntılar mevcut.

http://elektronikvelemciler.blogspot.com.tr/search?updated-max=2014-10-18T11:05:00%2B03:00&max-results=20
hocam çok teşekkür ediyorum cevabınız için. Kabil hocamın yazısını tam olarak inceleme fırsatım olmadı ama usb ttl kullanarak programlamayı denedim. sizin önerdiğiniz gibi. arduino pro mini de öyle programlanıyormuş. o yoldan yürümeye çalıştım yemedi.  usb ttl in tx rx uçlarını arduino meganın rx tx uçlarına bağlayarak veri göndermeye çalıştım, gitmedi. biraz daha uğraşayım herhalde hatalarım var bu konuda.

mesaj birleştirme:: 04 Mart 2015, 02:34:30

Alıntı yapılan: bocek - 04 Mart 2015, 00:47:07
Elbette bir avr programlayıcı ile hem arduino mega'nın ana mcu'sunu (atmega2560), hem de usb<->serial dönüşümünü sağlayan atmega16u2'yi programlayabilirsin.

En yaygın avr programlayıcı Usbasp'dir:
http://www.aliexpress.com/store/product/USBasp-USB-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-10PIN-Wire-Support/223246_2036402518.html


Bir de şu yol var bir dene istersen:
http://www.nexuscyber.com/boards/topic/1/how-to-use-arduino-uno-upgrade-usbasp-firmware

Yalnız burda usbasp'ye arduino ile firmware yüklemeyi anlatmış. Sen usbasp yerine bozuk olan 16u2'yi veya atmega2560'ı bağlayacaksın.
Yani tercüme etmeye çalışırsak:
1- sağlam bir arduino bulacaksın.
2- Arduino IDE'yi açıp examples'tan ArduinoISP'yi sağlam cihaza yükleyeceksin. Resim: Resim
    Böylece senin sağlam olan arduino'n bir avr ISP programlayıcıya dönüşecek (avrisp).
3- Şimdi atmega2560'ı programlamak için 6 tane ucu birbirine bağlayacaksın.
    Mesela senin sağlam olan arduino Uno ile bağlantı şu şekilde:
   programlanacak_mcu        sağlam arduino
    VCC       ->                             5V
    GND       ->                             GND
    RESET    ->                            10 (SS)
    MOSI      ->                            11 (MOSI)
    MISO      ->                           12 (MISO)
    SCK       ->                            13 (SCK)

mega2560 için şu şemaya göre : http://pighixxx.tumblr.com/image/45276036776
RESET ucu 30 no'lu pin
MOSI ucu 21 no'lu pin
MISO ucu 22 no'lu pin
SCK   ucu 20 no'lu pin

16u2'ye firmware atmak için ise biraz lehim yapman gerekecek sanırım. Yukarıdaki 4 ucu 16u2'nin datasheet'inden bulup sağlam arduinodaki uçlara bağlayacaksın.

Bundan sonrası koşturmak istediğin hex dosyasını mcu'ya yazma işi.
onu da en rahat şu programla (progisp) yapabilirsin.
http://www.electrodragon.com/w/index.php?title=ProgISP
(Ekranda programın çince göründüğüne bakma çalıştırınca ingilizce oluyor).

Ekleme: Şimdi farkettim progisp yazılımı avrisp programlayıcıyı tanımıyor.
(avrisp senin sağlam olan arduinoyu yazılım yükleyerek dönüştürdüğün programlayıcı donanımın adı oluyor)

avrisp'yi tanıyan yazılım şurda:
http://shop.myavr.de/index.php?ws=download_file.ws.php&dlid=112&filename=software/tool_myAVR-ProgTool-V139-b2236_en_de.zip



hocam çok teşekkür ederim uzun uzun anlatmışsınız dosyaları eklemişsiniz, elinize sağlık.
16u2 yi programlamak için lehim yapmayı gözüm yemiyor ki zaten yapamam. iyice kartı mundar etmeye gerek yok en iyisi ben yarın hemen uno dan megayı programlamayı deneyeyim anlattığınız gibi. öyle de çalışsa yeter benim için. bir de usb ttl kullanarak programlarsam herhalde daha tatlı olacak. sırayla deneyeceğim ikisini de.

tekrardan teşekkür ederim sizlere değerli bilgilerinizi paylaştığınız için,

ytemelli

ch340g sürücüsünü yüklersen düzelecektir.