Bu yazımda PIC16F628 ile karşılaştırıcı modülünün nasıl ayarlandığını yazacam. PIC16F628'in Data Sheet'inden 10. Bölümünde Comparator Module kısmından yararlanacağız. Bu yazıda daha çok 2.5 Volt referans almak için gereken ayarları CMCON ve VRCON register'larının ayarlamalarını gösterecem daha sonraki yazımda CNY70 sensörünü kullanarak bir örnek yapacam.

PIC16F628 karşılaştırıcı modülü 2 adet analog karşılaştırıcı içerir. CMCON Register'ı 8 bitliktir.

CMCON Comparators

 

  • CMCON Register'ının son 3 biti karşılaştırma modunun seçimi için kullanılır bunu seçerken data sheet içinden seçeriz.Aşağıdaki resimde de gördüğünüz gibi 8 farklı seçenek var benim için uygun olan "010" olduğu için onu seçiyorum çünkü dahili olarak bir referans değer kullanacam.Comparator select
  • 3.Biti yani CIS biti ile bağlanacak portların seçimine karar verilir. Ben "0" seçerek RA0 ve RA1 portlarını tercih ediyorum.
  • 4.Bit (C1INV) "1" olarak tercih ettiğimiz durumda giriş değeri alacağımız referans değerinden küçük olduğu durumda "1" değeri verir bize diğer durumda "0" verir.
  • 5.Bit (C2INV) buda 4.Bitteki mantıkla aynı.
  • 6.Bit "0" yapılarak VREF'in sadece dahili olarak kullanılması sağlanır.
  • 7.Bit "1" yapılarak VREF aktif hale getirilir.

Sonuç olarak  kodumuzu yazarken CMCON bitimize "10110010" değerini atamamız gerekecek.

Şimdi VRCON Register ından bahsedeyim. Beslememizin 5V olduğunu düşünerek alacağımız referans değerini nasıl hesaplayacağımızı göstereyeim ilk önce.

VREF=(VR<3:0>/24) x VDD (5V)

Örneğin 2.5 Volt alacak olursak ((5/2)/5)x24 işlemiyle VR<3:0>=12  lojik olarak "1100" karşılık gelir.

Ayarlarken VRCON Registerını da son 4 biti bulduğumuz değeri yazmak üzere diğer bitleri yukarıda verdiğim bilgilere göre yazılır. Sadece 4.bit unimplemented bit, read as 0 olarak geçtiğinden 4.biti 0 yazıyoruz. Sonuç olarak VRCON="10101100"

Bu yazı yorumlara kapalı.