Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Mainframe DIY
#41
Mislim da sve treba biti manje komplikovano. Moj predlog je sledeći:
- Modul za napajanje bi bio poseban i imao bi samo jedan izlaz (možda 12 ili 24V). To podrazumeva da bi svi ostali morali imati potrebno napajanje na sebi.
- Master clock od 100MHz bih izbacio jer mu ne vidim svrhu. Ako nekom modulu treba takav clock onda je bolje da to bude na njemu a ne da se vuče preko backplane-a.
- Isto tako ne vidim svrhu za I2C.
- Ove ostale interfejse bih podelio na posebne celine i vukao bih ih preko posebnih, kraćih (jeftinijih) konektora. Ako nekom ne treba XCONNECT on i ne stavlja skuplji veći konektor! Ista je priča i za ovaj cross-point interfejs.
- backup baterry ima na sebi samo modul kome je neophodan, dakle i to je po meni višak.
- JTAG da ide na prednju stranu na samom modulu. Ne vidim kako ćeš koristiti ovako JTAG ako je na backplane-u više modula koji na sebi imaju MCU. A i dostupnije ti je da JTAG bocneš na prednju stranu modula u  mainfram-u.
Reply
#42
@prasimix,

evo nekih mojih komrntara kako j sve to vidim. Kao prvo, potpuno se slazem sa @gorankg u vezi napajanja. Mislim da treb predvideti jedno napajanje od npr. 12V ili 24V i svaki modul koji se ubacuje ce imati svoj DC/DC konvertor koji ce omogucavati napajanje sebi i pratecoj elektronii. Ceo mainframe bih projektovao da bude neizolovan, a kartice ce da se projektuju sa ili bez potrebne izolacije po potrebi.
HC595 ne moze da radi na 100MHz. Takodje mislim da se uopste ne treba zaletati sa tako velikim brzinama. Prvo treba videti da li za tako nesto stvarno ima potrebe.
Ako SPI vec hoces da koristis za potrebe komunikacije, onda obavezno sve SPI linije moraju da budu diferencijalni i propisno terminisane, a ne sam CS. Oko komunikacije treba videti koje realno brzine potrebne, a ne stavljati neke silne megaherce ili giggherce i napraviti sebi problem.
Distribucija kloka ima smisla zbog sinhronizacija razlicitih dogadjaja. Posebno obratiti paznju prilikom rutiranja ove linije kako ne bi doslo do kanjenja od prvog do poslednjeg.
Vidim da imas IRQ linije. Da li mislis preko njih da radis detekciju prisustva modula?
Takodje, razmisli da li ti trebaju CS-ovi na SPI ili mozes sve da napravih kao daisy chain?

Pozdrav,
Vojin
Reply
#43
Hvala @gorankg, hvala @vojinilic, evo da pokušam odgovoriti na vaše komentare.

Sve što je postavljeno različiti konstruktori mogu koristiti u mjeri koliko im je potrebno. Zato sam i postavio neka tipična napajanja koja su evidentno neizolirana i za slučaj izoliranih modula stvarno nedostaje neki osnovni napon. Telekom od 48 Vdc je pretpostavljem previše, 12 V bi moglo biti premalo (prije onda 15 ili 18 V), možda bi onda 24 V pokrivao većinu potreba. Naravno ako netko treba nešto što nije pokriveno ovom specifikacijom (a to uključuje i mrežni napon!) to može dovesti direktno na ploču zasebnim kabelom i primjerenim konektorom (to npr. mislim napraviti u slučaju svojih novih modula programabilnog ispravljača ako uspije avantura sa CF DIC-om).

Master clock je kao što mu ime kaže gazda Smile. Isti nema smisla kod trivijalnih modula, ali kada treba usklađivanje signalizacije i transfera podataka kod modula koji to rade (to sigurno nije ispravljač, el. teret, i sl.) onda mislim da je itekako potreban. To nisam ja izmislio, "prepisao" iz VXI standarda, jedino je pitanje je li za DIY razinu modula potrebno 100 MHz ili se može staviti 50 ili 25. U svakom slučaju kao što sam već rekao, tko ga treba, koristiti će ga.

I2C možda nema puno smisla ako se osnovna komunikacija zasniva na SPI. No, svako toliko se zna natrčati na neki zgodan (i često jako povoljan!) čip kojeg imaš u I2C a nema u SPI verziji. Isto tako netkome bi I2C mogao biti sasvim dovoljan za sve što mu treba u komunikaciji sa njegovim modulom.

xCONNECT
signalizaciju sam stavio zato što sam imao mjesta Smile. Potrošio sam nešto vremena (moguće ne dovoljno) da vidim kakvih konektora ima i za koju cijenu. Smatram da banalni 0.1" pin-headeri ovdje ne dolaze u ozbir i ispalo je da su DIN 41612 sa svojim brojem pinova, mehaničkom čvrstoćom i cijenom (oko 2 USD) vrlo atraktivni. U stvari smješno je što su kod npr. TME 96-pinski čak nešto jeftiniji od ovih 48-pinskih. Sve ponuđeno sam kupio i držao u ruci. To su ozbiljni konektori (barem za nekog neozbiljnog poput mene)! Potpuno sam otvoren za vaše prijedloge konektora dok god oni nisu spomenuti 0.1" pin-headeri. Ovdje postoji i druga mogućnost, a to je da ako se pinovi potrošeni na xCONNECT iskoriste pametnije, da se isti i možda neka druga "hi-performance" signalizacija prenese na drugi (AUX) konektor. Ovo posebno neće biti teško za izvesti u budućnosti ako konektori i backplane budu na podu (kao kod PCa), a ne na stražnjoj strani koja ne bi trebala biti veća od 3U. Eh, da, kad već spominjem dimenzije, moduli bi trebali biti nešto šire poslagani 7 HP (35,56 mm) ili čak 8 HP (40,64 mm) umjesto inicijalno predstavljenih 6 HP.

Da spomenem i matricu (cross-point). Mislim da neka vrsta iste treba postojati za rutanje signala među određenim modulima (da kabeli ne idu izvana, ako to nije potrebno). Hoće li se koristiti specijalizirani čipovi ili ne, ostaje na konstruktoru. U svakom slučaju bih ostavio te X i Y linije po modulu.

Baterijski backup je također stavljen kao nešto generalno (kopirano iz VXI), iako stvarno ne znam koliko ima smisla, jer ako modulu treba rezervno napajanje za čuvanje podataka onda bi ono moralo "ići" sa njime jer kod vađenja iz šasije sve će se izgubiti!

