Lojik Devre Sadeleştirme...

Başlatan Erol YILMAZ, 02 Temmuz 2010, 23:51:20

picmanya

#15
devreyi birdaha inceledim de 2 pin kullanmakdan daha önce ir21xx li bootstrap sürme yöntemi için devre tasarlanmış.
şemadaki lojikde H-köprüdeki üst transistörler kapalı iken pwm hattıda sıfıra çekiliyse alt transistörler devamlı aynı anda devrede oluyor bu motorun sık sık frenlenmesine neden olur?
bu tür bootstrap yöntemli bir çalışmada üstlerin ikiside kapalı iken alttaki transistörlerden yalnızca birisi yani gereken devreye alınıp çıkarılmıyormuydu?son olarak bu yöntem daha doğru ve kabul gören bir yöntem olarak biliyorum.
üstler kapalı iken altlar aynı anda devreye alınıp çıkarılsada motor pwm frekansının duty saykılı dışındaki zamanlarda habire frenlense de iş oluyor olabilir ama burası benim kafama yatmadı.Yeni sürme tekniklerine uygun değil diye düşünüyorum.
3 üncü bir pin ilavesi ile lojik devre tasarlansa daha iyi olurdu.bu girişler  DIR. ,PWM. , FREN
çıkışlar yine doğal olarak mecburen 4 tane.

Erol YILMAZ

@picmanya,

Öncelikle şu linkteki mihri nin tecrubelerini okuyabilirsin.
https://www.picproje.org/index.php/topic,28083.0.html


Erol YILMAZ


camby

Farnell'de bir de dip kılıfta olanı vardı..

Anladığım  kadarıyla FPGA'e atlamak yerine CPLD,PAL öğrenmek çok daha yararlı olur ilk etapta.

Erol YILMAZ

PAL16R6 için doğru dürüst bi kod geliştirme ortamı bulamadım.
Atmel in Wincupl adlı yazılımı da kendi ürünlerine destek veriyor hali ile.
Ben de Lattice nin GAL16V8D modelini buldum.  Sanırım Atmel in modelleri ile 1-1 uyumlu.
1.75$ a Monel'den satın aldım. Deneyemedim daha...



acemi2010

Merhabalar;
Sayın hocam; haddim olmayarak konuya maydanoz olduğumun farkındayım; ama frenleyemedim kendimi. Yukarıda çizdiğiniz devrenin fonksiyonu çıkarılılırsa
- DIR girişine X ve PWM girişine Y dediğimizi
- Çıkışlara ise yukarıdan aşağı şekilde A,B,C ve D dediğimizi düşünelim
Bu durumda çıkış fonksiyonları şu şekilde olacaktır (çizime göre !...)

A = X'.Y
B = X.Y
C = (X'.Y') + X
D = (X.Y') + X'

C ifadesi sadeleştirilirse  C = (X'.Y)' = A'
D ifadesi sadeleştirilirse  D = (X.Y)'  = B'
olacaktır. (Not eğer nasıl sadeleştiğini sorarsanız detaylı açıklarım).

Eğer NOT yerine NAND kullanırsanız sadece 5 adet NAND kapısına ihtiyacınız olur.


Saygılarımla
Timuçin.




Erol YILMAZ

#21
Çok sağlam bi sadeleştirme olmuş,
Nasıl olduğunu açıklar mısın ?

İşlemler doğru ise bu devre 2 entegre ile kurulabilir.

Ayrıca PALASM programını da Ahmet Özmen hocamın sayesinde aldım.
http://rapidshare.com/files/406070184/PALASM.rar

Programı C kök dizinine açtıktan sonra çalıştırabilmek için
ortam değişkenini tanımlamanız gerekiyor.
PALASM     c:\PALASM\   
olarak

XP de çalıştırdım Win7 de çalıştıramadım.

Yazdığım kodu da derledim fakat şu anda JEDEC kodunu elde edemedim :)
Ne zor oldu bea :)

picmanya

#22
tebrikler iyi bir sadeleştirme olmuş
sadeleştirmenin nasıl yapıldığı ile ilgilenmiyorum
yalnızca bu lojik devreyi makul bir tarzda kendi elektronik kartımda kullanmak istiyorum.

şu durumda önceki lojikde 3 farklı kapı entegresi üzerinden toplam 8 kapı kullanımı ile iş yapılıyordu.
yeni lojikde ise 2 aynı kapı entegresi üzerinden toplam 5 aynı türden kapı kullanımı ile iş görülüyor.

amaç gizlilik değilse, hangi yöntemi kullanmak daha avantajlı konuma geçiyor cpld-pal ilemi devreyi kurmak?
yoksa iki tane smd soic kılıf nand kapı entegresiylemi devreyi kurmak.

bu konuda ne söylenebilir?



picmanya

#23
işi bilen H-köprücü motor kontrolcülerde sağolsun bu konuya hiç karışmadılar.bir fikir beyan edin be arkadaşım.yaşıyorsanız bilseydik.

bu devre ile sonuçda 4 mosfetli H-köprü kontrol edilip dc motor sürülecek.ama bu tür köprü devrelerinde seri bağlı mosfetlere dead time denilen bir güvenlik zamanıda ilave edilmek zorunda.genelde bu zaman 2-3 mikro saniye verilir.

son lojik şemada A çıkışı ile C çıkışınının kontrol ettiği mosfetler ile B çıkışı ile D çıkışının kontrol ettiği mosfetler birbirine seri bağlı konumda.

bunların arasında bir dead time gecikme zamanı bu lojikle şu anki haliyle uygulanamazki.
bu zaman gecikmesi yani dead time zamanı nasıl  uygulanacak.

bu lojiğin süreceği dc motor kontrol edecek H-köprünün mosfetleri belki yanmaz ama gereğinden fazla ısınıp güç harcar diye düşünüyorum.bu da başta dc bara kondansatörünün çalışmasını zorlaştırıp yıpranmasını arttırabilir.mosfetleride zamanla delebilir.

DIR, PWM haricinde üçüncü bir pin kontrolüde dead time için gerekir diye düşündüm.sanki böyle bir devre görmüştüm ama bulamadım arandığında bulunmaz zaten bir şey.

H-KÖPRÜ USTALARI FİKİRLERİNİZ NEDİR?


acemi2010

#24
Merhabalar;

Alıntı yapılan: Allegro - 10 Temmuz 2010, 01:07:20
İşlemler doğru ise bu devre 2 entegre ile kurulabilir.

Aslında 1 adet entegre işinizi görür gibi geliyor bana.
"X girişi altındaki NOT (çizimde NAND) kapısın yerine, bunu 2 direnç 1 transistörle evirerek gerçeklerim" derseniz, 2 direnç 1 npn transistör ve 1 adet 74XX00 yeterli gelir.

Ama yazılarınızdan, PAL'lerle ilgili mevcut tecrübelerinizi ilerletmek gibi bir çaba sezdiğim için, aslında içimden "ne gereği var şimdi bu sadeleştirmenin timuçin" diyordum kendi kendime. PAL'lerle ilgili en ufak bir bilgim ve/veya tecrübem olmadığı için, bu konuyu pür dikkat takip ediyorum.

Sadeleştirme için 2 ana Logic kural'ı göz önüne aldım.
a'+ b' = (a.b)'  (kural1)
(a+b)' = a'.b'  (kural2) (gerçi bu kuralı kullanmadım...)

C = (X'.Y') + X  = (X'.Y') + X.(Y'+1)    burada (Y'+ 1)=1 olacağından ifade değişmez
C =  X'.Y' + XY' + X =  X'.Y' + X.Y' + X.X + X.X'     burada X.X = X  ve X.X' = 0 olacağından ifade yine değişmez
C= (X'+X).Y' + (X'+X).X = (X'+X).(Y'+X)    burada (X'+X) =1 olduğundan
C = (Y'+X) ifadesine ulaşılır ki kural1 kullanılarak C = (Y.X')' ifadesi sonuç olacaktır.


D = (X.Y') + X' = (X.Y') + X'.(1+Y')   burada (1+Y')=1 olacağından ifade değişmez.
D = X.Y' + X' + X.X' = X.Y' + X'X' + X'.Y' + X.X'  Burada X'.X'=X' olduğundan ve X.X'=0 olduğundan ifade değişmez
D = X'.(Y'+X') + X.(Y'+X') = (X'+X).(Y'+X') burada (X'+X)=1 olduğundan
D = (Y' + X') ifadesine ulaşılır. kural 1 kullanıldığında ise D = (Y.X)' ifadesi sonuç olacaktır.

Ama "Timuçin, teoremlerle kafamızı bulandırmasana beee" derseniz 2inci sadeleştirme alternatifi, Karnaugh Diagramına dökmek derim.



Neyse daha fazla kafa ütülemeden......
saygılarımla
Timuçin

Erol YILMAZ

@picmanya,

H köprüsünü direkt olarak buradan çıkan sinyalle sürmeyeceğim,
arada kalan sürücü (HIP4081A) bu dead-time olayını da hallediyor.

--------------------------------------------------------------------------------------

@acemi2010,

Bu tarz Lojik devrelerle uğraşmadığım için baya unuttuğum bi konu olmuş bu.
Sadeleştirme, çizdiğin Karnough map ve 2 kural ile çok daha anlaşılır oldu.
Toplam fonksiyonundan çarpım fonksiyonuna geçince pratiklik sağlıyoruz. bunu anladım.

Düşündüğün gibi bu lojik işlemleri PAL'e yaptırmak istemem sadece bu fonksiyonlar için değil.
Daha farklı şeyleri de PAL'in içine gömmek istiyorum.

Net açıklamaların için teşekkürler...

ferdem

#26
Allegro hocam verdiğiniz ilk çizimden doğruluk tablosuna geri dönersek:
DP F1 F2 F3 F4
00  0   0   1  1
01  1   0   0  1
10  0   0   1  1
11  0   1   1  0

F1 in F3 in değili, F2 nin de F4 ün değili olduğu görülür(bunu şemadan da görebiliriz). İster F1, F2 i gerçekler F3 ve F4 için terslerini alırsınız, isterseniz de tam tersi.

F1= D'.P dir
F2= DP dir.
F3=F1'
F4=F2'

Bu 4 fonksiyonu gerçeklemek için 3 NOT kapısı, 2 tane de AND kapısı gerekir. Yani bir tane 7400 ve bir tane 7408 veya acemi2010 arkadaşın dediği gibi 5 tane NAND, eğer F3 ve F4 ü gerçekleyip F1 ve F2 yi ters alarak yapsaydık 3 NOT, 2 OR  veya 5 tane NOR ile yapılabilirdi. İyi çalışmalar.

Düzenleme: Bir cümle daha anlaşılır yazıldı.

Erol YILMAZ

Arkadaşlar hepinize teşekkürler,
Bu şematiği basitleştirip uygulamak için birçok yol öğrendim.
GAL ile yapmak istersek izleyeceğimiz yol kısaca şöyle,  ( Piyasada genelde Lattice marka GAL var )

Atmel in WINCUPL yazılımını indiriyoruz.
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2759

Lojik işlemlerimizi sadeleştirip kodunu yazıyoruz.  Olay bu,

Çıkan kodu (.JED uzantantılı) yani GAL in HEX i :)
İster ISIS de simule edin, isterse entegreye yazın. Her türlü çalışıyor.