Fórum témák
» Több friss téma |
Fórum » CPLD, FPGA - Miértek, hogyanok
Lehet hogy beleástad magad a VGA szabványokba..., de szemmel láthatóan gőzöd sincs miről beszéltem eddig! )
Az N-edik felharmonikus akárhány pixeles felbontás lehet, ahogy írtam, nem szükséges 2 hatványa hozzá! Max a realizálás változhat ennek függvényében, de tetszőleges pixelszámra érvényes! Igen, PLL-el is meg lehet csinálni ezt - azt nem tudom, hogy FPGA-ban realizálható e ez -, de sosem lesz annyira stabil, mint a harmonikuson alapuló szintetizálás! Ez ugyanis merev kapcsolatban áll a kiindulási jellel(szinkron jel), míg a PLL csak egy bizonyos hibával generált jel, nincs merev kapcsolatban a szinkronjellel.
Őszintén szólva ilyen fajta frekvenciaszintézisről még soha nem hallottam (a PLL-t is nagy
nehezen értettem meg). Érdekes lehet, feltéve ha a gyakorlatban is működik. Azaz valaki már épített ilyen áramkört, minden infó elérhető ahhoz hogy más is sikeresen utánépítse. Amíg ez nincs meg, addig elméleti fejtegetés. A PLL-módszer viszont működik, az LCD-monitorok ezt használják. A hozzászólás módosítva: Márc 9, 2017
Keress rá az analóg frekvencia sokszorosításra! Gyakorlati módszer...jóval korábbi, mint a PLL találmánya!
Az elmondottak és a saját gyakorlati tudásom alapján a sorszinkron(négyszög-) jelből lenne előállítva a pixel órajel, felüláteresztő szűrő segítségével. Kéne egy kapcsolási rajz...
Idézet: „Kéne egy kapcsolási rajz...” Nekem pedig sok-sok pénz... )
Szia!
Én még nem használtam CPLD/FPGA-t, de mikrokontrolleres feladataim között többször is szerepelt egy frekvencia követése. Mivel a mikrokontrollerek belső RC oszcillátora általában hangolható, ezért ennek felhasználásával készítettem PLL-t. Amit írtál, éppen ezért érdekelne, és ha kérhetném, egy kicsit fejtsd ki részletesebben ezt a felharmonikuson alapuló frekvencia szintetizálását. Az is jó lenne, ha egy linket adnál meg, amin erről van szó. Az analóg frekvencia sokszorosításra rákeresve nekem nem jött elő érdemi utalás. Amit eddig megértettem, az az lenne, hogy megmérem a szinkronjelek távolságát (már ez is problémás, mert a mérendő jel és a mérő frekvencia is jitteres lehet, és végtelen idő nincs a mérésre), és a visszaszámolt frekvenciát megszorzom, vagy a periódus időt osztom. A diszkrét értékek miatt, szerintem is a Zombee által már említett 1 órajelnyi lötyögés benne lesz a rendszerben.
Most oszinten! Azt mondod, hogy fogjam a 71kHz 1:654 kitoltesu negyszogjelet es szurjem ki belole az 1234-ik felharmonikust es az lesz a 86.38MHz-es pixel clock? Mekkora amlitudaval is van jelen ez a felharmonikus? Ha egyaltalan jelen van, mert ugye a szinkronjel atvitele nem biztos, hogy ekkora savszelesseggel megy. Lehet, hogy szandekosan slew-rate limited, hogy ne termeljen annyi zajt.
Igen, ezt! )
Természetesen nem egy lépésben kell ezt elképzelni! Ki kell számolni, a konkrét esetet, és azt néhány fokozattal megvalósítani. Mi akadályoz meg abban, hogy kellően meredek, felharmonikus-dús jelet kondicionálj hozzá ?? Semmi. Sőt, ha kettő hatványai szerinti mégis, akkor úgy lehet szorozni, hogy lényegében szűrő se kell hozzá!
Rádióamatőr körökben keress, ott használatos ez a technika.
A lényege...eltorzítod a jelet(ha az pl szinuszos lenne), és így kellő felharmonikus tartalmat adsz hozzá. Kiválasztod a megfelelő harmonikust belőle, majd azt újból eltorzítod(jellemzően négyszögesíted), és megint kiválasztod a kellő harmonikust. Így tovább a kellő frekvenciáig...
A magam reszerol nem hiszem, hogy ez igy ebben a formaban a gyakorlatban kivitelezheto, de lehet. De mindenkeppen szazszor bonyolultabb, mint egy parfilleres analog PLL, ami allitasoddal ellentetben igen stabil jelet ad.
Tény, hogy bonyolultabb!!
Azonban valamit valamiért...! Ez garantáltan hibamentesen állítja elő a frekvenciát, míg egy PLL mindig hibával dolgozik! Általában ez nem okoz gondot, de pl ott ahol kieshet egy pixel emiatt, nem biztos, hogy elfogadható! Egyébként, eszembe jutott egy még egyszerűbb módszer, csak XOR kapuk kellenek hozzá(némi RC körítéssel), amivel szépen lehet kétszerezni! De ez szintén csak 2 hatványaira jó...., arra viszont rém egyszerű... Idézet: nagyon nehezen tudom elkepzelni, hogy a gyakorlatban meg lehetne valositani ezt az aramkort a fent emlitett 70kHz -> 86 MHz esetre. Azert az ezredik felharmonikust kiszedni egy jelbol... Oriasi erositesek, zaj, jitter, sokadfoku szurok.. Ket harom felharmonikusig talan, amikor meg nem volt PLL, de manapsag nem hiszem, hogy ilyen letezne.„Tény, hogy bonyolultabb!! Azonban valamit valamiért...! Ez garantáltan hibamentesen állítja elő a frekvenciát,” Idézet: Nem tudom, hogy ezt honnan veszed, mert egyaltalan nem igy van. Amikor egy PLL lock-ol, akkor a ket jel frekvenciaja a faziskomparator bemeneten megegyezik. A fazisuk nem feltetlenul, viszont a faziskulonbseg allando, igy a frekvencia is. Ha a ket jel frekvenciajanak kulonbsegebol allitanad elo a VCO hangolojelet, akkor nem lenne azonos a ket frekvencia, de szerintem ilyen PLL nem letezik.„míg egy PLL mindig hibával dolgozik!” Az exoros frekvenciaduplazo nagyon regi dolog, de csak akkor mukodik, ha (kozel) 1:1 a bejovo jel kitoltesi tenyezoje es ismert a frekvencia. Ebbol 10 darab egymas utan sokkal bonyolultabb es hasznalhatatlanabb aramkor, mint egy PLL IC. Idézet: „Azert az ezredik felharmonikust kiszedni egy jelbol... Oriasi erositesek, zaj, jitter, sokadfoku szurok..” Ilyet csak te képzelsz oda! Akkor lenne igaz, ha egyből, egy fokozattal szeretnéd ezt előállítani! De én ilyet nem mondtam sehol sem... Idézet: „Nem tudom, hogy ezt honnan veszed, mert egyaltalan nem igy van.” Olvass kicsit utána, hogyan működik egy PLL áramkör!!! 1000-es felszorzásnál 100fok hiba az oszcillátor fázisában, a fáziskomparátornál csak 0,1 fok hibát eredményez! Szerinted mivel fogod garantálni, hogy a szintetizált frekvencia jittere olyan kicsi lesz, hogy nem okoz pixelhibát ??! Egyébként létezik olyan, hogy FLL...csak nem PLL-nek hívják..., talán a frekvenciára utalva ezzel ?!! Idézet: „Az exoros frekvenciaduplazo nagyon regi dolog, de csak akkor mukodik, ha (kozel) 1:1 a bejovo jel kitoltesi tenyezoje es ismert a frekvencia” Ez így kijelentve hülyeség egész nemes egyszerűséggel! Bár, lehet létezik olyan kapcsolás, ami csak így képes működni, de amiről én beszélek, az frekvenciafüggetlen! És semmilyen megkötés nincs a kitöltési tényezőre. A hozzászólás módosítva: Márc 10, 2017
Idézet: Valo igaz, nem kell még kozel 1:1 kitoltes sem, csak annak a feltetelnek kell megfelelni, hogy a bejovo impulzus hosszabb legyen, mint az RC tag kesleltetese. Ehhez a maximalis frekvenciat es a kitoltesi tenyezot viszont ismerni kell. Ez az a kapcsolas, ami a bejovo jelet lekeslelteti valamivel, es az eredeti jelet meg a kesleltetettet beleveiszi egy XOR kapuba.„Ez így kijelentve hülyeség egész nemes egyszerűséggel!” A PLL-eket illetoen, eleg sokat olvasgattam a mukodesuket, de ami ennel sokkal tobbet er, hogy PLL-t rettento sok helyen hasznalnak, ahol a frekvencinak pontosnak kell lennie. Pl. ahogy azt zombee is emlitette, az osszes LCD-s monitorban PLL-lel szinkronizalnak a bejvovo video jelre es azzal mintavetelezik az analog jelet. Es nem igen villog a kep rajtuk, tehat nincs pixel hiba. Sot, ami azt illeti, mar a VGA jel is PLL-lel keletkezik, mert a VGA chip a pixel clock-ot PLL-lel csinalja. Ezen felul en is hasznaltam PLL-t tobb helyen, es oszinten szolva nem volt vele semmi problemam, pixelhiba nelkul allitotta elo az 59 MHz clock-ot a video chipnek. Teny, hogy sosem neztem rajta jittert. Gondolom, hogy attol nem lesz jitteres a PLL kimenete, hogy a VCO onmagaban nem jitteres, a VCO vezerlofeszultsege meg egy alulatereszto szurorol jon, az sem ugral ossze-vissza. Akkor mitol lenne jitteres a kimenet? De mondjuk legyen neked igazad, a PLL nem jo. De akkor hogyan mukodnek a szintezeres vevok meg adok? Mert azoknak azert illik pontosnak lenni, es megis PLL van bennuk.
Gondoltam, hogy RC tagos XOR kapus verzióra gondoltál! Ott valóban vannak korlátok.
Én viszont arra, amikor RC helyett egyetlen egy sima kapu késlelteti a jelet. Ez kétszerezésre minden további feltétel nélkül frekvenciától függetlenül működik. A frekvencia nagyrészt pontos lesz, a fáziszaj nem mindegy mekkora! Minél nagyobb szorzást végzel a PLL-ben, annál nagyobb lesz a zaja az oszcillátornak is, mivel a fáziskomparátor hibája jelen esetben 1000x-esen jelentkezik az oszcillátornál már! Nézz meg egy PLL frekvencia szintézer fáziszaját, és egy kvarcoszcillátorét! Elég nagy különbség lesz közöttük, ami nem jelenti azt, hogy az átlag frekvencia, vagy átlag fázis rossz lenne, mert ez csak arra érzékeny helyeken feltűnő! Ami te állítottál elő, az magát a video generálást érintette. Ott te vagy a master forrás. De ha rá kell szinkronozni, és úgy beavatkozni a pixelekbe, már nem ennyire fényes a helyzet. Ott nem mindegy egy kis csúszás ide vagy oda... Idézet: En csak azert gondoltam az RC-s megoldasra, mert te azt irtad, hogy„Gondoltam, hogy RC tagos XOR kapus verzióra gondoltál! Ott valóban vannak korlátok. Én viszont arra, amikor RC helyett egyetlen egy sima kapu késlelteti a jelet. Ez kétszerezésre minden további feltétel nélkül frekvenciától függetlenül működik.” Idézet: Nade! A sima kapu es a RC tag kozott mi kulonbseg van? Az emeleti mukodest tekintve semmi. A gyakrolatban meg nyilvan nem mukodik minden frekvencian, hiszen 1 GHz-en nem mehet egy 74LS86-os.„csak XOR kapuk kellenek hozzá(némi RC körítéssel)” Egyebkent az EXOR-os ketszerezorol az elozo postban hulyeseget irtam, mert akkor is duplaz, ha a bejovo impulzus rovidebb, mint a kesleltetes. Viszont, ha az impulzus pont olyan hosszu, mint a kesleltetes, akkor a kimeneten csak egyetlen dupla hosszusagu impulzus lesz, tehat nem mindegy, hogy mi jon be. De arra kivancsi lennek, hogy hogyan lehetne ezzel az exoros modszerrel egy szinkronjelbol eloallitani a pixel clock-ot. Mert lehet, hogy lesz 1024 impulzusod a ket szinkronjel kozott, de hogy az idoben nem lesz egyenletesen elosztva, az egeszen biztos. Na, ezzel a jellel valoban nem lehetne mintavetelezni az kepet. Ertem a faziszaj dogot, de nem tudom, hogy ez a gyakorlatban mekkora egy 1000-res szorzasnal. Lehet, hogy ott mar tenyleg nagyon nagy. De, ha onmagaban nem nagy a VCO faziszaja, akkor a negativ visszacsatolastol mitol lenne nagyobb? De valahogy megoldjak, mert a VGA monitorok is ra tudnak szinkronizalni a jelre. En valoban csak olyan PLL-ekkel dolgoztam, amik <100 szorzast csinaltak. Idézet: Ha en a video chip-nek olyan orajelet adok, ami fel orajelnyit lotyog, akkor az nem fog mukodni. 10 fokos fazishiba nem problema, de az a mintavetelezest sem erdekli, hiszen a pixel kozepen akarok mintat venni. A beavatkozas meg pont ugyanaz, mint a video generalasa. De teny, hogy en 1MHz-bol csinaltam 59 megat, nem pedig 70kHz-bol 86 megat. „Ami te állítottál elő, az magát a video generálást érintette. Ott te vagy a master forrás. De ha rá kell szinkronozni, és úgy beavatkozni a pixelekbe, már nem ennyire fényes a helyzet. Ott nem mindegy egy kis csúszás ide vagy oda...”
Azért írtam RC tagot, hogy egyszerűsítsem a dolgot, egyszerűen nem akartam ennyire belemenni, nézd el nekem! Az RC tagos közismert, míg a kapus késleltetés nagyon nem az!
Nyilván ez az egész addig frekvenciafüggetlen, amíg maga a kapu bírja azt, senki nem mondja, hogy egy 100MHz-es kapuval 10GHz-es jelet szorzol...! A különbség annyi, hogy RC tag és kapu között annyi, hogy az RC tagot azért be kell "lőni" valahová időállandóban. A kaput viszont nem kell sohasem, amit tud, annyi a határfrekvencia... A VCO faziszajához hozzáadódik a visszacsatolás zaja! Gondolj bele, minél nagyobb a szorzás, annál kisebb zaj a fáziskomparátor kimenetén, vagy bárhol a láncban arányaiban nagy hibát okoz a kimenőjelben! A VGA monitorok analóg eszközök! Ott nincs előállítva sehol sem pixel szintű órajel. Egyszerűen csak minden egyes sorszinkrontól indul egy behatárol időzítéses folyamat, semmi köze semmilyen órajelhez. Azt én nem tudom, milyen video chipre gondolsz, és hogy az mit csinál ?!! Így nem is tudok ehhez mit hozzáfűzni...
A VGA jóformán csak a vezetékben analóg, meg a katódsugaras monitorokban. De már ott se mind. A pixel órajelet a videókártya állítja elő a kezdetektől fogva (igen, az első MDA csatolókban is). VGA-nál ezt használja a RAMDAC, ami a digitális FIFO típusú videómemória és D/A konverter házasítása. A csatoló ebből állítja elő a szinkronjeleket is, de magát a pixel órajelet már nem vezetik ki. Az analóg (képcsöves) monitorokban valóban nincs szó a pixel órajel visszaállításáról, azonban az LCD monitorokban ez már létkérdés, és természetesen PLL-t használnak.
Hogy ne legyek OFF: a téma az FPGA-hoz ott kapcsolódik, hogy az LCD-monitorhoz hasonló, diszkrét pixelszámú eszközön (pl. intelligens LED-füzéren) szeretném a VGA videojel egy részét vagy egészét megjeleníteni. A feladat (meglátásom szerint) csakis FPGA és PLL segítségével jöhet szóba. A CycloneII pedig a legolcsóbb és legegyszerűbb eszköz erre a célra, mert mindkettő benne van. Egyébként 1056-os szorzás kellene első körben, a 800x600@60Hz felbontáshoz 1056 pixelidő tartozik. A CycloneII elvileg tud állítható fázistolást is. Nem feltétlenül rossz az analóg frekvenciaszintézis sem, de amíg csak elméleti fejtegetéssel offolod a témát és nem dobsz be egy gyakorlatban működő, kipróbált és dokumentált projektet, kapcsolási rajzot, addig elméleti fejtegetés marad és további off-okat szül. A hozzászólás módosítva: Márc 10, 2017
Sziasztok,
A Quartus forditas utan nem mondja meg hogy kb mekkora sebessegre lehet szamitani ? Nem latom sehol.
Nyák tervezés.
Kicsit off a kérdés, de ide rakom, mert leginkább fpga környékén látni akár ezernyi lábat, amihez nyákot gyártani jó sok layert kell kezelni. A kérdésem az lenne, ismertek-e valakit, aki veterán művész a nyák tervezés minden szegletében - nagy frekvenciás jelek kezelése, parazita jelenségek, mindaz 10+ layeren. Egyébként azt forgatom a fejemben, megkérdezném az illetőt, hogy asic design-hoz a backend design felépítése GDS2-ig tényleg annyira húzós, mint állítják, vagy előfordulhat, hogy egy nagyon ügyes pcb designer is meg tud bírkózni azokkal a szakmai kihívásokkal?
Sziasztok,
Jo ideje keresem hogy lehet kiszamolni az Altera LE meretebol a szukseges config EEPROM meretet, de ugy latszik rejtely. Annyit talaltam, hogy 35-50 [ 55?] % tomoritest lehet vegezni.
Sziasztok!
Nagyon nem vagyok otthon a CPLD típusokban illetve programozásban, de szeretném elkezdeni. Ebayen vannak hihetetlenül olcsó darabok, amiket XBOX 360 RGH-hoz használnak. Engem ez a fajta használat hidegen hagy, meg akarom tanulni, hogy hogy is működik ez a kis lap, mit lehet kihozni belőle, mikor érdemesebb ezt használni mikrovezérlő helyett. Mivel egy darab USB-t (vagy bármilyen más csatit) sem látok rajta, gondolom programozó hardver kellene hozzá. A kérdés az lenne, hogy: Ez a lap amit linkeltem működhet-e ha újra próbálom programozni, vagy ez ilyen ,,egyszer megcsináltuk a gyárban, csak ezt tudja, mást nem" cucc? Ha működhet, milyen programozó kellene hozzá? Vannak szintén nagyon olcsó darabok de fogalmam sincs hogy jó lesz-e hozzá. Nyilván egy Spartan lap lenne jó, de ennyi pénzt nem akarok beletolni, hogy aztán kiderüljön hogy teljesen idióta vagyok a témához. Esetleg ez az amit még megvennék, de ez a maximum: Link A hozzászólás módosítva: Jún 3, 2017
Szia,
Amibe a fejszédet vágnád, az nem csak logikát igényel, de temérdek sok pénz is el fog menni magára a kísérletezésre. A "nem költenél rá pénzt" hozzáállásra azt mondanám, hogy akkor hagyd a fenébe. Ha csak játszadoznál valami logikai játékokkal, a mikrovezérlők sokkal olcsóbbak lesznek, de azok is olyan környezet, hogy észre sem veszed, és 50 rugó elment mindenféle csiricsáré dologra (breadboard, programozó, tápegységek, stab kockák, kondenzátorok, ellenállások, mindenféle breakout boardok, mechanikai szerelési cuccok, teljesen alap dolgok). A még olcsóbb játékszer a web programozás tud lenni. Arra elég az a számítógép, amiről a fórum üzenetet most is megírtad, egyébre költeni nem kell, mindenféle tutorialokkal tele a web. Have fun. Idézet: Még ha csak annyi lenne... „észre sem veszed, és 50 rugó elment mindenféle csiricsáré dologra”
Hát evidens, hogy az Altera cuccaival kell elindulnod, hiszen ott tényleg olcsó a 240LE-s CPLD, és ugyanannyi kb a hozzá való USB-s programozó is! Ez utóbbi nem csak ehhez jó természetesen. Xilinx-hez nem találsz messze ilyen olcsó programozót, max az ősrégi párhuzamos portosat...csak azt meg mi támogatja ma már ?!
Azért ne felejtsük el, hogy a kínaiak gusztustalanul lemásolnak mindent. A Xilinx platform cable-öket is...
A hozzászólás módosítva: Jún 3, 2017
Ha megveszi a linkelt Coolrunner-II CPLD kartyat meg a Blaster programozot, akkor ingyen Xilinx sw-rel mar tudja programozni a CPLD-t. Ez nem kerul 50.000 Ft-ba, azt azert lassuk be.
Ez így van...de lássuk be, az a másolt is jóval drágább, mint a másik cég azonosan másolt programozója!! Kb nagyságrend még így is a különbség emlékeim szerint.
Szia. Ahhoz hogy VHDL vagy Verilogban kiprobald magad nem kell semmifele HW. Letoltesz egy Quartus II-t, az ingyenes valtozatot, es nekifogsz kodolni. Az Altera Modelsim-mel le is tudod szimulalni. A HWre valo feltoltessel es a tobbi felevel csak ez utan erdemes foglalkozni.
Apro LEDes es hasonlo kiserletekhez szerintem ebbe nem erdemes befektetni. Ez az egesz inkabb HW terulet mint SW. Idézet: En ugy mondanam, hogy ez szintiszta HW. Semmi koze a SW-hez. „Ez az egesz inkabb HW terulet mint SW.” |
Bejelentkezés
Hirdetés |