PIC I/O ları Tam Kare Dalgamıdır.

Başlatan Kazım, 08 Ekim 2012, 15:18:05

Kazım

Arkadaşlar bunu sormamın amacı, Örnek projemde 5v - 3.3v cihazı haberleştimeme lazım.Ancak MCU VDD 3.3 verirsem İnput Low algılama sınırı vss -  0.15 V arası yazıyor datasheette.  Yani PIC yada Modullerin  TTL seviye çıkışlarında neden örneğin 0,25*vdd + 0,8 yada low için vss - 0.15 arası gibi değerler var .Çıkışlar VSS ile VDD ( 0 - 5 yada 0 - 3.3v olarak tam kare dalga şeklinde değilmidir ??

polleme

MCU portları lojik olarak teoride 0-5V veya 0-3.3V olarak belitilmesine rağmen gerçekte hiçbir zaman 0V seviyesine inmezler ve 5V veya 3.3V seviyelerine çıkamazlar. Arada farklar olur, bu farklar aynı çipin farklı üretimlari arasında bile değişebilir. Bu nedenle lojik seviyeler belirtilirken lojik 0 için bir voltaj aralığı ve lojik 1 için bir voltaj aralığı belirtilir. Bu aralığa da standart olarak TTL seviyesi (veya CMOS) denir.

Erol YILMAZ

bu fark çıkıştan basılan veya çekilen akımla alakalıdır.

Klein

@polleme  çıkışlar hakkında bilgi vermiş.
Mesajda verdiğiniz değerler girişler ile ilgili.

Bir girişin 0 ya da 1 kabul edilebilmesi için  bir değerin üzerinde veya altında olması gerekir.  Tam VDD 1 Tam Vss 0 kabul edilirse  bazı kayıplar nedeniyle ciddi sorunlar yaşarız.  Bu sebeple belirli bir değerin üzeri 1 , altı 0  olarak algılanır.

neden bu değerler 3V , 5V  gibi net seviyeler değildir de VDD*0.25+0.8 gibi değerlerdir?
Çipimizin beslemesinin bir aralığı var. Giriş seviyesine bakan karşılaştırıcılar da değerini  çipin beslemesinden gerilim bölücüler ile alıyor. Hal böyle olunca, besleme gerilimimize göre gürüş seviyemiz de değişiyor.

0 seviyesi neden Vss-0.15?
0 seviyesi bu değil. Bu değer 0 değeri olarak verebileceğimiz en küçük gerilimi ifade ediyor.

Neden 0 dan küçük?
Çünkü: pin ile Vss arasına bir diyot bağlı. Bu diyotun eşik gerilimi de 0.15V. Eğer siz o pine -0.15V gerilimden daha düşük gerilim verirseniz diyottan akım akmaya başlar ve bozulur.



Kazım

#4
Alıntı yapılan: Klein - 08 Ekim 2012, 16:25:32

0 seviyesi neden Vss-0.15?
0 seviyesi bu değil. Bu değer 0 değeri olarak verebileceğimiz en küçük gerilimi ifade ediyor.

Neden 0 dan küçük?
Çünkü: pin ile Vss arasına bir diyot bağlı. Bu diyotun eşik gerilimi de 0.15V. Eğer siz o pine -0.15V gerilimden daha düşük gerilim verirseniz diyottan akım akmaya başlar ve bozulur.



Yalnız low için bu =(VSS-0,15) değil      -->   ( min) VSS   (max)0,15 yazıyor.alttaki 2. resime bakın.

Evet RF modülün Outpul Low level 0 ile 0,5v arası  MCU ise İnout Low level VSS ile 0,15 arası.İşte burada RF nin outputunda 0,5v var olabilirse MCU da VSS ile 0,15 V arasında girişi Low kabul edecekse 0,2 mesela ne kabul edecek.

Arkadşlar olayı yanlı algılamış olabilirim.Ben işte bu durumu sorgulamak istiyorum.




[IMG]http://imageshack.us/a/img31/6672/cc1101iolevels.jpg[/img]

[IMG]http://imageshack.us/a/img10/4876/picmcuiolevels.jpg[/img]


Kabil ATICI

Devrende Schmitt-trigger(örneğin 4093 entegresinde olduğu gibi) yok ise 0 ve 1 seviyesinin arasındaki durum tanımsızdır ve ne olacağı belli olmaz. Bu tamamen giriş devrenin hassasiyeti ile ilgili bir durum olur.
Örneğin besleme gerilimimiz Vcc dersek
lojik 0 için 0.2 Vcc
Lojik 1 için 0.6Vcc
dersek ve bu durumda girişe 0.5 Vcc verirsek devremiz tamamen saçmalayabilir. Çünkü bu gerilimin üzerine çevreden gelen parazitleri de eklersek ne olacağı kestirilemez. Yani sonuç lojik1'de olabilir lojik 0'da veya sürekli ikisi arasında değişir.
ambar7

Kazım

#6
Alıntı yapılan: ambar7 - 09 Ekim 2012, 09:58:43
Devrende Schmitt-trigger(örneğin 4093 entegresinde olduğu gibi) yok ise 0 ve 1 seviyesinin arasındaki durum tanımsızdır ve ne olacağı belli olmaz. Bu tamamen giriş devrenin hassasiyeti ile ilgili bir durum olur.
Örneğin besleme gerilimimiz Vcc dersek
lojik 0 için 0.2 Vcc
Lojik 1 için 0.6Vcc
dersek ve bu durumda girişe 0.5 Vcc verirsek devremiz tamamen saçmalayabilir. Çünkü bu gerilimin üzerine çevreden gelen parazitleri de eklersek ne olacağı kestirilemez. Yani sonuç lojik1'de olabilir lojik 0'da veya sürekli ikisi arasında değişir.


Peki sadece MCU MISO pinine nasıl devre yapmalıyım sinyali kararlı hale getirmek için.Diğer pinler için böyle bir problem yok

Kabil ATICI

Seri haberleşmeli (i2C) türü sistemlerde 10K (Vcc ile hat) arasında pull up direnci konarak çalıştırılıyor. (hem data hattına hem de saat hattına)
ambar7

Kazım

#8
Alıntı yapılan: ambar7 - 09 Ekim 2012, 12:47:58
Seri haberleşmeli (i2C) türü sistemlerde 10K (Vcc ile hat) arasında pull up direnci konarak çalıştırılıyor. (hem data hattına hem de saat hattına)

Peki sağol I2C 10 k sız hiç çalışmaz zaten.Çünkü I2c 'de modul hattı sadece LOW 'a çekebilir.Direnç olmazsa kararsız konuma gelir.Modul eğer drive low 'da değilse SCK 'nın 0 yada 1 olduğunu anlayamayan her pheriphal ( eğer var ise hattın busy olup olmadığına karar veremez. ).Herneyse deneyer göreceğiz bakalım.Arkadaş direk bağlayarak sorun yaşamamış.Önce bir direk bağlayayım

İlgilendiğin için SAOL