Geliştirdiğimiz elektronik cihazları daha sonradan da yeni özellikler eklemek, var olan hata düzeltmeleri yapmak için uzaktan güncelleme yapmak istemezmisiniz. Kullanıcılar bilgisayar veya cep telefonu yardımıyla pic'e yüklü firmware güncelleme imkanı sunmak ürettiğiniz ürünün kalitesini bir çıta daha yükseğe taşır. Bu makalede sizlere MCC Bootloaderın PIC16f1827 mikrodenetleyiciye nasıl kurulacağını anlatacağım. Microchip bootloaderlar için %100 çalışma garantisi vermiyor. Gerektiğinde bizimde değişiklik yapmamız gerekiyor. Genel kullanımla ilgili kaynağa microchip in kendi dökümanlarından ulaşabilirsiniz.
PIC için bootloader yazılımı mcc tarafından oluşturuyor. Bilgisayar için yazılımda microchip tarafından yazılmış. Yeri geldikçe yorumlarımı yapacağım. Proje 3 temel bileşenden oluşuyor. Bunlardan ikisi microchip firması tarafından bize hazır olarak veriliyor. İhtiyaca göre sizde alternatiflerini geliştirebilirsiniz.
Bootloader Yazılımı: Bilgisayardan seriport üzerinden gelen yazılımı PIC'in hafızasına yazılmasını sağlayan ara yazılımdır. Şu an sadece UART desteği mevcuttur. PIC'le aranız iyiyse rahatlıkla diğer kaynaklardan veriyi alacak şekilde yapabilirsiniz. MCC tarafından otomatik üretilmektedir.
Uygulama Yazılımı: Asıl projemizdir. PIC içinde çalışan yazdığımız uygulamadır.
Host Yazılımı: Hex dosyasını bilgisayardan bootloader yazılımına gönderen programdır. Microchip'in geliştirdiği hazır bir yazılım olmasına rağmen hex dosyasını herkese vermek istemediğimden dolayı C# ile özel bir yazılım yapılsa tadından yenmez.
Editör olarak MPLABX IDE v6.05, derleyici olarak XC8 v2.41 kullanıyorum. Diğer kütüphane versiyonlarıda aşağıdaki gibidir.
Şimdi aşağıdaki adımları takip ederek sizde Bootloader yazılımı oluşturabilirsiniz.
1. File -> New Project seçiniz.
2. Standalone Project seçip İleri butonuna basınız.
3. Kullandığımız mikrodenetleyici olarak PIC16F1827 seçiniz.
4. İleri butonuna basınız.
5. Burada kullanmak istediğiniz derleyici versiyonunu seçiniz. Farklı versiyonlarda çalışıp çalışmama garantisi verilmemektedir. Deneyerek tecrübe edebilirsiniz.
6. Proje adını veriniz. Projenin kaydedileceği klasörü seçiniz. Proje adı ve klasöründe Türkçe karakter kullanmayınız. Klasör ve dosya isimleri çok fazla uzun olmasın. Bu dediklerim garip gelebilir fakat bazen derleyici bu kurallara uymadığımızdan anlamsız bir hata verir ve hatanın nedenini bir türlü bulamayabilirsiniz. Dosyaadını ve klasör ana dizine kaydettiğinizde tüm sorun çözülür.
Yazdığımız c ve h dosyası içinde türkçe karakter kullanabilmek için Encoding ISO-8859-9 seçiniz. İşlemler bitince Finish butonuna basınız.
7. Araç cubuğundaki MCC simgesine basıp Microchip Code Configuratorü (MCC) çalıştırınız.
8. MCC'nin açılması bilgisayarınızın işlemcisine bağlı olarak birkaç dakika sürebilir. Biraz sabretmek gerekiyor. MPLABX 5.xx versiyonunda sanki daha hızlı çalışıyordu.
9. Kullandığımız PIC sadece MCC Classic'i desteklemektedir.
10. Finish butonuna basarak kütüphanelerin yüklenmesini bekleyiniz.
11. Bootloader için MEMORY ve EUSART kütüphanesini ekleyiniz. Şu an sadece USART iletişimini desteklemektedir. Siz kendiniz farklı iletişim protokolleri için geliştirme yapabilirsiniz.
12. Son olarak Bootloader Generatorü ekleyiniz. Sarı simge ise Bootloader modülünün test edilmemiş olduğunu göstermek içindir.
13. Kullandığım kütüphane versiyonunu öğrenmek için Device Resourcesdaki Content Manager butonuna basıp kütüphane versiyonlarını öğrenebilirsiniz. İster en son kütüphaneyi kullanın isterseniz önceki versiyonlara geçiş yapabilirsiniz.
14. Eklene modüllerin ayarlarını yapmaya başlayalım. MEMORY modülünde herhangi bir ayar yok.
15. EUSART ayarlarını aşağıdaki gibi yapınız.
16. Asıl önemli ayarların olduğu kısım Bootloader Generator kısmındaki ayarlardır. Burada
Application Reset Vector: Yazdığımız uygulamanın hangi adresten başlayacağının belirtildiği adrestir. Bu adresten önce bootloader yer alır. Eğer bootloader kodu çok büyükse bu adresi değiştirmeliyiz, biraz daha ileriye almalıyız.
IO Pin Indicator: Bootloader moduna girildiğinde bu pine bağlı led ışık verir.
IO Pin Entry: Normal ticari uygulamalarda bootloader moduna girmek için bir buton bulunması pek pratik değildir. Fakat test amaclı kullanmak için buton kullanacağız. Aktif low bir butona basıldığında bootloader moduna girecektir.
17. PIC'in çalışması için gerekli osilatör ve diğer ayarlarıda yapmalıyız. Buradaki ayarlar en son uygulamamızdaki ayarlar ile aynı olmalı. Çünkü projenin ilerlerisinde bootloader ve uygulamamızı birleştireceğiz. Konfigurasyon bitleri farklı olursa derleme işlemi sırasında hata alırız.
18. Power on Timer'ı aktif etmeyi tercih ediyorum.
19. Bootloader indicator ledi ve entery butonunu bağlayacağımız pinleri seçelim.
20. Uyarılara dikkate almayınız. Bootloader test edilmediğinden uyarı vermesi normal.
21. Generate butonuna basarak MCC nin kodları üretmesini bekleyiniz.