Ideja JTAG-a je da bude centraliziran, tj. da konektor koji spominješ bude na prednjoj ploči samo jednog modula (procesorskog #0) a ne njih x. Čipovi (bilo to MCU ili neki drugi) koji su po ostalim modulima bili bi dohvatljivi sa JTAGom preko backplane-a. Takvu situaciju imaš najmanje na PCI Express busu.

O izolaciji: da, po definiciji backplane jest neizoliran, a kao što sam spomenuo u prethodnom postu, ako neki moduli trebaju biti međusobno izolirani to će se morati napraviti na samom modulu. I ovdje odmah dolazimo do jednog od razloga zašto ima smisla dovoditi neizolirana napajanja od +3,3 ili 5 V na sve module: da bi se napajala jedna strana izolatora!

'HC595 ne može raditi ni približno na 100 MHz. Ali zato 'LV595A ili 'AHC595 može raditi tipično između 105-120 MHz @3,3V (min. 70 MHz), a 'VHC ide do 150 MHz @ 3,3 V. Iako tvoj prijedlog za ulančavanje (daisy chain) ima smisla jer smanjuje broj pinova, uz još uvijek prihvatljivu brzinu pristupa. Takvo usporavanje bi se moglo anulirati ako bi se našao neki zgodan 4-bitni registar (za max. 16 periferija po modulu). Malo je nezgodno što će se dogoditi ako neki modul po putu postane disfunkcionalan, pa njegov registar neće moći proslijediti dalje informaciju.

Da, ovo sa brzinama SPI nisam pametan. Neki čipovi spominju 20 i više MHz, i koliko daleko se možemo dobaciti a da se sve skupa ne pretvori u cirkus trenutno ne znam i to će svakako trebati još istražiti. Pitanje je i što se želi stvarno prenositi između perifernih i procesorskog modula. Mislim da bi to lakše bilo definirati ako imamo neki konkretni/reprezentativni slučaj. Jedna od opcija je da modul koji treba raditi opake stvari neće koristiti centralne procesorske resurse (slot #0) već će imati to kod sebe, a centralnom će slati tu i tamo neke kikiriki podatke.

IRQ funkcionalnost se dijeli sa trigger out-om. U slučaju xCORE CPU IRQ-ovi ne bi ni trebali, u slučaju drugih zavisi kako se organizira firmver. Neka vrsta detekcije prisustva modula bi svakako trebala, najjednostavnije bi bilo da na SPI okačim na fiksnu adresu jedan '595 koji će imati hardkodiran ID modula, na osnovu kojeg će se onda pokrenuti i pripadajuća inicijalizacija i self-test procedura. Druga mogućnost je da se na tu fiksnu adresu nakači sitni EEPROM (to danas košta oko 0,30 USD) i tamo pronađe ID i neke ekstra stvari, recimo kalibracijski parametri tako da kalibracija putuje sa modulom, a ne da je centralno pohranjena! Postoji i mogućnost da "specifikacija" podržava oba modaliteta u ovisnosti o mogućnostima konstruktora i stvarnih potreba pojedinog modula.
Reply
#44
U diskusiji na ovu temu na drugom mjestu pojavila se ideja da se ponudi npr. 24 V napajanje koje nije DC već neki visokofrekventni AC koji bi se mogao iskoristiti za lako dobivanje galvanski izoliranih napajanja za module koji će takvo što trebati (npr. "floating" programabilno napajanje, el. teret, itd.). To je inspirirano onime što je svojevremeno Tektronix imao u svome instrumentacijskom racku, samo što se tamo koristio trafo sa višestrukim sekundarima na mrežnoj frekvenciji (vidi sliku).
Što mislite o toj ideji, tj. koliko ima smisla recimo napraviti AC/DC konverter koji će imati na sekundaru 24 V (ili nešto drugo) neispravljeno što bi se onda dovelo kod modula koji traže izolirano napajanje na mali trafo (moguće za male snage čak neki za gate drivere) i dalje ispravilo/reguliralo na potrebne napone? U stvari glavni trafo bi mogao imati dva sekundara, gdje bi se pomoćni koristio za napajanje switching kontrolera i zatvaranje NFB petlje.

[Image: 124nZWj.jpg]
Reply
#45
Ima li bilo tko, bilo kakav komentar na zadnji post?
Reply
#46
Nisi mi bio baš jasan u prethodnom postu ali ja bih razmotrio dve varijante.
- Ako vučeš AC preko bekplejna onda možeš imati glavni trafo sa više izvoda pa vučeš sve po reku. Na svakom modulu AC/DC konverter potrebnih karakteristika.
- Ako vučeš DC onda samo jedan napon, 24V/50Hz pa na svakom modulu DC/DC konverter.
Ne vidim u čemu bi bila prednost vući neki visokofrekventni AC po celom reku.
Reply
#47
AC je zgodan, 400Hz trofazni, to je opako dobro, to su nekad koristili na avionima, sad isto trofazni AC ali na jedno 10-15kHz, to je predivan izvor energije ako ti u blizini turbo mlazni engine : )
400Hz AC koriste i po mernim laboratorijama i to distribuaraju od uredjaja do uredjaja samo ne znam kako dobijaju taj AC ...

Za manje zahtevne potrebe ipak je 24VDC taman za sve i svasta.
Reply
#48
(03-03-2018, 01:46 PM)gorankg Wrote: Nisi mi bio baš jasan u prethodnom postu ali ja bih razmotrio dve varijante.
- Ako vučeš AC preko bekplejna onda možeš imati glavni trafo sa više izvoda pa vučeš sve po reku. Na svakom modulu AC/DC konverter potrebnih karakteristika.
- Ako vučeš DC onda samo jedan napon, 24V/50Hz pa na svakom modulu DC/DC konverter.
Ne vidim u čemu bi bila prednost vući neki visokofrekventni AC po celom reku.

Evo još jednom: AC bi bio visokofrekventni (nekoliko desetaka KHz), glavni sekundar je samo jedan i na njega se kači jedan ili više malenih (do par W) trafoa koji se nalaze samo na modulima koji trebaju izolirano napajanje. Izlaz iz tih trafoa se ispravlja i po potrebi dalje regulira.

Običan DC/DC konverter (recimo buck) u takvim slučajevima ne igra jer nema galvanski odvojen izlaz.

Ovo je samo ideja. Druga mogućnost bi bila povući 24 Vdc i onda koristiti malene push-pullove sa kontrolerima poput SN6505 (to pokriva ovo što je spomenuo mikikg na kraju, EDIT: ne baš, ali sa 5Vdc spomenuti kontroler može proći).
Reply
#49
To sa "malenim push-pull" ja se nebih uopste igrao, pogledaj izolovane pretvarace u modulima, ima ih raznih, cene su onako, nisu bas sjajne ali potpuno mogu da zavrse posao do snage od nekoliko Wata, izolovani za razne ulazno izlazne napone.

Ja sam trazio recimo izolovane DC/DC pretvarace koji imaju veliki opseg ulaznog napona, 1:2 je standard, 1:3 ili 1:4 su vec dosta bolji ali i skuplji.

Mali su, kompakti, valjada proizvodjac garantuje specificirane osobine i to je to za tu snagu, tu ja ne bih nista pravio.
Za snage preko 10W vec moze da ide nesto custom.
Reply
#50
Držim da je do par W po izlazu dovoljno. Misliš na module kao što ima TRACO Power i slični?
Reply
#51
Da tako nesto, ja sam preturao po Farnellu, tamo ima raznih pretvaraca za te snage, cene su od nekih 7-8EUR do 20ak EUR.
Reply
#52
(03-03-2018, 02:45 PM)mikikg Wrote: Da tako nesto, ja sam preturao po Farnellu, tamo ima raznih pretvaraca za te snage, cene su od nekih 7-8EUR do 20ak EUR.

Da, prihvatljivo ako ti treba do jedan po PCBu Smile.
Reply
#53
Imam drugo pitanje: što vam je važnije na radnoj plohi, manji utrošak prostora po horizontali ili vertikali? Inicijalno sam krenuo sa razmišljanjem o visini od 2U, pa ispada da to ne ostavlja dovoljno prostora na prednjoj ploči pojedinog modula tako sam to povećao na 3U. No, sada razmišljam da ako se poveća do 4U, moglo bi se dobiti više prostora za postavljanje stvari na prednoj ploči (recimo glatko 4.3" landscape TFT + enkoderi sa poštenim "knobsovima"), a i dubina bi bila manja, u korist manjeg utroška radne plohe po horizontali. Ali još važnije, 4U je dovoljno visok da se postavi "backplane" sa 96-pinskim DIN konektorima i 60 mm ventilator po vertikali (jedno povrh drugoga) i da ubacivanje modula bude po horizontali (ne treba se skidati poklopac) i hlađenje bi bilo horizontalno, a ne vertikalno.
Reply
#54
Mozes li malo da pojasnis krajnju ideju?
Sta bi seve bilo u tom reku?
Reply
#55
(03-03-2018, 04:08 PM)BeliNinja Wrote: Mozes li malo da pojasnis krajnju ideju?
Sta bi seve bilo u tom reku?

Išao bi CPU/MCU modul koji bi na sebi imao USB i eternet za konekciju prema PCu, TFT LCD touchscreen, 1-2 enkodera, neke I/O ulaze za trigere i slično. Po širini to bi bio i najveći modul (100-120 mm). Ostalo predstavljaju razni moduli (širina 40 mm) pod kontrolom CPU/MCU modula, npr: programabilni ispravljači različitih karakteristika (do 50 V, do 400 V, 4-kvadrantni, itd.), el. teret, generator funkcija/AWB, ADC/DAC modul, modul sa n digitalnih I/O izlaza, i slične funkcije nekom potrebne u "labu".
Sve skupa bi se moglo kontrolirati i preko PC-a korištenjem SCPI komandi.

Meni bih bio za početak zanimljiv sljedeći "komplet" modula: 2 x programabilno napajanje 50 V, 1 x 400 V i jednostavan 1 x "network analizator" (recimo baziran na AD593x).
Reply
#56
Sad je malo jasnije.
Reply
#57
Zadnjih par tjedana nastavio sam razrađivati bus koji i dalje ima zvjezdasto postavljene serijske kanale između MCU/master/#0 modula i perifernih modula. Zbog mogućih brzina komunikacije i bolje imunosti koristi se LVDS. Za LVDS je potrebno povlačiti parove linija sa impedancijom od 100 oma. Za test sam pokušao to napraviti za 4-slojnoj PCB za ukupno 5 modula (MCU+4 periferije). Slike su u nastavku. Trenutni raspored pinova je sljedeći:

[Image: 0LRPZvr.png]

Max. broj perifernih modula je pao sa 7 na 6, a da MCU modul ne bi trebao više od jednog 96-pinskog konektora. Prema svakom modulu ide 4 signala za full-duplex SPI, point-to-point (SCLK, MOSI, MISO i CS) i IRQ. Prema svim modulima idu 4 signala koja se mogu programirati prema potrebi (MLVDS0 do MLVDS3 koji su multipoint), zatim 10 i 100 MHz clock, SYNC i TRIG signali koji su svi multidrop. Finalno postoji i jedan I2C.
Način na koji će se modul koristiti SPI (npr. kao SPI ili samo dva signala za UART) i MLVDS i TRIG signale moći će se pohraniti na I2C EEPROM koji će biti na modulu. Isti EEPROM se može koristiti za spremanje drugih informacija kao što su: Module ID/revizija, kalibracijski podaci, vrijeme aktivnosti modula, potrebna firmver revizija, itd.

Osnovno napajanje svih modula je +5V i +12V koje može doći preko vanjskog konektora ili iz #0 modula. +Vaux je rezervno +5V napajanje. Osim toga predviđeni su ulazi za niskonaponski AC za potrebe izoliranih napajanja (vidi #44) iako još nemam pravu ideju kako to napraviti.
Dodano je i PE (uzemljenje) koje bi se sa RC članom spojilo na GND. Trenutno na #0 je spojen na dva pina, a na ostalim modulima samo na jednom (to bi možda trebalo promijeniti).

Prema svim modulima idu još NRST (master reset, active-low) i NFAULT (active-low) kao alarm koji traži pažnju bez odlaganja odnosno koji neki moduli mogu iskoristiti za gašenje određenih sekcija i bez MCU intervencije.

Šema za backplane sa 5 modula sada izgleda ovako:

[Image: cqBQOSf.png]

[Image: HfJvqxV.png]

[Image: JSKf27S.png]

[Image: 7tozQcf.png]

Iako je backplane zamišljen da bude pasivan, tj. nema nikakvih komponenti na sebi, na str. 4 šeme se vidi par stvari koje sam stavio na PCB, ali koje su opcionalne: EEPROM za identifikaciju backplane-a, 2 x fan kontrolera (AMC6821) sa tahometrom i dvostrukim temp. senzorima (u čipu i vanjski) i 3.3V regulator za napajanje spomenutih čipova.
Reply
#58
PCB izgleda ovako:

Top:

[Image: WumwqfA.png]

L1:

[Image: VMaCaGy.png]

L2:

[Image: UUq7Hnh.png]

Bottom:

[Image: nPGsAzP.png]
Reply
#59
Evo kako bi izgledala kutija za taj backplane. Kao prvo, prešao sam sa horizontalne na vertikalnu montažu backplane-a. Ukupna visina kutije je 4 U, a širina perifernih modula je 8 HP (~40 mm). MCU #0 modul je u ovom slučaju širok 120 mm (24 HP) što je dovoljno za postavljanje 4.3" TFT touch-screen displeja (480 x 272). Ako bi se proširio za nekih 10 mm mogao bi stati i 5" displej (800 x 480). Na prednjoj ploči #0 modula ima dovoljno mjesta za komotno postavljanje dva enkodera i još nekih I/O konektora, SD kartice i možda USB-A kao host. Eternet i USB-B bi trebali ići na stražnju ploču.

[Image: 4LR1R1R.png]
Reply
#60
Evo i primjer što bi na strani perifernog modula, u ovom slučaju programabilnog ispravljača koji mora biti izoliran, trebalo postaviti za komunikaciju preko DIB-a:

[Image: 2l5isLY.png]

ONSemi (bivši Fairchild) ima jako povoljne LVDS čipove (u ovom primjeru su to FIN1048, FIN1001 i NB3N201S). Budući da je za SPI Chip select predviđena samo jedna linija (da bi se uštedjelo na pinovima bus-a), a na modulu ima više SPI čipova, CS se dekodira korištenjem '959 SIPO registra. 3,3V-tni regulator, EEPROM i LVDS drajveri stoje iza izolacijske barijere koju čini Silabsov Si8661.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)