Fórum témák

» Több friss téma
Fórum » Digitális labortápegység
Lapozás: OK   16 / 22
(#) freddyke hozzászólása Nov 11, 2017 /
 
Nagyjából átfutottam a teljes fórumot. Látom, hogy a "tux féle" táp volt az eredeti kiindulási alap. Elvesztettem a fonalat, hogy menet közben sikerült-e jobb kapcsolásokat találni. Ha van ilyen egyáltalán, melyik konkrét kapcsolás vált be leginkább és mi várható el tőle?

Azért érdekelne, mert elgondolkodtam, egy mikrokontroller vezérlésű labortáp készítésén. Két koncepciót tudnék elképzelni.

1. verzió
Lehetőleg célraszabott IC-k felhasználásával (sajnos még nem találtam ilyet) vagy hagyományos módon (műveleti erősítők, feszültségszabályozó (pl. Linear LT3083 felhasználásával)) megépített (analóg) kapcsolás, ami a szabályozást (feszültség és áram) önállóan megoldja. A uC ezt a kapcsolást vezérelné (DAC-vel, nem PWM), illetve mérné a feszültséget és áramot (mint a kapcsolás által előállított kész értékeket).

2. verzió
A tux-hoz hasonló egyszerű, vagy "szebben megoldott" módon, a uC végezné a teljes szabályozást. (Esetleg egy analóg védelemmel ellátva, hogy egy maximális áramnál semmiképp ne folyhasson át több.) Erre nem igazán találtam népszerű, bevált kapcsolást, amit nyugodtan meg mernék építeni.

A 2. verziót láttam, hogy elvetettétek 2011 környékén, ha jól értettem azért, mert a PWM lassú, a natív DAC-k drágák vagy elérhető áron alacsony felbontásúak voltak.

Attila86 2012-ben írt válasza mennyire állja meg a helyét esetlegesen azóta szerzett tapasztalatok alapján?
Idézet:
„Sokszor ki lett már vesézve hogy egy mikrovezérlő nem alkalmas arra hogy egy labortápban az áteresztő tranzisztort önmagában vezérelje. Azért nem, mert lassú. Ennek ellenére létezik a neten pár ilyen megoldás, de azok olyan messze vannak a "labortápegység" fogalmától mint Makó Jeruzsálemtől.

A szabályozókörnek mindenképp analógnak kell lennie. A mikrovezérlő pedig az alapjelet kell hogy szolgáltassa, melyből a különbség-képző a hibajellel együtt előállítja a beavatkozó jelet.”

Van 2db felhasználatlan ATXmega64A1-em 12 bites DAC és ADC konverterekkel. A 2-es verzióhoz elég nagy felbontású a 12 bites DAC ha elég 0.1V és 0.01-0.1A felbontás? Elég gyors, hogy szoftverből lekorlátozza a kimenetet rövidzár esetén? Vagy felejtsem el?

Leginkább csak biztos, mások által kitaposott útba mennék bele építéskor, legalábbis, ami az analóg részt illeti (ahhoz nem értek sajnos). A uC programozást nullából is meg tudom oldani, nincs szükségem más kódjára (bár hasznos lehet). A legagyobb gond a TQFP tokázású IC beültetése, amit profi szakemberre bíznék. A teszt verzióhoz kellene egy "konverter nyák", amivel kézzel forrasztható méretűre vezetem ki a lábakat.

Megköszönnék bármilyen jellegű hozzászólást a fentiekhez, hogy érdemes-e egyáltalán ilyesmiben gondolkodni.
(#) Bakman válasza freddyke hozzászólására (») Nov 11, 2017 /
 
A dinamikus terhelés, pl. egy PWM + ellenállás (viszonylag kicsi, nagy terhelést okozva) a legtöbb tápegységet megvicceli.
(#) Bakman válasza freddyke hozzászólására (») Nov 11, 2017 /
 
Magad idézted, hogy egy kontroller nem alkalmas a feladatra, közvetlen utána mégis használni akarod. A pákahúzós módszer működik véső alakú heggyel is: SMD forrasztás.
(#) freddyke válasza Bakman hozzászólására (») Nov 11, 2017 /
 
A PWM + ellenállás-os terhelés kivitelezését úgy érted, hogy kis értékű ellenálláson + tranzisztoron keresztül megszaggatni a táp kimenetét? Csak uC-el megvalósított tápegységet vicceli meg vagy általában a labortápegységeket?

Az idézet óta eltelt 5-6 év, illetve (ahogy láttam) PWM-ben gondolkodott a többség vagy külső DAC-ben. Ezeket én sem tartom jó ötletnek. A kérdésem az ATXmega64A1-re vonatkozik saját 12 bites saját DAC és ADC konverterekkel ellátva. 32MHz-en hajtva felveheti a versenyt egy analóg kapcsolással vagy továbbra is elmondható, hogy a közelébe sem ér? Ha az utóbbi, ki és honnan jutott erre a következtetésre, kísérletezés vagy elmélet alapján? (Számomra nem derült ki a fórumból.) Már csak azért is érdekelne, mert Assembly-ben, a lehető legkevesebb óraciklusból megírható kódokban mindig is jeleskedtem (a uC-ben a konvertálási időknek nem néztem utána).

A forrasztási tippet köszönöm (talán idővel lesz hozzá egy megfelelő forrasztóállomásom).
(#) Bakman válasza freddyke hozzászólására (») Nov 11, 2017 /
 
Nem. A tápegység kimenetére kötöttem ellenállást, azzal sorba pedig egy MosFET-et, majd a FET-et PWM-mel hajtottam (az egyéb kiegészítő részeket hagyjuk) és néztem a tápegység kimenetét. Tudtak ugrálni szépen. FET kikapcsolásakor túllövés, bekapcsolásakor nagy feszültségesés.
Több tápegységet teszteltem, mindegyik hasonlóan viselkedett, talán a modernebbek kicsit jobban tűrték a stresszelést, nem ingadozott annyit a kimeneti feszültség.
Ha ilyen jellegű terhelést akarsz ráengedni egy tápegységre, érdemes a terhelés és a tápegység közé jó nagy kondenzátorcsomagot rakni.

Hiába 32 MHz a kontroller órajele, az adatot mérni kell, számolni vele majd beavatkozni. Ez, legalábbis ebben a helyzetben lassú művelet. Gondolom próbálták már többen is, de az elmélet is ezt mutatja. Valószínűleg van olyan kontroller/processzor, ami elég a feladatra de szerintem az nem egy 32 MHz-es 8-16 bites játékszer.
(#) cimopata válasza freddyke hozzászólására (») Nov 11, 2017 /
 
Alapjában véve szabályozástehnika hogy bizonyos átviteli jellemzőkhöz a gerjedés elkerüléséhez maximum mennyi belső késleltetés megengedhető. 32Mhz önmagában sem túl sok de mivel pl nincs a prociban hardveres osztás ami ilyen feladatnál fontos lehet az eléggé elnyújtka a ciklusonkénti számítási időt. 2Msps mintavétel még el elmegy.

Vannak gyorsabb mikrovezérlők amivel már megoldható a direktben vezérlés kimondottan ilyen célre: Bővebben: Link

-2x 5Msps ADC
-72Mhz clock
-hardveres osztás
-217ps nagy felbontású PWM amivel már közvetlenül hajthatod a kimeneti mosfetet pl 100kHz-en.

És az a poén hogy röhejesen olcsóbb mint a linelt ATMEGA.
(#) freddyke válasza Bakman hozzászólására (») Nov 11, 2017 /
 
A tesztelést jól értettem (csak ezekszerint nem jól érhetően írtam le). Köszönöm a leírást.

Alapvetően nekem is az volt az érzésem, hogy a uC nem elég gyors, a tux-os projekt belém ültette a kíváncsiságot, hogy talán mégis. Arról, hogy nem elég gyors olvastam bejegyzéseket más fórumon is, de nem találtam konkrét magyarázatot. Nagyon érdekelne mire van alapozva, esetleg konkrét teszt, ami alátámasztja.

Ráhagyással számolva 10-20 mikroszekundumon (0.01-0.02ms) belül valószínűleg megvalósítható, hogy a Shunt-ra kötött ADC észreveszi a feszültségváltozást (rövidzár) és a DAC-n keresztül kikerül a táp kimenetét lekapcsoló jel. ADC átalakítás (3.5us), kód végrehajtás (valószínűleg 64 óracikuson, 2us-on belül megvan), DAC-re jel kiadása (1us). Összesen 6.5us. Egy tisztességes labortápban levő analóg áramkör milyen gyorsan reagál hasonló helyzetben vagy miben más?
(#) freddyke válasza cimopata hozzászólására (») Nov 11, 2017 /
 
Köszönöm a választ. Már megírtam az előző választ, sajnos csak utána láttam a hozzászólásod. A linkelt ATxmega64A1-ből 2db rendelkezésemre áll. Ingyenes alkatrészmintaként kaptam a forgalmazótól.

Osztásra nem gondoltam. A Shunt-on levő feszültséget (ADC-ről levett érték) a konkrét (beállított áramkorlát) értékkel kellene összehasonlítani. Úgy nézem ezt az Atmel és az általad linkelt típus is hardverből tudja.

ATxmega64:
"The ADC has a built-in 12-bit compare function. The ADC compare register can hold a 12-bit value that represents a threshold voltage. Each ADC channel can be configured to automatically compare its result with this compare value to give an interrupt or event only when the result is above or below the threshold."

STM:
"An interrupt is generated when the converted voltage is outside the programmed thresholds."

Az idő zöme nem az a pár soros ASM kód (ami tulajdonképpen csak kiadja az DAC-re a lekapcsolást), hanem a hardveres ADC konverzió/threshold vizsgálat, hardveres megszakítás (esemény) kiváltása (gyanítom néhányszor tíz óraciklus) és a DAC konverzió.

Az előző hozzászólásban durván 6.5us-ot számoltam, szerintem eleve sok, de vegyük 10us-nak (100KHz). Kevés?
(#) cimopata válasza freddyke hozzászólására (») Nov 12, 2017 /
 
Most kapcsolóüzeműt akarsz vagy lineárisat?
(#) freddyke válasza cimopata hozzászólására (») Nov 12, 2017 /
 
Ha a lineáris alatt a hagyományos trafós+Graetz-hidas "előtápot" érted, akkor olyat. A mikrovezérlőt a kimeneti áram és feszültség szabályozására (vagy ha analóg szabályozás van, akkor az analóg szabályozó rész vezérlésére) gondoltam. A kapcsolóüzemű "előtápnak" lenne valamilyen előnye mikrovezérlős táp esetén?

A Lajos által megépített (ha jól értem tux-féle vagy annak javított változata?) kapcsolás inkább csak statikus terhelésre való vagy tudja azt, amit egy tisztességes labortáptól el lehet várni?

Ha ebben a kapcsolásban kicserélem a mikrovezérlőt az ATxmega64A1-re (vagy az STM32-re), illetve felváltom a "PWM+ellenálláslétra" megoldást az integrált 12 bit-es DAC-vel, lényeges javulást lehet elérni? (Elég gyors a 10us reakcióidő rövidzárvédelemnél?)

Esetleg tudtok ennél jobb (megépített, kipróbált) mikrovezérlős kapcsolást? (Nem ragaszkodom mindenáron a mikrovezérlővel szabályozáshoz, ha végeredményben jobb vagy lényegesen egyszerűbb lenne a szabályozó részt analóg módon megoldani, bár ehhez sem találtam kiforrt kapcsolást.)
A hozzászólás módosítva: Nov 12, 2017
(#) Attila86 válasza cimopata hozzászólására (») Nov 12, 2017 /
 
Szerintem a kapcsolóüzemű jobb lenne. Az áramkör komplexitása tekintetében egy mikrovezérlővel szabályozott analóg áteresztő táp még talán bonyolultabb is mint egy kapcsolóüzemű. Hiszen analóg esetén kell például egy valamiféle D/A átalakító, kapcsolóüzemű esetén pedig elegendő PWM-et generálni a FET-nek.
Reakcióidő tekintetében pedig kb hasonló lehet az analóg és a kapcsolóüzemű is.

Én is találtam egy mikrovezérlőt ami ide talán ideális lehet: dsPIC33EP128GS806. 70MIPS, hardveres osztás, DMA, 12 bites és 3.25Msps-es A/D pl hardveresen támogatott túlmintavételezéssel és átlagolással, High-Speed PWM pedriféria pl dead-time állítási lehetőséggel és 1,04ns felbontással stb., 2db 12 bites DAC, 2db digitális komparátor, 2db nagy sebességű analóg komparátor, 2db programozható erősítő, 4db konfigurálható logikai cella, Peripherial Trigger Generator.

A reakcióidő tekintetében egyébként szerintem a legkisebb keresztmetszet az A/D sebessége lesz. Az említett PIC 3,25Msps-ével kb 0,3us egyetlen mintavétel ideje. Szerintem a teljes reakcióidő tartható lenne pár us idő körül, amin esetleg már érdemes lehet elgondolkodni...
(#) Kovidivi válasza freddyke hozzászólására (») Nov 12, 2017 /
 
Azt írod, hogy egy kitaposott utat szeretnél követni, viszont kiválasztasz egy olyan uC-t, amiből senki más nem fog ilyen szerkezetet építeni. Szerintem a 32MHz kevés. A feszültséget, áramot folyamatosan kell mérned, és a programod 90%-ban csak ezeket az értékeket hasonlítgatja össze a beállítottal. A maradék időben kijelzőt kezelni, számolni a kijelzendő értékeket, gombokat/rotary enkódert figyelni, bemenő feszültséget- hőmérsékletet mérni kellene úgy, hogy azonnal reagáljon a felhasználóra a szerkezet, de még mindig az értékeket ellenőrizgesse első sorban, elég szép kihívás. Alaposan meg kell tervezni. Lehetséges, csak a kérdés, hogy meg leszel-e elégedve az eredménnyel? Ez a pwm-es terhelés is érdekes probléma. Könnyen előidézhető olyan helyzet (mivel a uC szinte azonos időnként mér), hogy a terhelés pont abban az időpontban vált, hogy óriási lengések legyenek a kimeneten. Ekkor a uC-nek figyelnie kellene, és vagy növelni kellene a közbelépési időt, vagy véletlenszerűsíteni, így egy periodikus terhelés nem tudná begerjeszteni (annyira) a szabályzást. Nekem biztos kellene a mA felbontás, te 10-100mA-t írtál, az szerintem túl sok.
Amit én máshogy csinálnék: nem ezt az ATXmega-t használnám, hanem valami sokkal elterjedtebbet, már csak azért is, hogy több segítséget tudj kapni, másrészt ha publikálásra kerül, akkor ne egy 3eFt-os uC-t kelljen megvenni bele (esetleg két db-ot is tönkreteszel, vagy annyira szuper lesz, hogy építesz rokonnak is, esetleg eladásra). Szóval ha már ennyi munkaórát beleáldozol, legyen költséghatékony, olcsóak az alkatrészek. Az atxmega-t meg add el, az árából veszel 5 másik, gyorsabb uC-t.
Amit én készítettem régebben, abban egy sepic konverter dolgozik, Atmega328, és ő csak a feszültség referenciákat adja, plusz mér és kijelez. A legnagyobb problémák között volt a kalibráció, a nyákterv (hol esik mV vagy kisebb feszültség, ami hibát visz a mérésembe), tehát összességében működőképes a táp, viszont nem vagyok vele megelégedve pontosság tekintetében. Én négyvezetékes kimenetet is készítettem, és ismét jöttek a problémák... Viszont raktam be a kimenetre egy relét, biztos ami biztos alapon, fizikailag választom le a tápot a banánhüvelyről, ezt az megoldást jónak találom. Történhet bármi, én le tudom kapcsolni a kimenetet mindig.
A hozzászólás módosítva: Nov 12, 2017
(#) cimopata válasza freddyke hozzászólására (») Nov 12, 2017 /
 
Lineáris= áteresztőtranzisztoros.

Az a helyzet hogy labortáp tényleg a legkényesebb területe a szabályozásnak. Lehet akár dsPIC vagy a linkelt STM labortáphoz mind a határon mozognak mivel még mindig nem elég gyorsak.

Oké hogy pl az ADC tud 0.2-0.5us mintavételt de ott van még a matematikai művelet + netán beteszel még sorok kommunikációt, kijelzőkezelést és egyből lesznek olyan ciklusok amik ha nem is ciklusról ciklusra de kicsit elhúzzák a számítási időt.

Egy jó labortáphoz az kell hogy hirtelen terhelésváltozásra hamar reagálni tudjon. nagy preicizitáshoz még 217ps sem túl sok 1,04ns egyértelműen sok az ATMEGA nem tudom mennyit tud de az ennél még rosszabb lehet. Na most ha nem elég nagy a PWM felbontás akkor nem tudsz magas frekit használni ami megnöveli kimeneti L-C szűrőt és a tárolt energiát és ebből az következik hogy dinamikus terhelésre egyre kevésbe tud majd jól reagálni. Ugrás terhelésere bezuhan a táp, terhelés elvételre pedig feszültség túllövés.

Ha kapcsüzeműt akarsz akkor minél kissebb L C szűrő, ehhez pedig magas freki 100kHz nem elég. Nem tudjuk kb mekkora kimenő fesz áram kell neked.

Belső DAC + közvetlen áteresztő tranzisztor sem túl jó, mert 12bit az nem sok. Az áteresztő meg fűt.


Én a helyedben valami hasonlót csinálnék mit amit Attila86 csinált 500-2000kHz es integrált kapcsi végfokozat külső alapjellel amit előállíthatsz DAC-al vagy PWM ből is. ÉS akkor akér használhatsz valami ócska olcsó MCU-t.
(#) freddyke válasza Attila86 hozzászólására (») Nov 12, 2017 /
 
Ha jól értem arra gondolsz, hogy az "előtáp" lenne kapcsolóüzemű, ez a kimeneti (analóg) részt is egyszerűsítené. Nagy vonalakban el tudom képzelni ezt a felépítést. Sajnos jelenleg nincs meg a tudásom a megtervezéséhez. Utánanzek, hogy esetleg van-e fellelhető kész kapcsolás, ami (kis átalakítással) nagy biztonsággal működhetne. Esetleg nincs ilyesmid kéznél? Ahogy írod, ez a megvalósítás nagymértékben befolyásolhatja a mikrovezérlővel szemben támasztott követelményeket, esetleg sokkal egyszerűbb, költséghatékonyabb mikrovezérlő is elég lehet.

Egy "tisztességes" (dinamikus terhelésnél is helytálló) labortáp megépítése kapcsán, továbbra is az a fő dilemmám, hogy kaphat-e a mikrovezérlő teljes értékű szabályozó szerepet. Meg lehet-e építeni kevés alkatrészből (a szoftver végzi a műveletek nagy részét) és milyen alapokra épüljön az egész (lináris vagy kapcsolóüzemű). A megépíthető kombinációk, lehetőségek száma sok és ehhez a részéhez nem értek sajnos. A megvalósítandó megoldáshoz kellene megfelelő mikrovezérlőt keresni, amire már meg tudom írni a programot.

Csak azért mert van belőle, nem ragaszkodom az ATxmega64-hez. De továbbra is azt gondolom, hogy a teljes reakcióidő a kimenet lekapcsolására rövidzár esetén 10 mikroszekundumba (0.01 ms) beleférne. (ADC átalakítás, hardveres/szoftveres feldolgozás, DAC átalakítás.)

Nagyobb számolást és átgondolást igényelne, de megkockáztatom, hogy 50-100 KHz-en folyamatosan fel tudná dolgozni 2-3 ADC (feszültség, áramerősség, hőmérséklet) jeleit és ennek megfelelően dinamikusan szabályozni a kimenetet.

Ezért is feszegettem a kérdést, hogy ez a feldolgozási sebesség elég lehet-e egy "tisztességes" labortáphoz.

Gyorsabb mikrovezerlővel (50-80MHz), gyorsabb ADC/DAC-vel, 32 bit, hardveres szorzás/osztás, stb. talán fel lehetne tornászni 300-500KHz-re (1MHz?), többet nehezen tudnék elképzelni.

Van mégegy lényeges szempont, a fejlesztésre szánt idő. Ilyen szempontból egy Arduino sokkal alkalmasabb lehetne. Leveszi a teljes terhet a uC körüli áramkör megtervezéséről és megépítéséről. Moduláris tüskesor kivezetései vannak, kész (szabványos) modulokat (a kezelőszervektől az érintős kijelzőig) lehet hozzá kapni, akár kínai klónban, "bagatel" árakon. Kész kódok elérhetők ezek kezelésére, így minimális ráfordítással teljesen modern kezelőfelületet lehet kialakítani.

Arduino-ban gondolkodva, ha nagy sebesség kell, az egyetlen célra alkalmas eszköz lehet az Arduino Due (34 EUR eredetiben, klónban a fele), a CPU 84MHz-es RISC (1 órajeles 32*32 bites szorzás + nyilván nem egy órajeles hardveres osztás támogatott). Sajnos csak 2 analóg ki/bemenet van, 1-3MHz környékén lehet használni ADC és DAC-ként, ami lehet, hogy számban kevés lesz (PWM-ből van bőven).
(#) freddyke válasza Kovidivi hozzászólására (») Nov 12, 2017 /
 
Árak: ATxmega64A1-AU <6 EUR, STM32F334 <4 EUR, Atmega328 690 Ft (amíg az első kettő talán, az utóbbi biztosan nem alkalmas önálló szabályozásra). Nem ezen bukna a projekt, bár ha Arduino-val valósítom meg és kinyírok párat, akkor lehet.

A program általam elképzelt megvalósításában a kezelőszervek, kijelző kezelése alacsony prioritással bír és bármikor félbeszakítható (erre úgy gondolom 1-10ms-os "azonnalinak érezhető" válaszidő bőven tartható). Az alacsony prioritású rész eseményvezérelt lenne (ha nem megvalósítható, akkor ciklusba foglalt). Az ADC-kről fogadott értékek értelmezése, DAC-kre jel kiadása (szabályozó rész) az elsődleges prioritás, megszakításba kerülne. A megszakítást az ADC váltja ki (érték változásra vagy küszöbértékek/tartomány átlépésére). Az abszolút szűk keresztmetszet ADC-k és DAC-k feldolgozási sebessége. Ha a kód nem fut le két mintavételezés között, akkor pedig a kód lesz a szűk (gyanítom nem az).

Kérdés hogyan reagálja le az jel változását az ADC. Hirtelen változásnál szükség lehet akár két mintára is (ha az első pont a változás "közepét" kapja el), amiből biztosan meglesz a "végleges" érték.

PWM-es terhelésnél ha egy felfutó vagy lefutó él 2-2 mintából állapítható meg biztosan, a mintavételezési sebesség 1MHz (az Atmel esetén a maximum), akkor csak 1/4MHz=250KHz-ig tudna lépést tartani a jellel a mintavételező rész. DAC átalakítás az Atmel esetében 3.3MHz körül van. A teljes reakcióidő a uC részéről legyen 4us (ADC 2*2 minta) + 0.3us (DAC) + kód (<1us), legyen 5us. Az analóg áramköri résztől is függ, hogy mekkora az a maximális PWM frekvencia (továbbra is a kimenet terhelését értem alatta), amivel még éppen elbírna az egész. Itt az Arduino-ban levő 84MHz-es uC-vel számoltam.

A saját készítésű tápodban gondolom a szabályozás analóg és a uC csak az analóg részt vezérli. Az első hozzászólásomban ez, illetve a jelenleg kivesézés alatt álló (mindent a uC szabályoz) megoldásokat vázoltam fel. Jobban örülnék a "mindent a uC szabályoz" verziónak, ha van értelme.
A hozzászólás módosítva: Nov 12, 2017
(#) cimopata válasza freddyke hozzászólására (») Nov 12, 2017 /
 
Milyen kimenő áramot feszt akarsz mekkora felbontással?
(#) Attila86 hozzászólása Nov 12, 2017 /
 
Az én elgondolásom egy digitális és tisztán kapcsolóüzemű labortáppal kapcsolatban a következő:

Van az 50V/10A-es kapcsolóüzemű előszabályozós tápom, mindenki ismeri. Ő 10A kimenő áramot tud ami nagyon szuper, de amióta megvan (az elődjével együtt majdnem 10 éve!) egy kezemen meg tudnám számolni hogy hány alkalommal vettem ki belőle 1-2A-nál nagyobb áramot. Sőt, a labortáp-felhasználások 90%-a 100mA-nél kisebb áramokkal történik. Legalábbis nálam. Rengetegszer csak feszültségjel adására használom, azaz le se terhelem! Ezek alapján arra a következtetésre jutottam, hogy egy 50V/2A-es labortáp bőven elegendő az esetek igen nagy részében. Ráadásul a kis áram picike fojtótekercset igényel, magasabb frekvencián pedig a puffer is kicsi lesz, azaz rendkívül kompakt kis aranyos tápocska lenne. Ami viszont számtalanszor jól jönne az az, ha a táp nem egy hanem mondjuk négy csatornás lenne, négy galvanikusan független feszültséget tudna előállítani.

Korábban én elég komoly energiákat és időt áldoztam arra hogy ezt kivitelezzem különböző step-down konverterekkel. Itt a step-down egy fokozatként, önmaga végezné a szabályozást. Az alapjeleket pedig a mikrovezérlő állítaná elő DAC-okkal. A 12 bites DAC a maximális 2A kimenő áramra már elegendő, ahogyan az 50V-ra is. Több különböző ilyen áramkörrel is próbálkoztam, sajnos egyik sem volt kielégítő. A 0V megközelítése, az áramgenerátoros mód, az áramgenerátor/feszgenerátor közti átváltás, a kimenet DC OFF lekapcsolása, és főleg a kompenzáció (hogy ne gerjedjen a teljes tartományon belül sehol se) megoldása reménytelen sajnos. Be kellett látni hogy ezeket a step-down konvertereket nem erre találták ki…

Ha a step-down konvertert kiegészítjük egy disszipatív második fokozattal, és a step-downt csupán előszabályozásra használjuk, akkor ez csomó problémára megoldást nyújt, de akkor ugyan ott vagyunk mint az 555-ös előszabályozós labortápomnál: hogy tök bonyolult.

A legegyszerűbb (legalábbis a kapcsolási rajz szerint legegyszerűbb) megoldás az lenne ha a mérést, a hibajel-képzést, a döntéshozatalt, és a beavatkozójel előállítását mind a mikrovezérlő végezné. Ehhez kvázi egy OPA-n (sönt jelének erősítése) és egy FET-meghajtón kívül csak pár ellenállás és kondi kellene.

A legelső kérdés ezzel kapcsolatban az, hogy elég gyors lehet-e ez a tisztán mikrovezérlős megoldás? Ez a kérdés most itt a topikban többször is fel lett téve és senki sem adott rá semmilyen választ sem. Én sem! Azért, mert fogalmam sincs. Ki kellene próbálni! Szerintem egyébként nagyon is működhetne! Én pár évvel ezelőtt több labortápot (gyáriakat és itt a fórumon fent lévőeket) is leteszteltem, dinamikus vizsgálatoknak is alávetettem őket. Nos a helyzet az, hogy az analóg tápok sem olyan borzasztóan gyorsak ám! Ennek megállapításához egyébként dinamikus vizsgálatok sem feltétlen kellenek, elég csak ránézni a táp kimenetére! Még a gyári labortápok kimenetén (a nagyon komolyakén is!) ott van egy 100u-470u vagy akár 1000u-nál is nagyobb kondi!

A legnagyobb feladat egy ilyen tápnál annak az algoritmusnak a megírása, amely a kívánt kimeneti jellemző (fesz vagy áram) szerint a FET gate-jére a megfelelő kitöltési tényezőjű PWM-et adja. Ezt kell nagyon alaposan átgondolni és jól leprogramozni, ezen múlik az egész! Ezzel kapcsolatosan három ötletem van:

1.: Ha a mért kimeneti jellemző (fesz vagy áram) nagyobb mint a kívánt, akkor a FET gate-jére L szintet kapcsol a mikrovezérlő. Ha a mért jellemző kisebb mint a kívánt, akkor pedig H szintet. Ennek sejtem pár hátrányát, például kapásból azt hogy a frekvencia így változni fog.

2.: Mérjük a bemeneti feszt, ami mondjuk 60V. Ha 15V kimeneti feszültséget szeretnénk, akkor a mikrovezérlő kiszámolja hogy ehhez 100%/(60V/15V)=25% kitöltési tényezőt kell beállítani. Áramgenerátoros módban a számítás bonyolultabb, ott előbb a kimeneti feszültségből és a kimenő áramból ki kell számolnia a terhelés impedanciáját. Ez a módszer önmagában persze tuti nem lesz jó, mert nem számol a veszteségekkel.

3.: Az előző két működés ötvözése, azaz a kitöltési tényező kiszámítása majd beállítása (ezzel belőjük nagyjából), utána pedig visszamérések alapján a kitöltési tényező kismértékű ’pöcögtetése’ plusz-mínusz irányban (inkább plusz) a pontos érték elérése céljából.

Ha esetleg az elgondolás a gyakorlatban működne, akkor egész izgalmasan továbbgondolható az egész! Például a sima step-down átalakítható lenne szinkron step-down konverterré, az általam javasolt dsPIC-ben lévő high speed PWM periféria ezt maximálisan támogatja! Vagy lehetne a tekercs elé és utánra is egy-egy fetet tenni, persze mindkettőt a mikrovezérlő hajtaná. Így egyben step-down és step-up konverterként is tudna működni. Milyen menő lenne már egy olyan labortáp amely 60V-ból is tud 0-50V-ig szabályozni de mondjuk 12V-ból is.
Természetesen a mikrovezérlő szoftverét úgy kell leprogramozni hogy az A/D szabadon fut és veszi a mintákat, minden egyes mintavétel után megszakítást generál mely a legmagasabb prioritású. Itt végezné el a szabályozási számításokat a lehető leggyorsabban, ezért sebességre kell optimalizálni a fordítót, vagy még inkább ezt a függvényt assembly-ben kellene megírni. Ezen felül minden más amit a mikrovezérlő tesz azok vagy alacsonyabb prioritású megszakításban, vagy a főprogramban kell hogy fussanak.
Ha valóban több csatornás a táp, akkor lehetne egy közös kezelőfelületük egy színes TFT képernyő és pár rotációs enkóder (vagy tasztatúra) társaságában. A kijelző és a kezelőszervek kiszolgálása ezáltal külön lenne, a szabályozást ténylegesen végző mikrovezérlő(k) ez alól mentesülne. Csak a galvanikusan leválasztott UART kezelésével kellene foglalkoznia.
(#) freddyke válasza cimopata hozzászólására (») Nov 12, 2017 /
 
Az áteresztőtranzisztort lineáris előtáp esetén a kimeneten lévő teljesítménytranzitszorra érted?

A kóddal kapcsolatos elképzeléseim az előző hozzászólásban leírtam (úgy érzem a megszakítás használata nem merült fel bennetek).

5MHz-es ADC, 72MHz-es uC esetén a kód valószínűleg nem tudna lépést tartani (72/5=14.4 óraciklus marad a kódra, ebből levonva a megszakítás kiváltódásának, befejeződésének ciklusait). Néhány óraciklusból még egy táblázat értéket sem biztos, hogy ki lehet olvasni (ASM-ben). Mintavételezésnek talán 2MHz lenne jó, de csak minden második minta után dolgozná fel az utolsó 2 mintát. 1 MHz-nél (sokkal) gyorsabb feldolgozást nehezen tartok elképzelhetőnek.

Az ST a közelébe egyik egyik Atmel sem ér. Ha jól számolom, 217ps = 4608MHz. Az 84MHz-es Atmel PWM-je alapórajelből dolgozik. A 32MHz-es Atmel maximum az alapórajel négyszeresével (32*4=128MHz).
Minek a verérlésére gondoltad a PWM-et? Az áteresztőtranztisztor vezérlésére kapcsolóüzemű előtápjának vezérlésére?

A kapcsolóüzeműnél mihez nem elég a 100KHz? Ehhez a frekvenciához van közvetlen köze az ADC-kről érkező jelek feldolgozási frekvenciájának (amire felső határként 1MHz-et tartok reálisnak) vagy csak egy generált frekvencia, ami a kapcsolóüzemű részt vezérli?
0-24V, 0-3A-es tápban gondolkodnék. 1-1.5V-ról is indulhat és a maximális áram lehet kevesebb, 1.5-2A. (Jól jönne 5-10A, de túl nagy bonyolítás lenne.)

A 12 bit-es DAC-t az áteresztős megoldásra keveselled vagy a kapcsolóüzeműre is?

Köszönöm a választ előre is és mindenkinek az eddigi hozzászólásokat!
(#) freddyke válasza cimopata hozzászólására (») Nov 12, 2017 /
 
Tartomány: 0-24V, 0-3A (1.25-24V, 0-1.5A elég).
Felbontás: 100mV, 1mA (Kovidivi javaslatára 1mA, nekem 10mA elég lenne).
(#) cimopata válasza freddyke hozzászólására (») Nov 12, 2017 /
 
Idézet:
„Az áteresztőtranzisztort lineáris előtáp esetén a kimeneten lévő teljesítménytranzitszorra érted?”


Mimásra, én csakis kapcsolóüzeműn gondolkoznék. Kicsi kevés hőt termel jó szűréssel zajos sem lesz. Nem kell ide előszabályozó hanem egyből step down és kész.

Idézet:
„A kapcsolóüzeműnél mihez nem elég a 100KHz?”


Ha 5kW os előszabályozót építenék akkor azt mondom egye fene elég a 100k de egy precíz labortáphoz a kimeneti szűrés és a kellően kicsit L C miatt 500kHz környékén dolgoztatnám a kicsikét.

Idézet:
„A 12 bit-es DAC-t az áteresztős megoldásra keveselled vagy a kapcsolóüzeműre is?”

12bit az szerintem baromira kevés akár áteresztős akár PWM ugyan az.
A hozzászólás módosítva: Nov 12, 2017
(#) Kovidivi válasza freddyke hozzászólására (») Nov 12, 2017 /
 
A mA-es felbontásnak talán 100mA-ig lenne értelme a beállítás résznél, viszont ha már mérsz, akkor ki kellene jelezni mA pontosan szerintem. 3A-nál 12bittel 0.73mA egy bit lépés, kis túlmintavételezéssel mehet a mA felbontású mérés.
Ami engem még nagyon zavart, hogy beállítottam 12.00V-ot, terheletlenül talán ennyit is mértem vissza, de terhelve 11.97V-ot mértem a uC-vel. Felmerült a kérdés, hogy hazudjam a kijelzőre a 12.00V-ot, ha csak pár mV az eltérés, így lehet a táppal vagánykodni, vagy ha nem, akkor mi értelme van a beállításnak, hiszen úgyis "saccográf"...
(#) freddyke válasza Attila86 hozzászólására (») Nov 12, 2017 /
 
Köszönet a hosszú, részletes leírásért!

A 4 csatornás, csatornánként 2A-t tudó táppal én is egyetértek. (10A nekem csak autó-akkumulátor töltésre kellene, lehet nem labortáppal kellene megoldani...)

Van egy csomó tapasztalatod tápkészítéssel, tudod mivel nem és mivel lenne érdemes próbálkozni. Mi volt az akadálya, hogy még nem álltál neki egy tisztán mikrovezérlővel szabályozott tápnak?

Ha jól értem, kísérletezéssel, különböző megoldásokat lenne érdemes kipróbálni, amiből a további körökben össze lehet rakni egy jól működő hardvert. Utána már csak a szoftveren múlik.

Ki kellene választani egy megfelelő mikrovezérlőt. Az Arduino sokkal praktikusabb lenne kísérletezésre. Az Arduino Atmel alapú. Úgy látom ST-nek és a Microchip-nek is van ilyen kezdeményezése, de majdnem kizárt, hogy pont az ide szükséges vezérlőkkel. Arduino-szerű panelt létre lehet hozni házilag is, annyira nem kis munka.

A mikrovezérlők programozása nagyon motivál, de több projektem elbukott az áramkörtervezésen. Ezért is szerettem volna egy "bevált, kitapasztalt kapcsolást" (ami ezek szerint nem létezik), minél egyszerűbbet, kevés elemből megépíthetőt.
(#) freddyke válasza Kovidivi hozzászólására (») Nov 13, 2017 /
 
Ne hamisítsd meg a mérést.
Nem a nyák-on "veszik el" a 0.03V a terhelés hatására? Műszerrel mértél? Pontok direkt átkötéseivel (vezetékkel) próbáltál kísérletezni?
Milyen referenciát használ az ADC és milyen lehetőségek vannak (belső, külső)? Nem lehet, hogy a terhelés hatására esik a uC tápfeszültsége és ez befolyásolja az ADC referenciafeszültségét (ha a referencia a uC-ben van)? A referencia megfelően be van állítva (ha van ilyen lehetőség)? A referencia és ADC paraméterei alapján nem férhet bele ekkora hiba a mérésbe?
Azért írtam ennyi felvetést, hátha sikerül ötletet adnom.

A felbontásnál szerintem három dolog van, amit nem kevernék össze:
- A kezelőszerveken beállítható felbontást (feszültség, áramerősség).
- A kijelzőn megjelenített felbontást. Ennek összhangban illene lennie a feszültség és áramerősség legkisebb mérhető egységével elfogadható mérési hiba mellett.
- Az elfogadható/tartható maximális plusz-mínusz eltérést a beállított feszültséghez és áramerősséghez képest. (Nem tudom, hogy gyári (minőségi) labortápoknál megadnak-e ilyen adatot és egyáltalán mennyire tartható dinamikus terhelésnél.)
(#) Kovidivi válasza freddyke hozzászólására (») Nov 13, 2017 /
 
A uC gnd-je mozdul el, ami nálad is probléma lesz, ha a belső ADC-t és DAC-ot használod!
(#) freddyke válasza Kovidivi hozzászólására (») Nov 13, 2017 /
 
A 313. oldalon levő ajánlásokat betartottad? Az analóg résznek a saját GND-jét használod? Esetleg erről lenne szó nálad: 4.6 EFFECT OF INJECTION CURRENT (24. oldal)?
(#) Kovidivi válasza freddyke hozzászólására (») Nov 13, 2017 /
 
Nem választottam külön, amikor terveztem a kétoldalas nyákot, nem gondoltam volna, hogy ekkora gondot okoz. Köszönöm, hogy próbálsz segíteni, de már letettem róla. Újra kellene teljesen tervezni ezt a tápot ahhoz, hogy jó legyen. Egy próba volt, ami működik, de csak porosodik a polcon. 15$-ért már megveszek egy hasonló tudásút ebayről...
(#) freddyke válasza Kovidivi hozzászólására (») Nov 13, 2017 /
 
Ha a 0.03V hiba elfogadható és más baja nincs, én biztos nem cserélném le egy kínaira. Ha már mindegy neki, akkor is érdemes lehet megkeresni a hibát és kísérletezni a felhavításán, hogy az új építésénél biztosabbra menjél.
(#) freddyke válasza cimopata hozzászólására (») Nov 14, 2017 /
 
Attila86 írta, hogy komoly energiát fektetett kizárólag step-down-os táp megvalósításába és nem lett sikeres kimenetele. Ha jól láttam, a 0-50V 0-10A-es tápja step-down előfokozatos, a második fokozat már majdnem egy kész feszültséget kap, amin a hőleadással járó veszteség minimális. Ha jól értettem, ebben váltaná ki az áramkörrel megoldott logikázást egy mikrovezérlővel.

Idézet:
„Mimásra, én csakis kapcsolóüzeműn gondolkoznék. Kicsi kevés hőt termel jó szűréssel zajos sem lesz. Nem kell ide előszabályozó hanem egyből step down és kész.”

Attila86 megoldásához hasonlóra gondoltál vagy másra? Részleteznéd kérlek?

Idézet:
„egy precíz labortáphoz a kimeneti szűrés és a kellően kicsit L C miatt 500kHz környékén dolgoztatnám a kicsikét.”

Idézet:
„12bit az szerintem baromira kevés akár áteresztős akár PWM ugyan az.”

Ha a fenti kapcsolásról lenne szó, nagy vonalakban értem a működését, részleteiben (a hiányos analóg áramköri ismereteim miatt) nem látom át.

PWM alatt PWM+aluláteresztő szűrővel előállított analóg feszültségszintet (másképp fogalmazva a PWM DAC-t helyettesítő módban történő felhasználását) érted? Ha igen, akkor elvileg a kapcsolásban a meghajtott résznek mindegy, hogy 500KHz-en hajtott DAC-ről vagy PWM DAC-ről kapja a jelet.

Az 500KHz a "step-down fokozathoz" kell? A 12 bit-es DAC vagy PWM felbontás (ha jól értem) ennek a meghajtásához kevés? Mekkora felbontás kellene és miért?

A második áteresztős (lineáris, disszipatív) fokozat meghajtására a követelmények mik lennének? Ide sem elég a 12 bit-es DAC?
(#) Attila86 válasza freddyke hozzászólására (») Nov 14, 2017 /
 
Nem értem hogy miért nem érted amiket írunk. Szerintem én is elég egyértelműen fogalmaztam, Cimopata meg szerintem még világosabban...

Idézet:
„Ha jól láttam, a 0-50V 0-10A-es tápja step-down előfokozatos, a második fokozat már majdnem egy kész feszültséget kap, amin a hőleadással járó veszteség minimális. Ha jól értettem, ebben váltaná ki az áramkörrel megoldott logikázást egy mikrovezérlővel.”

Dehogyis! Mikrovezérlő, FET-meghajtó, kapcsoló FET és kész. Na jó meg egy OPA ami a sönt jelét felerősíti a mikrovezérlőnek. A mikrovezérlő PWM-et adna a FET-nek, és nem úgy PWM-et hogy egy R-C taggal leszűrjük!

Idézet:
„PWM alatt PWM+aluláteresztő szűrővel előállított analóg feszültségszintet (másképp fogalmazva a PWM DAC-t helyettesítő módban történő felhasználását) érted?”

Nem úgy érti! A PWM alatt azt érti hogy PWM. Négyszögjel, kapcsolóüzem!

El kell felejteni az analóg tápokat...
A hozzászólás módosítva: Nov 14, 2017
(#) freddyke válasza Attila86 hozzászólására (») Nov 14, 2017 /
 
Nagyon kevés analóg elektronikát tanultam (nem iskolában). Leszámítva a legegyszerűbb analóg kapcsolásokat, elvérzek a működésük megértésével.

Idézet:
„Ha a step-down konvertert kiegészítjük egy disszipatív második fokozattal, és a step-downt csupán előszabályozásra használjuk, akkor ez csomó problémára megoldást nyújt, de akkor ugyan ott vagyunk mint az 555-ös előszabályozós labortápomnál: hogy tök bonyolult.”

Ezt értettem félre sajnos. Úgy, mint a bonyolult részét felváltva a mikrovezérlővel használató lenne.

Idézet:
„Dehogyis! Mikrovezérlő, FET-meghajtó, kapcsoló FET és kész. Na jó meg egy OPA ami a sönt jelét felerősíti a mikrovezérlőnek. A mikrovezérlő PWM-et adna a FET-nek, és nem úgy PWM-et hogy egy R-C taggal leszűrjük!”

Ilyesmire gondolsz (majdnem ugyanaz, mint Lajos által épített az előző oldalon)? Vagy tudnál mutatni egy példát kérlek?

Idézet:
„Nem úgy érti! A PWM alatt azt érti hogy PWM. Négyszögjel, kapcsolóüzem!”

Eredetileg úgy szerettem volna feltenni a kérdést, hogy ez lett volna a második verzió...

Ha valóban kell 500KHz-es frekvencia, akkor az én értelmezésemben (cimopata is ezt feszegette) csak a hardveresen támogatott PWM jöhet szóba 1ns vagy kisebb időzítéssel (ellenkező esetben nem lesz elég felbontás, de még így sem).

Microchip vonalon (ha jól láttam, a teljes palettára értve) a legkisebb elérhető időzítő felbontás 1.04ns (az általad kiszemelt típusban is ez van). 500KHz-en 10.9 bit a felbontás. Ti-ben találtam 150ps-os időzítéssel (függ a pontos frekitől), 13.7 bit (13333 érték) felbontással. Nem lineáris, ebből még több bit-nyi veszteség lejön. Ezen bukhat a dolog?

Idézet:
„1.: Ha a mért kimeneti jellemző (fesz vagy áram) nagyobb mint a kívánt, akkor a FET gate-jére L szintet kapcsol a mikrovezérlő. Ha a mért jellemző kisebb mint a kívánt, akkor pedig H szintet. Ennek sejtem pár hátrányát, például kapásból azt hogy a frekvencia így változni fog.”

Az ADC lesz a szűk keresztmetszet (3-5Msps), reális kódlefutási idővel számolva (ADC által kiváltott megszakításban) még ennyit sem lehet elérni (több száz MHz-es MCU-val talán). 5MHz-en, 10 bit felbontással 4.88KHz PWM frekvenciát lehet elérni. Vagy másképp gondoltad?

Idézet:
„2.: Mérjük a bemeneti feszt, ami mondjuk 60V. Ha 15V kimeneti feszültséget szeretnénk, akkor a mikrovezérlő kiszámolja hogy ehhez 100%/(60V/15V)=25% kitöltési tényezőt kell beállítani. Áramgenerátoros módban a számítás bonyolultabb, ott előbb a kimeneti feszültségből és a kimenő áramból ki kell számolnia a terhelés impedanciáját. Ez a módszer önmagában persze tuti nem lesz jó, mert nem számol a veszteségekkel.”

Ezen gondolkodtam. A gond itt az, hogy a tartományon belül változik a fellépő veszteség (hatásfok), jól értem? Először műterhelésekkel teljes tartományban (külön feszültség, külön áramgenerátoros módban) kimérném a táp karakterisztikáját (ennek a továbbfejlesztett változata lehetne, ha a műterhelés a tápba van építve és önmagát tudja kalibrálni vele). Mivel nem értek az áramköri részhez, nem tudom milyen görbék jönnének ki. Lényeg, hogy a karakterisztikát táblázatokba kellene tenni, programmemóriába. Amit leírtál: "a kimeneti feszültségből és a kimenő áramból ki kell számolnia a terhelés impedanciáját", szerintem minden megszakításban meg kell tenni. A programmemóriába tett (előre kimért, kívánt formára alakított) táblázatokból korrigálni tudja a "veszteségeket", másrészt tudni fogja a kimenetre kiadandó kitöltési tényezőt. Mivel nem lesz elég programmemória, ezeket a táblázatokat csak kicsinyített formában lehet tárolni, a köztes értékeket arányosítással lehetne kiszámolni. Biztosan lehet ezen még finomítani, de valami ilyesmire gondoltam.

Idézet:
„3.: Az előző két működés ötvözése, azaz a kitöltési tényező kiszámítása majd beállítása (ezzel belőjük nagyjából), utána pedig visszamérések alapján a kitöltési tényező kismértékű ’pöcögtetése’ plusz-mínusz irányban (inkább plusz) a pontos érték elérése céljából.”

Ez pedig jó lenne az előbb írt arányosítás-számolás hibájának (ha nem lineáris az összefüggés) vagy a hőmérsékletváltozásból (kondikiszáradásból) eredő eltérések korrigálására.

Idézet:
„Például a sima step-down átalakítható lenne szinkron step-down konverterré, az általam javasolt dsPIC-ben lévő high speed PWM periféria ezt maximálisan támogatja! Vagy lehetne a tekercs elé és utánra is egy-egy fetet tenni, persze mindkettőt a mikrovezérlő hajtaná.”

Úgy gondoltad, hogy ez egy külön projekt lenne (ha az elv működne)?
Következő: »»   16 / 22
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem