Stránka 1 z 3

MKO pomocí CMOS logiky, deadtime generátor

Napsal: 21 říj 2023, 11:49
od samponek
Mezi dva PWM signály A B potřebuji vložit mrtvý čas 200ns pomocí CMOS logiky, monostabilního klopného obvodu.
Logika musí fungovat takto :
Když přijde jednička na výstupu PWM A, obvod ji propustí až za 200ns, když skončí, tak ji taky vypne.
Když přijde jednička na výstupu PWM B, obvod ji propustí až za 200ns, když skončí, tak ji taky vypne.
Délka jedniček se na obou výstupech mění, ale prodleva musí zůstat vždy stejná.
Cílem by mělo být, že budu mít jeden ( nebo i dva) nastavovací odpory u MKO, kterými budu moct měnit délku prodlevy. K odporům dám paralelně nebo sériově výstupy optočlenů a získám tím dynamický deadtime.
Moje představa je taková, obvod s hradly EXOR rozděluje PWM signál
Když je PWM v jedničce, je jednička na výstupu B
Když je PWM v nule, je jednička na výstupu A
Chci doplnit 4070 o CMOS MKO, jeden musí být spouštěný náběžnou hranou a druhý sestupnou, tím vznikne na obou výstupech mrtvý čas.

Nechci to řešit pomocí odporů kondenzátorů a diod mezi hradly, protože vybíjení nabitého kondenzátoru i 47pF přes diodu do výstupu hradla způsobuje zvonění a vzniká na něm úbytek, který posunuje nulu nahoru a čip se zahřívá, protože výstup pracuje v režimu zdroje proudu.

Napsal: 21 říj 2023, 13:26
od monterjirka
Prostuduj si co vše umí CMOS 4528 (nebo precizní verze 4538)

Napsal: 23 říj 2023, 18:45
od samponek
Musí to být zapojené jinak, hradlo má průchozí zpoždění 5ns a MKO asi 20ns, tím vznikne na výstupech impulz 15ns a pak začne mrtvý čas 200ns.

Napsal: 23 říj 2023, 19:02
od EKKAR
CMOSovej časovač 7555 to nestíhá?

Napsal: 23 říj 2023, 19:13
od Valdano
K tomuto účelu existují speciálně určené zpožďovací IO tzv. zpožďovací linky viz třeba ten níže odkazovaný, který má pět odboček. Každá odbočka má zpoždění 40ns a celkové zpoždění IO mezi vstupem IN a výstupem TAP5 je tedy 200ns.

Zdroj Farnell: DS1100Z-200+
Nízkopříkonová CMOS technologie a TTL/CMOS kompatibilní. 5 odbočková křemíková zpožďovací linka reprodukuje vstupní logický stav na výstupu po pevném zpoždění 200ns a má 40ns zpoždění na odbočku. Zpoždění jsou stabilní a precizní. DS1100 je navrženo pro reprodukci náběžné i sestupné hrany s totožnou precizností. Každá odbočka může budit až 10 74LS zátěží.

Podobných zpožďovacích IO je tam spousta z různými časy zpoždění.

Napsal: 23 říj 2023, 19:37
od danhard
Valdano, neraď samponkovi ptákoviny, není to v jeho stylu :D

U jednoduchých měničů používám HEF4047 a death time dělám přímo v buzení, přes odpor nabuzuji, přes diodu rychle odbuzuji + přídavný kond mezi gate.

Napsal: 23 říj 2023, 22:33
od Cust
styl nestyl, ty DSka používám a fungují ;-)

Napsal: 24 říj 2023, 09:16
od danhard
A co to stojí ? a najdeš to na šroťáku nebo v GME, HADEXu ? :lol:

http://www.djoro.cz/detail/elektronicke ... dil14.html

Napsal: 24 říj 2023, 09:53
od Cust
Jó, přístupy jsou různé... 8-)

Napsal: 24 říj 2023, 09:58
od danhard
samponek píše:Nechci to řešit pomocí odporů kondenzátorů a diod mezi hradly, protože vybíjení nabitého kondenzátoru i 47pF přes diodu do výstupu hradla způsobuje zvonění a vzniká na něm úbytek, který posunuje nulu nahoru a čip se zahřívá, protože výstup pracuje v režimu zdroje proudu.

To je samponku blbost, na jakejch megacyklech chceš pracovat, aby Ti to zvonilo ?
Taktéž ohřev IO zátěží 47p je hovadina.

Pokud potrebuješ jenom zpozdit nábežnou hranu, tak si tam dáš dvouvstupovej AND a jednu větev RC zpozdíš.

Pokud použiješ nejakej hotovej HiLo driver, třeba IR2181, tak budeš mít vstup v TTL logice a nějaký zpoždění inverze tě nebude trápit, takže nepoužiješ XOR ale NOR a ze zbytku uděláš to zpoždění.

Takové zpracování se hodí do časů v us, na delší časy je vhodný schmiťák, třeba 74HC132.

Takže do deníčku si zapracuj, jak se dělá zpoždění náběžné, sestupné hrany s AND, OR a jak uděláš to samé z NOR, NAND, jenom to přidá inverzi.
S XOR se zase dělá dobře tímto způsobem detekce hrany, nebo zdvojovač kmitočtu.

V CPLD se to dělá zase jinak, tam se to posune o nějaký počet hodin programově, základní hodiny jsou třeba 50MHz a PWM i death time se nastaví po 20ns.

ps. tu 4047 používám samozřejmě jen pro neřízené měniče se střídou 1:1 a mrtvý čas je tam aby to bylo ZCS.
4047 budí přímo ty nízkovýkonové MOSFETy, které jedou v push-pull.

Napsal: 24 říj 2023, 17:21
od nostalcomp
POZOR: až při vkládání tohoto příspěvku jsem si všiml, že to má být v CMOS logice. Čili následující text o TTL 7431 berte jen jako zajímavost.

Danhard mě předběhl, ale když už jsem se s tím kreslil, tak si dovolím předložit své řešení. Za prvé, nehledáme MKO, ale zpožďovač signálu (impulsu). To lze řešit různě. Rád bych připomněl existenci již pozapomenutého obvodu 7431, který je podle stránek TI stále v "aktivní službě" v provedení 74LS31. Obvod obsahuje 6 hradel s různými zpožděními. Nepotřebuje žádné pasivní součástky. Zpoždění jsou pevně daná a poměrně stabilní. Ale určitý malý rozptyl tam je, viz datasheet. Nastavování času deadtimu lze řešit skokově propojkou, či třeba jumperem (asi se to nemusí štelovat za provozu, že ne), viz. ukázka ve spodní větvi. Vhodné úseky lze nastavit vhodným pořadím hradel. Jen bacha, že 4 jsou invertující (NOT) a 2 neinvertující (YES). Bohužel maximum je asi 180nS, což neodpovídá původnímu požadavku. Ta šestice hradel sice na schématu vypadá "děsivě", ale tak hrozné to zas v praxi není. Výstupní hradla AND zajisti "katnutí" zpožděného impulsu příchodem log. 0.

Zpožďovací člen z hradel 7431 lze nahradit dvojicí hradel s RC článkem, viz schéma dole. Pro kratší časy to funguje spolehlivě i s běžnou 7404. Pro delší časy bych použil schmittův 7414, či podobný. Mám vyzkoušeno v televizních displejích, kde je nutné zpozdit zápisový impuls pro videoram, než dojde k přepnutí multiplexerů adres. Funguje to, čip se nehřeje ani nezvoní :)

Pro nonTTL signály lze namísto schmitťáků 7414 použít například i komparační OZ (LM293) a ANDa složit třeba z diod. Jak píše Danhard, lze si pohrát s optimalizací a použít ty typy hradel, které budou v daném zapojení k dispozici.

Další možností je ve zpožděné větvi použít starou dobrou 555 v zapojení zpožďovače signálu (viz. strana 7, resp 167).

A jako poslední možnost bych navrhoval vykašlat se na hradla a použít specializovaný obvod pro spínané zdroje s push-pull koncem, který ty deadtimy umí jaksi "od narození". Třeba SG3526.

Napsal: 24 říj 2023, 18:45
od danhard
Nostalcomp, připadá mi to stejně nezajímavé.

74LS31 možná koupíš v nějakém výprodeji, ale rozhodně bych se na něj do nových konstrukcí" neorientoval :D
Jednoduché zpoždění RC a pak logický člen ano, to taky popisuji výše, aby stačilo na realizaci jen jedno pouzdro.

Jenom poznámka, u TTL logiky není vhodné ladit čas pomocí R v širokém rozsahu (jak jsi to namaloval), u HCMOS, CMOS ano.

Samozřejmě existují obvody, které mají death time nastavitelný, ale to si nemůžu vzpomenout na typ, asi bych se musel podívat do nějakých mých starých designů :D

Napsal: 24 říj 2023, 19:14
od Cust
danhard píše:Samozřejmě existují obvody, které mají death time nastavitelný, ale to si nemůžu vzpomenout na typ, asi bych se musel podívat do nějakých mých starých designů :D
SY100EP195 jsem použil na aplikaci, kde jsem si řídil zpoždění procesorem, ale je to emitorově vázaná logika

Napsal: 24 říj 2023, 19:46
od danhard
Tak jsem se musel podívat, používal jsem UC1875 :D

Napsal: 24 říj 2023, 20:35
od danhard
samponek píše:Musí to být zapojené jinak, hradlo má průchozí zpoždění 5ns a MKO asi 20ns, tím vznikne na výstupech impulz 15ns a pak začne mrtvý čas 200ns.

U 12V CMOS logiky takové časy asi těžko.
Měl by jsi říct, z čeho to budeš budit, co to bude budit a jak to má být napájené ?
Dobře víš, že jsem v tomto oboru profesionál :lol: