Seviye çevirici (LEVEL SHIFTER ). 5V luk devreler ile 3V3 ile çalışan modülleri kullanmak.

Teknoloji geliştikçe ürünler daha küçülürken gerilim ihtiyaçları da düşmektedir. Önceden sensörler, modüller 5V ile çalışırken şimdilerde 3V3 ile ve hatta 1V8 e kadar gerilimler düşmektedir. Bu durumda kontrolcü 5V ile çalışıyorsa kullanılacak sensör ya da modül 3V3 ise modül ya da sensörler bozulmasın diye seviye çevirici ( LEVEL SHIFTER) kullanılmaktadır.

Bir çok kişi devre dizaynında bunu çizmez. Herkes bu şemayı uygular ya devre çalışmaz ya da modüller bir süre sonra bozulmaya başlar. Bazı modüller üzerinde kendi regülatörünü taşıdığından 5V dese de giriş uçlarına 3V3 seviyede bir sinyal gerilimi uygulanmasını söyler.
Böyle durumlarda seviye dönüşümü yapmak gerekir.
Aşağıdaki resimde HC-05 ve HC-06 bluetooth modüllerinin pcbleri var. PCB arkasında 3,6-6V arası çalışıyor deniyor. Fakat bir de hatırlatma var. Rx Tx için 3V3 seviyesinde sinyal kullanın diyor. Bir çok amatör bu dönüştürücüyü çizmez ve yapmaz. Bir süre çalışır sonrasında problem çıkarabilir.


Arduino kartlarının bazılarında 3V3 regülatör yoktur. Bunun yerine ch340 gibi usb seri çevirici entegreden çıkan ucu kullanır. Bu şekilde 3V3, 20-30ma akım alınabilir. Mesela ESP8266 yı beslemeye kalktığınızda bu akım yetmeyebileceğinden, Ya arduino kartlarının kendi 3V3 regülatörü olanı alacaksınız ya da dışarıdan 3V3 regülatör ile, 3V3 lük modülü besleyeceksiniz.

Modülü 3V3 ile beslemeyi başardınız. Fakat Arduino ve PIC entegrelerin 5V ile beslenenlerinin GPIO dediğimiz giriş çıkış uçları 5V çıkış verir. Bu da 3V3 modülün Giriş ucuna bağlandığında hemen sorun çıkarmasa da bir süre sonra bozulmasına sebep olabilecektir.

Bundan dolayı LEVEL SHIFTER kullanılmaktadır. Bu sistemi kullanmak istediğinizde karşınıza çeşitli seçenekler çıkar. Bazı entegreler bunu sizin için yapar. Bazı transistörlerle de bunu kendiniz yapabilirsiniz. Hatta aktif eleman kullanmayayım dediğinizde, sadece direnç kullanarak bu seviye dönüşüm devresini yapabilirsiniz.

Bu devrelerde farklılıklar vardır. Mesela direnç ile oluşturduğunuz devre sadece tek yönlüdür. Sadece 5V luk çıkış ucunun çıkışını, 3V3 lük giriş ucuna uygulamak için kullanırsınız. Yani 5V tan 3V3 e çevirir.

Peki 3V3 çıkışını nasıl 5V devresine vereceğiz derseniz. 3V3 < 5V olduğu için direkt bağlamamızın bir sorun yaratmayacağı görülmektedir. Burada, dijital devrede 3V civarına düşen gerilim sorun yaratır mı diye düşünebiliriz.  SORUN YARATMAYACAKTIR. Çünkü Dijital devreler 2V tan yukarısını HIGH seviyesi yani 1 seviyesi olarak algılarlar.

Dirençli devre aşağıdadır. Burada direnç çiftleri resimdeki gibi kullanılır.
Daha çok kullanılan 1K+2K  fakat bunu bu şekilde kullanırsanız 3V3 ten büyük gerilim oluşur. Biz ise 3V3 ü aşmasını istemiyoruz. Bundan dolayı örnek olarak aşağıdaki çiftleri kullanabilirsiniz.
1K + 1K8 ,  1K2 + 2K2 , 2K2 + 3K9 çiftlerini kullanabiliriz. Bu devrenin çıkışı 3V3 ten aşağıda olacaktır. 3V3 yerine 3V7 gelse bozulur mu. Normal şartlarda bozulmaz diyebiliriz. Fakat bazen yaptığımız devreler aşırı sıcaklarda denenebilir. Bu durumda belki de zarar verebilir.

Yukarıdaki kartı tek yönlü seviye dönüştürme ihtiyaçlarım için yaptım. Hem modüllerin 3V3 güç ihtiyacını karşılamak. Hem de 3v3 lük modülün giriş uçlarına 5V devreden 3V3 seviyesine düşürülmüş sinyal vermek. Bu TEK yönlü bir dizayn olmasına rağmen, çift yönlü ihtiyacınız I2C haricinde pek olmayacak. Tabii ki standart protokollerde. Fakat zaman içerisinde çift yönlü olanlara da ihtiyacınız olabilir. Ya kendi pcbnizi yaparsınız ya da modül olarak satın alırsınız. Satın alırken tek yönlümü yoksa çift yönlü modül mü alacağınıza karar vermeniz gerekir.
Bunların yanı sıra DİRENÇLİ olarak bir başka çözüm daha var. Her ne kadar bunu tavsiye etmesem de bilmenizde fayda var. Aşağıdaki sdcard modül piyasada satılıyor. Yukarıda gösterdiğim gerilim bölücü direnç yerine 1K civarında tek seri direnç takılıyor. Bazen bunu ESP 3V3 devrelerinde de seri port girişinde görebilirsiniz. Bu 5V luk sinyal geriliminin sadece akımını sınırlıyor. yani 3V3 gerilime düşürmüyor. Şayet üzerinden 1,7mA akım geçerse direnç üzerinde 2V civarı gerilim düşümü olur. bu şekilde devreye uygulanan gerilim 3V civarı olur. Fakat modül girişi yüksek direnç gösterebileceğinden 1K üzerinde 2V kalmayacağı için modüle yaklaşık 5V uygulanmış olacaktır. Fakat modül ısındıkça akım çekmek istese, 1K lık direnç akımı sınırlandıracağından koruma görevi yapacaktır. Aşağıdaki modülde de böyle bir koruma görüyorsunuz.R1,R2,R3,R4dirençleri  SPI  girişlerine konulan  koruma dirençleridir.


Entegreli LEVEL SHIFTER : 

CD4050 entegre bazı SDkart modüllerinde kullanılmaktadır. 3V3 ile beslendiğinde, girişi 15V ta kadar değişse de çıkış ancak VCC yani 3V3 olacaktır. Bu da seviye dönüşüm olarak kullanılsa da tek yönlüdür. Bundan dolayı 5V tan 3V3 girişe bağlanırken kullanılır. Aynı dirençli devreler gibi.


74125 entegresi de benzer uygulamalarda kullanılmaktadır. Fakat düşük gerilimle çalışanlarını seçmeniz gerekir. Tek yönlü seviye çeviricidir. Bu entegreler VCC gerilimi olarak 3V3 ile beslenir. Giriş gerilimi 5V ta kadar kabul etse de ÇIKIŞ gerilimi VCC+0.5V kadar olacağından LEVEL SHIFTER olarak kullanılmaya uygun olmaktadır. 4050 entegresi CMOS tip entegre olduğundan giriş gerilimi 10-15V lara kadar kabul etse de ÇIKIŞ gerilimi VCC+0.5V olacağından 3V3 civarında olacaktır. CMOS entegreler 12V luk sensörlerin 3V3 devrelere bağlanmasına da olanak sağlar. 74125 gibi TTL entegrelerle bunu yapamazsınız. Bu tip entegreler maksimum 6.5V civarında çalışır. Kullanacağınız devreye göre entegre seçebilirsiniz.

Bunlardan başka bu tip seviye çevirici işini üstlenmiş entegrelerde bulunmaktadır.
Aşağıdaki devre 1.8V ile 3V3 arasında bir dönüşüm yapmaktadır. Çift yönlüdür.


Bir de entegre olarak görünen transistörler vardır. Bu devrede 1 entegrede 2 transistör mevcuttur. 4 kanallıdır ve Çift yönlüdür.

8 kanallı LEVEL SHIFTER BIDIRECTIONAL ( Çift yönlü )

 

MOSFETli LEVEL SHIFTER : 

Bir de mosfetli seviye dönüşüm modülleri vardır. Birbirine benzeyen modüller olsa da bazı modüller tek yönlüdür. Vereceğim devre ise BSS138 mosfetlidir ve çift yönlüdür. Bundan dolayı her iki yönlü kullanılabilmektedir. Bu tip bir dönüşümü I2C gibi aynı hattan veri alıp veri gönderen devrelerde kullanmak daha mantıklı olacaktır. Çünkü I2C de SDA hem giriş hem çıkış olarak kullanılmaktadır. SCLK=SCK ucu ise tek yönlü saat palsında kullanılır. Fakat yine de 5V luk master cihaz olduğunu düşünürsek onu da seviye dönüşümden geçirmemiz gerek.
I2C devrelerinde dirençli tip kullanırsanız, geri gelen bilgiyi alamayacaksınız demektir. Çünkü zaten düşük gerilim var bir de arada direnç olacaktır. gerilim düşümü çok olacaktır. Bu tip ürünler yüksek frekanslarda hata yapabilirler. bundan dolayı istediğiniz frekansa göre sizler devreyi kurabilirsiniz. 

Videoda Proteus üzerinde çalışmasını anlattım.

Yukarıdaki resimlerde I2C için pull up direnci ne olmalı diye bilgilendirme var. Fakat verilen bilgiler 5V luk devreye göredir. 3V3 lük tarafta bulunan pullup dirençlerini resimdeki formülden hesaplayabilirsiniz.

