USB HID Bootloader – Mikrodenetleyicilere Program Yüklemenin Kolay Yolu

Günümüzde üretilen gömülü sistemlerin çoğu firmware güncellemesi yapabilmek adına bir bootloader yazılımına sahiptirler. Bootloader kavramını kısaca özetleyelim. Bootloader cihaz üzerinde asıl çalışacak programın , cihaza yüklenmesini sağlayan ve aynı cihazın içerisine daha önce yüklenmiş küçük bir programcıktır. Biz bu uygulamamızda bir PIC18f2550 mikrodenetleyicisini kullanacağız. Bu durumda USB HID Bootloader yazılımını PIC18f2550 işlemci içerisine önceden bir programlayıcı vasıtası ile yüklüyoruz. (Ben programlayıcı olarak kendi yaptığım  Brenner8p5 klonunu kullanmaktayım. ) Bootloader yazılımı PIC18f2550 mikrodenetleyicisine yüklendikten sonra artık bundan sonra bu PIC programlanırken bir programlayıcıya ihtiyaç duyulmayacaktır. Bundan sonra mikrodenetleyici üzerinde çalışacak programlar doğrudan bir USB kablosu üzerinden mikrodenetleyicimize aktarılacaktır. Burada hatırlatmamız gereken önemli bir nokta bulunmakta. O  da USB Hid Bootloader’ın kullanılabilmesi için mikrodenetleyicinin kesinlikle USB HID özelliğinin bulunması gerektiğidir. Günümüzde pekçok PIC mikrodenetleyicide bu özellik bulunmaktadır.  Bootloader sayesinde, kutulanmış cihazların içleri açılmadan, aynı zamanda haberleşme için de kullanılan USB portları aracılığı ile cihazlara program yüklenebilmekte ve mikrodenetleyicilere program yüklemenin zahmetleri ortadan kalkmaktadır.

Bootlader ile alakalı bu kadar açıklamadan sonra gelelim işlemlerin MikroC ile nasıl yürüdüğüne. Devre şemamızı vererek işe  başlayalım.

Devre şemamızda en dikkat edilecek olan nokta mikrodenetleyicinin 14. pini olan Vusb pinine bağlı olan paralel 100nF değerindeki kondansatörlerdir. Bu kondansatörler PIC içerisinde dahili olarak bulunan USB voltaj regülatörü için gereklidir. Devrede kullanılan kristal ise 20MHz değerindedir. USB donanımı çalışabilmek için 48MHz saat kaynağına ihtiyaç duyar. Bunu sağlamak için PIC içerisindeki PLL donanımı kullanılmaktadır. 20MHZ kristalden gelen sinyal 5’e bölünür ve PLL donanımına girer. Daha sonra PLL çıkışından 96MHz’lik bir sinyal alınır ve bu 2’ye bölünerek 48MHz değeri elde edilir. USB HID Bootloader programı PIC18 serisi işlemciler için mikroC derleyicisinin examples klasörünün altındaki “others” klasöründen ulaşılabilir vaziyettedir.  Proje dosyasının yolu şu şekildedir: “\….\Mikroelektronika\mikroC PRO for PIC\Examples\Other\USB HID Bootloader\Projects\PIC18F”. Biz burada bulunan PIC18 serisi için yazılmış programı düzenleyerek kendi devremize uygun hale getirebiliriz. Ben de aynen bu şekilde yaptım. USB HID bootloader klasörünü masaüstüne kopyaladım ve üzerinde gerekli değişiklikleri yaparak mikrodenetleyicimin içerisine, oluşan “hex” dosyasını brenner8p5 vasıtası ile yükledim. Mikrodenetleyicimize bootloadera ait hex dosyası yüklendikten sonraki adım ise MikroC derleyicisinin tools menüsündeki USB HID Bootloader programının çalıştırılmasıdır.  Aşağıdaki resimde bu programın çalıştırılması görülmektedir.

Programı çalıştırdıktan sonra mikrodenetleyicimizi bir usb kablosu aracılığı ile bilgisayara bağlarız  ve aşağıdaki ekran görüntüsü gelir karşımıza.

Bu pencerede kare içerisine alınan kısım , mikrodenetleyicimiz bilgisayara bağlandıktan sonra eğer hiç bir problem yok ise, kırmızı olmaktadır. Bu kısım kırmızı olduktan sonra “Connect” butonuna tıklanır ve mikrodenetleyiciye bağlanılmış olur. Mikrodenetleyici bilgisayara bağlandıktan sonra 5 saniye içerisinde “connect” butonuna tıklanmalıdır. aksi halde mikrodenetleyici bootloader programını terkedecek ve üzerinde yüklü olan asıl programını çalıştırmaya başlayacaktır.  Mikrodenetleyiciye bağlandıktan sonra “Browse for HEX” butonuna tıklanarak , mikrodenetleyiciye yüklenecek “hex” dosyası seçilir ve “Begin uploading” butonuna tıklanarak programın yüklenmesi tamamlanır.

İşlemler görüldüğü üzere son derece kolay. Bu şekilde hazırladığımız programları denerken, yaptığımız her değişiklikte mikrodenetleyiciyi devre üzerinden söküp takma derdinden kurtulmuş oluyoruz.

kolay gelsin

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir