Kérkel segíts, hogy ne maradjon hibás információ az oldalon!
Ha szerinted valami nem fedi a valóságot, kérlek írd meg, hogy javítani tudjam. Ha kérdésed van, fordulj hozzám bizalommal!

A következő címkéjű bejegyzések mutatása: development. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: development. Összes bejegyzés megjelenítése

2009. október 27., kedd

Olcsó BLDC Vezérlő

A nyáron még a gépész kollégák kő keményen mellé nyúltak egy motor választásnak.
"DC, nem? Rákötöm a 24VDC-t és már megy is. .. .... .. Vagy nem?!"
A döbbenet a doboz kibontása után volt, amikor meglátta a sok-sok kiálló kábelt. Ez mi?! Ez nem az a pillanat volt, amikor a kollégával madarat lehetett volna fogatni :). Végülis megbeszéltük, hogy csinálok egy meghajtót hozzá, mert akárhogy is nézzük, igen borsos ára van az ilyen vezérlőknek és akkor úgy volt, hogy 3 nap áll rendelkezésre a beszerzéshez...A motor:
A motort a német Nanotectől vettük. DB42S03-as rabszámot visel. 24V 26W. Bika motorok ezek és ez előtt helyet foglalt egy elég nagy áttétel is (kimenet 80RPM).


Alkatrész válogatás:
Legelső sorban a PIC-ekkel szívtam meg. A tökéletességhez oly közel álló típusból nem volt raktáron. Pedig mi kell ide?

  • Interrupt on change - legalább 3 lábon úgy, hogy lehetőleg ne essen egybe a PWM kimenetekkel. (Mellesleg valaki elmondhatná, hogy miért is esnek egybe ezek a lábak a PWM kimenetekkel?!)
  • PWM - 3 pár pwm kimenet, tehát összesen hat. Ez általában a power management családokban található meg.
És ennyivel meg is elégedtem volna, de bárhogy is próbálkoztam, ügyeskedtem, Microchippék mindenáron legalább 1-2 IOC lábat fedésbe terveztek a PWM kimenetekkel. Kivéve a 1230, 1330-as pic18-asoknál! Csodás! Na, ez az, ami nem volt raktáron...

Idő szorít, pollingoljuk a Hall szenzorokat. Bár nem örülök.

Teljesítmény meghajtónak az IR2130-as három fázisú hídmegható több, mint jó. Csodálatos IC, nekem nagyon tetszik , valami azt súgja, hogy nem ez az utolsó projekt, amiben használtam. Hogy mit is tud?
  • 600V maximum!
  • Túláram és táphiány felügyelet.
  • Összehangol késleletetés.
  • 2,5V digitális jeltől kompatibilis.
  • Beépített erősítő áram méréshez.
A teljesítmény fokozatnak bármilyen IGBT és sok MOSFET megfelel. Az IGBT-k itt kezdődnek :), a FETeknél azért már oda kell figyelni a választáskor.

A táp stabilitásról az elmaradthatatlan 78XX család gondoskodott. A többesszám azért van, mert kell 15V az IR2130-nak és az 5V a PIC-nek.

És Voila:
Persze, azért ez ennél picit hosszadalmasabb volt, de magával a tervezéssel és az első működő protóval belefértem a 4 éjszakába (nappal másik projekt:) ). Hétfőn kezdődött, szerda hajnal 4 körül 15 perc alatt égettem el 4 IR2130-at és PICet...

Ez a projekt mutatta meg számomra először, hogy mi is az a bypass kondenzátor és mennyire lehet arra számítani, hogy majd az LM7805... Az első protón nem volt még ennyi kondenzátor, az már a későbbi fejlődés. Emberek, egyszerűen kell. Itt kapcsolgatunk, méghozzá gyorsan, és az áram útjában egyedül a tekercs igen alacsony ellenállása és induktivítása van. Használjátok csak szépen a kondikat, azért vannak.

Elismerem, nem sok ki és bemenet van az eszközön a külvilággal való kommunikációhoz, de ez azért van, mert az adott gépbe közveten egy motor helyett kerül be. Így relé kontakt bemenetet kapott az eszköz. Ez annyit jelent, hogy ha rövidre zárod a bemenetet, akkor a motor elindul. Próbáltam egy kis védelmet tenni az ellen, hogyha valaki 24V-ot köt a bemenetre, de, őszintén, nem próbálnám ki... :D

Nyákterv:
Az igaz, hogy a tervezés és a protózás igen gyorsan megvolt, de sajna a végső kialakítás rendesen elhúzódott. Ezért bánom is, hogy nem volt időm vissza alakítani 18F1230-ra és mivel akkor még úgy volt, hogy a nyák otthon készül, ezért egyoldalas, könnyen gyártható elrendezésre törekedtem, kevés átkötéssel.
Ha lesz jövője a projektnek, akkor azért sok design változást fogok eszközölni. Ilyenek: interface illeszthetőség, digitális státusz ki és bemenetek, kétoldalasra alkítás, itt-ott smd alkatrézek. Sokkal kompaktabbá válna tőle.
A tranzisztorokat nagyon szerencsétlenül helyeztem le, így nem lehet őket hűtőbordázni. Ahhoz szilikon padeket kell venni. (Igaz, ennél a 26W teljesítménynél nem szükséges a hűtőborda.)
A letölthető fájlba a gyártási Gerbereket is beleraktam.

A firmware:
Az elérhető eszközök (pic) rendesen behatárolták a firmwaret. A letölthető rarban elég sok fájlt találni, ezek egyike másika a fejlesztés különböző szakaszaiban készültek. A "véglege" a p18f2431 könyvtárban van.
A polling miatt igazándiból mindent ki kellett szórnom a mainből és IOC nélkül az időközök mérésére sem hagyatkoznék ezért ezzel az IC-vel ezt a minimál megvalósítást választottam. A sebesség és a felfutási idő potméterekkel állítható be. Több funkció nem is igazán kapott helyet.

Bővíthetőség:
Korlátlan.A PICet kicserélve főleg. A teljesítmény a kW nagyságrendekig emelhető az IGBT végfoknak és az IR meghajtónak köszönhetően (megfelelő hűtés mellett, természetesen). Kommunikációs interface beilleszthetőséggel akarom még felruházni. Szinuszos hajtást is meg lehet valósítani (igaz, hasznosan azt is csak az új IC-vel) és Phase Advance funkcióval bővíteni.


Letölthető fájlok:
Eagle projekt + Gerber
Piklab projekt (firmware)




FELELŐSSÉG KIZÁRÁS / DISCLAIMER
A balesetekért, károkért semmilyen felelősséget nem vállalok és nem is vagyok felelősségre vonható!
Mindenki kizárólag a saját felelősségére építheti meg.
Ez a blogon megjelent összes projektre igaz!

2009. október 18., vasárnap

RS-232-n programozható termosztát

Egy régebbi projektem végére raktam ma pontot. Ennek örömére, gondoltam, mostmár fel is teszem ide a javított verziót.
Ez a termosztát már a V2 kialakítás. Az elsőnek az lett volna a feladata, hogy egy kenyérpirító hőmérsékletét szabályozza (ezért is van betervezve a KTY84/130 hőmérő ellenállás), de az a projekt átmenetileg befagyott.
A második körben a marató folyadék hőmérsékletének a szabályozására készült el. Ezt osztom meg itt. A szoftver még nem tart sehol, valójában többre mentem volna vele, ha ráteszek egy potit.... A soros interface is még az előző alkalmazásból maradt meg. A kezdeteknél jó volt, mert a segítségével lehet kalibrálni a hőelemet.A feladat méretéhez mérten nem akartam transzformátort tenni a panelre (és a V1-nél TRIAC került az áramkörbe, ott érzékelni kellett a hálózati feszültség 0 átmenetét). A transzformátor nélküli tápegység ötletét még a Microchip egyik adatlapján találtam. Csúcs ez az öltet de kéretik óvatosan bánni vele, hiszen a nyákon ezután mindenfelé 230V szaladgál! Akkoriban tettem próbát a rezisztív kialakításra is, de az önmagát a nyákból kiolvasztó munkaellenállás meggyőzött róla, hogy a kapacitív megközelítés, bár jobban terheli a hálózatot, mégiscsak kényelmesebb :D.

A hőmérsékelt mérést a KTY84/130 végzi. A KTY szobahőmérsékleten kb 0.6KOhm és 100°C-n kb 1kOhm. Szerintem nagyon jó kis cucc, alacsony áron hihetetlen hőmérséklet átfogással.

A hőmérséklet mérés tehát ellenállás változáson alapszik. Ebből rögtön jön, hogy az ellenállást konstans árammal kell meghajtani és akkor a mi kis PICünk simán méri a feszültséget rajta. A konstans áramot egy LM317 állítja nekünk elő. Az adatlapban is megtalálható áramkör kimeneti áramát az Iki = Vref / R adja, ahol Vref = 1,25V. Így a 2K2-es ellenállásunkkal 0,5mA-t engedünk át a mérőellenálláson. Így akár 300°C-ig is mérhetnénk vele :).

A táp méretezése:
A táp kimenti áramát a bemeneti impedanciájával tudjuk kiszámolni a jó öreg I=U/R képlettel.
A kondenzátor impedanciája:
Ezen esik az egy utasan egyenirányított hálózati feszültség:
, ahol Vz a Zener dióda nyitó feszültsége, Vcsucs a hálózate feszültség csúcs értéke, ami a négyzetes közép értéknek (itthon 230V) a gyök kétszerese.
Ezekből a táp bemenő árama (ami egy picivel nagyobb, mint a kivehető max):
Az áramkörnek kb 110-120mA-ra van szüksége a tekercs nagy áramával együtt. Ehhez C1-nek 3uF-nek kell lennie, ami igen ritka méret az ilyen kondiknál... Amikor a legutóbb nem kaptam 3uF-et a boltban, szigetelő szalaggal oldottam meg a problémát. Úgy értem, hogy hozzáragasztottam még 2-t :) Mondjuk a 3.3uF kondi akkora, hogy úgysem fér el :), ezért lengőben kell bekötni.
Az ilyen tápegység méretezésekor fontos figyelembe venni az alkatrészek szórását és a worst case-ra méretezni. Tehát, ha van egy 3.3uF 20%-os kondink, akkor a legrosszabb esetben csak 2.64uF!
Így a projektből tisztán látszódik, hogy ezek a trafó nélküli megoldások nem az ilyen esetekre vannak, hanem olyanra, amikor pár 10nF kapacitás elég a bemenetre. Ugyanis a 3.3uF kondenzátor simán akkora, vagy nagyobb helyet foglal, mint a nyákra ültethető transzformátorok és árban is hasonlók.

Soros kommunikáció:
Igen, azt eddig kihagytam, hogy csak az IC TX/RX pinjei vannak kivezetve. Ez nekem azért jó, mert csináltam egy kis önálló nyákot a híres neves MAX232-vel és a 4 1uF kondival, + két kábel, egyik D-Sub9 a másik meg a 3 pines hüvely. Így azt tudom használni a tesztelésekkor, tervezés alatt és az ilyen esetekben, amikor egy nyák nem igényel üzemszerűen soros kapcsolatot. Ezt a kis nyákot is fel fogom valamikor tenni.

A firmware:
A firmware nem nagyon tart még sehol, mert a marató folyadék hőfokszabályozáshoz nem kellett itthonra túl bonyolítani. Később beleírom, hogy legalább sorosról fogadja az új értéket. Úgyhogy érdemes lesz majd figyelni!

A jövö: az áramkörnek van jövője. Először is át fogom alakítani úgy, hogy egy kisebb, olcsóbb PIC elvigye az egészet, hiszen termosztát lévén nincs nagy szükség RS232 kommunikációra. Tehát rá kerül a nyákra egy poti is. Csinálok belőle kis trafós megoldást is.

A többi meg már csak a mese, beszéljenek inkább a fájlok :D

Letölthető fájlok:

Az új verziókat mindig a dátum fogja jelezni.

És akkor mégegyszer:
FELELŐSSÉG KIZÁRÁS / DISCLAIMER
VIGYÁZZ! A nyák 230V-os betápot használ! Ne kösd ész nélkül rá a programozót és MINDIG SÜSD KI A KONDIKAT!
A balesetekért, károkért semmilyen felelősséget nem vállalok és nem is vagyok felelősségre vonható!
Mindenki kizárólag a saját felelősségére építheti meg.
Ez a blogon megjelent összes projektre igaz!

2009. október 11., vasárnap

Fejlesztett Eagle Spice ULP

Advanced spice.ulp funkciók:
  • A netlistben az eagleben megadott net nevek jelennek meg.
  • Subckt és model includolható.
  • Egyéni modell megadható.
  • Fejlesztett feldolgozás és generálás.
  • Spice könyvtár spice táppal.
Tölsd le itt: aspice.ulp
És itt: mspice.lbr

Kérlek ellenőrizd letöltés előtt, hogy van-e fent frissebb verzió. Az újabb verziók végéhez dátumot fűzök.

A sztori és haszálat:
A minap a neten keresgélve találtam, hogy az Eagle-hez egy ügyes ember csinált olyan scriptet, amely képes spice netlistet generálni az eagle schematicból. Rögvest tettem is vele egy próbát, mert van egy bevitt LM317-es változtatható CV/CC áramköröm berajzolva, gondoltam elkészítés előtt megismerkedem vele.

Nagyon hamar belefutottam, hogy a spice.ulp azért nincs felruházva mindenféle extra funkcióval és elkezdtem szövegszerkesztővel pofozgatni a netlistet. Ez hamar igen unalmassá vált, mert nem lehetett követni az áramkör változásait és nagyon gyanús kimeneteket kaptam... Úgyhogy nem volt mit tenni, jött a script fejlesztés :)

A teljes használhatósághoz egy pici kis eagle könyvátrt is kellett csinálnom, amiben meg lehet adni az includolandó fájlokat és a modelleket, subckt-kat.
A script annyira ügyes, hogy egy sokezer hosszú fájlból is csak a szükséges modelt veszi ki.

Letöltés után helyezd a fájlokat az eagle megfelelő könyvtáraiba. Ne felejtsd el a kontrol ablakban a könyvátrak között kiválasztani és "Use"-ni az új könyvtárt.

Ez a megoldás alapvetően az eagle Value és Name mezőit használja ki a net-ek mellett. A name legyen az eagle által adott név.

A script futtatásához írd be az eagle parancssorba, hogy:
RUN aspice.ulp

Subckt-k használata:
A subckt alkatrész neve elé írjunk egy X-et, ne felejtsük el. Ez ugyanaz, mintha a value mezőbe, vagy a scriptben leírtaknak megfelelően egy külön layeren, megadnánk, hogy spicename X.
Addjunk hozzá tervhez az mspice könyvtárból egy SPICEINCLUDE elemet. A Name-nek adjuk meg a modell nevét, ahogy a fájl hivatkozik rá. A fájlnevet a VALUE mezőben adhatjuk meg teljes elérési útvonallal.
A script a kimenetben jelzi, ha nem találta mega fájlt, vagy a fájlban a modelt.

Model beemelése fájlból:
Alapvetően megeggyezik az előzővel, a különbség annyi, hogy nem subckt-t keres a script, hanem modelt.

Egyéni modell:
Lehetőség van ott a lapon deklarálni új modeltt, ezt az ADDSPICEMODEL ellemmel tehetjük meg. Hasonlóan az előzőkhöz a NAME a neve amodlelnek és a VALUE sorba kell beírni, a paramétereket. A script a .MODEL kezdetet elé teszi a fájlban.
Példa: 1V nyitófeszültségű dióda modell:
NAME= DEGY
VALUE= D (vj=1V)
Ebből a script a következőt generálja:
.model DEGY D (vj=1V)

Figyeljük meg, hogy nekünk kell gondoskodni az alkatrész típusáról (pnp, npn, d...stb).

Tápforrások:
A script felismeri az eagle táp nyilakat és azokat a földhöz referenciázva generálja le. A tápnyíl neve lesz a forrás neve és az értéke az érték. De ez bajos lehet, mivel a spcie parancssor kevésbé szereti a +5V, -35V és hasonló neteket. Plussz gondot okoz, hogy ha átnevezzük, vagy más értéket teszünk, lehet, hogy a táp generálásakor ugyan a megfelelő megnevezést használja, de a többi netlist sor viszont a net nevét.

Kényelmesebb és egyszerűbb formály a tápforrásoknak a mspice könyvtárban levő VDC szimbólum. Ez a nyákon két pinként jelenik meg, viszont a netlistbe szépen begenerálódik. Adjunk neki nevet és értéket és kössük, ahova csak tetszik :). Az értéknek a következő formájúnak kell lennie: pl DC 35V vagy DC -3V stb.

Lehetőség van konstans áram generátor bekötésére is, ez a IDC alkatrész.

Váltó áramú tápforrás:
Váltóáramú generátorhoz az előzőekben leírt VDC generátort lehet alkalmazni, de az érték mezőbe az adott generátornak megfeleő értéket kell megadni.
Pl egy imp. gen:
VALUE= pulse 0 3 10u 100u 100u 3m 4u

Áram mérő:
Áram mérésre természtesen a spiceban megszokott módon egy DC tápot tudunk behelyezni az áramkörben 0V értékkel. A spice parancssorban:
# plot i(meroneve)


Ez az egész egy jó kis meló volt, tetszett is, remélem, hogy másnak is hasznára lesz! :)

spice simulation using Cadsoft Eagle.