Geçen hafta tam finaller arifesinde başladığım AVR macerama bugün ufak bir uygulama ile devam ettim. Bence herhangi bir aracı biliyorum, kullanıyorum demek için hazır kopyala, yapıştırdan ziyade, inceliklerini bilmek şart. Aynı bilgisayar biliyorum demek gibi; biliyorsun tamam ama daha hayatında ctrl+alt+del’e basmamışsın neye hikmetse.
Onun için bugün, biraz da geçen haftadaki sınavlarımın beklediğimden iyi geçmesinden dolayı, açtım Atmega16’nın datasheetini ve en azından SPI’yı bir öğreneyim dedim.
Önceki yazımda belirttiğim gibi AVR’nin datasheetleri muhteşem. Bir birimin nasıl kullanacağını enine boyuna anlatmak ile kalmıyor, kütüphaneyi hazır vererek, kullanmasını bileni büyük bir yükten kurtarıyor. Yalnız benim hazırcılıktan nefret ettiğimi bilenler hemen ne oluyoruz demesinler. AVR, kütüphaneleri sadece örnek olarak veriyor, bazı ince ayarları yine sizin register değerlerine bakıp, ona göre ayarlamanız gerekiyor.
Gelelim SPI’ya; SPI, kullanımı açısından çok rahat bir haberleşme çeşidi. Kendinizi master (efendi) ya da slave (köle) olarak belirledikten sonra 3 kablo ile (yardımcı saat sinyali, data ve chip select) bu özelliğe sahip bir çok aleti kontrol edebiliyorsunuz.
Örneğin günümüzde gelişmiş bir çok renkli, renksiz GLCD’ler, telefon ekranları artık bu şekilde çalışmakta.
Ben ise daha önce PIC ile kullandığım, her ikisi de SPI’dan kontrol edebilen MCP3204, 4 kanal ADC ile Microchip’in TC72 adlı sıcaklık sensörünü AVR SPI ile kontrol edip, ayrıca bu uygulamlar da normalden farklı olarak 2×20 LCD kullandım.
1) TC72 Uygulaması
TC72 uygulamasında çok basitçe bir sıcaklık ölçümü yapılmıştır. Ölçülen sıcaklığın ondalık kısmı ekrana basılmış, ayrıca sensörün içinde bulunan ayar registerinin değeri de ekranda gösterilmiştir.
Bu uygulamaya ait tüm dosyaları yazının en altında verilen bağlantıda mevcuttur.
2 ) MCP3204 Uygulaması
MCP3204, daha önce de dediğim gibi 4 kanal 12bit çözünürlüklü bir ADC’dir. 5V besleme ile iletişim hızı 2MHz hıza kadar çıkabilir. Bu entegrenin, donanımsal SPI ile kullanımında dikkat edilmesi gereken en önemli kısım ise komut gönderimi yapıldığı anda aynı zamanda da okuma işleminin yapılması gerektiğidir.
Bu örnekte ise 0-5V aralığını ölçebilen, 4 kanal bir voltmetre uygulaması yaptım. Verdiğim simülasyon programında potlarla istediğiniz gibi oynayarak sonuçların nasıl değiştiğini görebilirsiniz.
Bu uygulamaya ait kütüphane ve simülasyon dosyalarını yazının en altında verdiğim bağlantıda bulabilirsiniz.
Konu ile ilgili sorularınızı yorum bölümüne yazabilirsiniz.
Herkese kolay gelsin…
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/06/05 Etiketler: Atmega16 Projeleri, atmel avr projeleri, atmel spi, avr spi, mcp3204, SPI, tc72
Ellerine sağlık güzel bir konuda her zamanki gibi bir bilgilendirme yapmışsın. Teşekkürler