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


Forum Jump:


Users browsing this thread: 1 Guest(s)