Başka bir Arduino kullanarak Bootloader Yükleyici Yapmak

Başka Bir Arduino Kullanarak Bootloader Yükleyici Yapmak

Arduino, hobi amaçlı projelerden profesyonel uygulamalara kadar geniş bir yelpazede kullanılan popüler bir mikrodenetleyici platformudur. Arduino’nun kullanım kolaylığı, büyük ölçüde önceden yüklenmiş olan bootloader sayesinde sağlanır. Bootloader, Arduino’nun USB üzerinden programlanmasını mümkün kılar. Ancak bazen, özellikle düşük seviyeli programlama yaparken veya bootloader’ın kendisi bozulduğunda, bootloader’ı yeniden yüklemek gerekebilir. Bu yazıda, başka bir Arduino kullanarak bir Arduino’ya bootloader yükleme işlemini adım adım inceleyeceğiz.

Bootloader Nedir ve Neden Yüklememiz Gerekir?

Bootloader, mikrodenetleyicinin başlatılmasından sonra çalışan ve yeni programların belleğe yazılmasını sağlayan küçük bir programdır. Arduino’larda, bootloader sayesinde USB üzerinden doğrudan program yükleyebiliriz.

Bootloader’ı Yeniden Yükleme Nedenleri:

  • Bootloader’ın Bozulması: Yanlışlıkla veya bir hata sonucu bootloader silinebilir veya bozulabilir.
  • Özel Bootloader Kullanımı: Daha küçük bir bootloader kullanmak veya güvenlik önlemleri eklemek gibi özel ihtiyaçlar için farklı bir bootloader kullanmak isteyebilirsiniz.
  • Düşük Seviyeli Programlama: Doğrudan donanım üzerinde çalışmak ve bootloader’ı atlamak istediğiniz durumlar olabilir.
  • Gerekli Malzemeler

  • İki adet Arduino kartı (Bir tanesi programlayıcı olarak kullanılacak)
  • Jumper kabloları
  • Arduino IDE
  • (Opsiyonel) Breadboard
  • Bağlantılar

    Bootloader yükleme işlemi için iki Arduino kartı arasında SPI (Serial Peripheral Interface) protokolü üzerinden iletişim kurulması gerekmektedir. Programlayıcı olarak kullanılacak Arduino, hedef Arduino’ya SPI sinyallerini gönderecektir.

    Aşağıdaki bağlantıları dikkatlice yapın:

    | Programlayıcı Arduino | Hedef Arduino |
    |—|—|
    | Dijital 10 (SS) | Reset |
    | Dijital 11 (MOSI) | Dijital 11 (MOSI) |
    | Dijital 12 (MISO) | Dijital 12 (MISO) |
    | Dijital 13 (SCK) | Dijital 13 (SCK) |
    | GND | GND |
    | VCC (5V) | VCC (5V) |

    Önemli Not: Reset pinine bağlantı yaparken dikkatli olun. Yanlış bağlantı hedef Arduino’ya zarar verebilir.

    Arduino ISP Eskizini Yükleme

    Programlayıcı olarak kullanılacak Arduino’ya “ArduinoISP” örneğini yüklemeniz gerekmektedir. Bu eskiz, Arduino’nun bir ISP (In-System Programmer) olarak davranmasını sağlar.

    1. Arduino IDE’yi açın.
    2. `Dosya > Örnekler > 11.ArduinoISP > ArduinoISP` yolunu izleyerek ArduinoISP örneğini açın.
    3. Programlayıcı olarak kullanacağınız Arduino kartını bilgisayarınıza bağlayın.
    4. Arduino IDE’de doğru kart ve port ayarlarını seçin.
    5. ArduinoISP eskizini Arduino’ya yükleyin.

    /*
      ArduinoISP

    Turns an Arduino board into an AVR ISP programmer

    Created by David A. Mellis.

    Modified by Erni Tronolone

    Modified by Sandro Maffiodo

    Modified by Randall Bohn */

    #include <SPI.h>

    // Pin 10: Slave Select (SS) pin const int reset_pin = 10;

    void setup() { pinMode(reset_pin, OUTPUT); SPI.begin(); }

    void loop() { // Boş döngü }

    Bootloader Yükleme İşlemi

    1. Arduino IDE’de `Araçlar > Kart` menüsünden, hedef Arduino kartınızın modelini seçin (örneğin, Arduino Uno).
    2. `Araçlar > Programlayıcı` menüsünden “Arduino as ISP” seçeneğini seçin.
    3. `Araçlar > Bootloader’ı Yak` seçeneğini tıklayın.

    Arduino IDE, programlayıcı Arduino üzerinden hedef Arduino’ya bootloader’ı yükleyecektir. Bu işlem birkaç dakika sürebilir. İşlem tamamlandığında, Arduino IDE size başarılı bir mesaj gösterecektir.

    Hata Durumunda:

  • Bağlantıları tekrar kontrol edin.
  • Arduino IDE’de doğru kart ve port ayarlarının seçildiğinden emin olun.
  • Programlayıcı Arduino’ya ArduinoISP eskizinin doğru şekilde yüklendiğinden emin olun.
  • Hedef Arduino’nun güç kaynağının doğru olduğundan emin olun.
  • Sorun Giderme İpuçları

  • “avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00” hatası: Bu hata genellikle bağlantı sorunlarından kaynaklanır. Kabloları kontrol edin ve bağlantıların doğru olduğundan emin olun. Ayrıca, Arduino IDE’de doğru kart ve port ayarlarını seçtiğinizden emin olun.
  • ArduinoISP eskizini yüklerken hata: Bu hata genellikle Arduino IDE’de yanlış kart veya port ayarlarının seçilmesinden kaynaklanır. Doğru kart ve port ayarlarını seçtiğinizden emin olun.
  • Bootloader yükleme işlemi çok uzun sürüyor: Bu durum genellikle bağlantı sorunlarından veya ArduinoISP eskizinin doğru şekilde yüklenmemesinden kaynaklanır. Bağlantıları kontrol edin ve ArduinoISP eskizinin doğru şekilde yüklendiğinden emin olun.

Sonuç

Bu yazıda, başka bir Arduino kullanarak bir Arduino’ya bootloader yükleme işlemini adım adım inceledik. Bu yöntem, bootloader’ı bozulmuş veya silinmiş olan Arduino kartlarını kurtarmak veya özel bootloader’lar kullanmak için kullanışlı bir yöntemdir. Bağlantıları dikkatlice yaparak ve adımları doğru bir şekilde takip ederek, Arduino’nuzun bootloader’ını kolayca yeniden yükleyebilirsiniz.