NOT : Bu tip devrelerde 5V ve 3V3 gerilimlerinin devrenin hangi tarafına bağlanacağı önemlidir. Mosfetin diyotunun katot tarafı, Büyük gerilim tarafı olacak şekilde bağlanmalı. Küçük gerilim, Anot tarafına bağlanmalıdır. Buna dikkat etmezseniz AŞAĞIDAKİ resimdeki gibi 3V3 ten daha büyük gerilim geleceğini görebilirsiniz. Bu da modülünüzü bozar. Sebebi ise Diyot’un üzerinde kalan gerilimler arasındaki potansiyel fark diyotun doğru yönde iletime geçmesine sebep olacaktır. Bu da 3V3 lük gerilimin yükselmesine neden olacaktır. Aşağıdaki devre yukarıdaki devrenin aynısı gibi görünmesine rağmen, 5V ve 3V3 gerilimlerinin yeri terstir. Bundan dolayı 3V3 lük modülünüz ya da sensörünüz bozulabilir. Bu konu videoda gösterilmiştir. 


MOSFETli seviye dönüştürücüsünün Çalışması: 

Seviye değiştiricinin çalışması sırasında aşağıdaki üç durum dikkate alınmalıdır:

1. Hiçbir cihaz veri yolu hattını LOW düşük seviyeye çekmiyor. ‘Düşük voltaj’ bölümünün veri yolu hattı, pull up dirençleri Rp tarafından 3,3 V’a getirilir. MOS-FET’in kapısı ve kaynağı, 3,3 V’tadır, Bu nedenle VGS’si ( GATE-SOURCE) eşik voltajının altındadır ve MOS-FET iletken değil. Bu, ‘yüksek voltaj’ bölümündeki veri hattının pull-up direnci Rp tarafından 5 V’a çekilmesine izin verir. Dolayısıyla her iki bölümün veri hatları YÜKSEK, ancak farklı bir voltaj seviyesindedir.

2. 3,3 V’luk bir cihaz, veri yolu hattını LOW (DÜŞÜK) bir seviyeye çeker. MOS-FET’in kaynağı(source) da LOW (DÜŞÜK) olur, kapı ise 3,3 V’ta kalır. VGS eşiğin üzerine çıkar ve MOS-FET iletmeye başlar. ‘Yüksek voltaj’ bölümünün veri yolu hattı daha sonra iletken MOS-FET aracılığıyla 3,3 V cihaz tarafından LOW (DÜŞÜK) bir seviyeye çekilir. Böylece her iki bölümün veri yolu hatları aynı voltaj seviyesinde LOW (DÜŞÜK) olur.

3. 5 V’luk bir cihaz veri hattını LOW (DÜŞÜK) seviyeye çeker. MOSFET’in ‘düşük voltaj’ bölümünün drenaj-substrat diyotu, VGS eşiği geçene ve MOS-FET iletime başlayana kadar LOW (DÜŞÜK) seviyesine çekilir. “Düşük gerilim” bölümünün veri yolu hattı daha sonra iletken MOS-FET aracılığıyla 5 V cihaz tarafından DÜŞÜK seviyeye çekilir. Böylece her iki bölümün veri yolu hatları aynı gerilim seviyesinde LOW (DÜŞÜK)olur.

Ayrıca BJT transistörlerle de yapılan devrelere rastlayabilirsiniz. 

NOT : Bu tip modülleri alırken çift yönlü ya da bidirectional modül diyerek satın almalısınız.


Bütün bunlardan farklı olarak, Seviye Dönüştürme metodu olarak gösterebileceğimiz çalışma da söz konusudur. Mesela 5V arduino ile 12V luk röleyi transistörle sürmek gibi.


Yukarıdaki devrede 5V luk transistör baz ucundaki sinyal Mikrokontrollerdan gelen 5V olarak kabul edin. Baz HIGH olduğunda transistörün kolektörü GND ye yakın. LOW olduğunda ise transistörün kolektörü 12V olacaktır. R2 yerine röle konulduğunda 12V luk rölenin çekmesi için BAZ gerilimi HIGH seviyeye çıkar. ve 12V transistör üzerinden akım akarak röleyi çalıştırır.
Bununla birlikte tek transistör kolektör çıkışlı devreler sinyalin tersini çıkarırlar. Yani BAZ, LOW ise kolektör HIGH seviyesine ulaşır. Bu dijital çalışmada giriş ve çıkışın terslenmesi demektir. Giriş LOW olduğunda Çıkış HIGH oluyor. Giriş ve çıkışı eşitlemek isterseniz arka arkaya 2 transistör bağlamanız gerekecektir. Bunun için Transistörler yazıma bakabilirsiniz.

Transistörler hakkında daha ayrıntılı bilgi almak isterseniz Transistörler yazıma bir göz atabilirsiniz. 

Bazı proteus dosyalarını açamayabilirsiniz diye PDF dosyasına çevirdim. Tüm dosyalara buradan ulaşabilirsiniz. 

GITHUB Yazılarıma ait dosyaları ayrı ayrı indirmek isterseniz, indirmek için bu siteyi kullanabilirsiniz. 

Not: Proteus 7.10 versiyonu ile çizdiğimden bu versiyonun yukarısındaki tüm versiyonlarla açabilmeniz gerekir.


 

 

 

2 Comments

Samet ayan için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak.