Sida 1 av 2

MiniMig'en som krympte - en FPGA-modul eller ett TV-spel?

Postat: 8 juli 2008, 20:44:30
av Illuwatar
MiniMig-följetongen fortsätter. Under tiden ett flertal personer fixar med mjukvaran så leker jag vidare med hårdvaran. Vid första försöket växte Dennis MiniMig för att passa in i ett Mini-itx chassi. Denna gång har jag gjort tvärtom: krympt det hela till ett så litet format som möjligt. Och detta utan att ge avkall på funktionalitet. Slutresultatet har exakt samma möjligheter som Dennis originaldesign.

Först en bild på arbetsmaterialet:

Bild

För att lyckas med detta och komma ner till 109 x 63.5 mm (uppmätt på fysiskt PCB) har följande åtgärder tagits:

* 4-lagers PCB. Första gången för mig, med det verkar att ha lyckats...
* Alla anslutningar via stiftlister (därav alternativet FPGA-modul)
* Minnena (2 x 512Mword) har ersatts med ett enkelt (1Mword)
* Core-filen till FPGA'n måste ändras (pin-assigment)
* S-video/komposit togs bort (kommer finnas på tilläggsmodul)
* Direkt 5V-matning (visst skydd mot överspänning finns)
* Komponenter på båda sidor av kortet
* 0603 är grundstorleken på C och R

Trots alla dessa förändringar behöver man inte ändra något på originalkoden i vare sig PIC eller FPGA (flytta pinnar != ändra koden). Kortet har efter allt dessa finesser:

* Xilinx XC3S400 Spartan-3 FPGA
* 2 Mbyte 10 ns SRAM
* Freescale MC68000 16 MHz (körs dock i Amiga 500-speed i MiniMig-läge)
* DIP-monterad PIC10F252-I/SP (sockelmonterad)
* Enkel 5 V-matning (core-spänningar och 3.3 V fixas av interna LDO-regulatorer)
* Amigans serieport separerad från PIC'ens serieport
* 16 generella I/O tillgängliga (om man ej kör MiniMig)
* 12-bitars VGA/Video (3 x 4 bit RGB)
* Ljudutgång med hörlursförstärkare/linjedriver (DC-styrd volymkontroll)
* ESD-skydd på Joystick-portarna
* JTAG-port till FPGA'n
* SD-kortläsare kopplad till PIC'en

Och så lite bilder på den faktiska produkten (under uppbyggnad, har inte alla komponenter ännu):

Bild
Bild
Bild


Och, jag _har_ inte glömt bort era USB->LCD-byggsatser. Har bara inte fått hem allt ännu... :)

Postat: 8 juli 2008, 21:05:43
av RasmusB
Så vackert! :D Ser superelegant ut. Sugen på att göra ett fyrlagerskort, aldrig gjort det förut. Vad har du för tekniska begränsningar på kortet? (ledarbredd, borrhål etc)

Postat: 8 juli 2008, 21:50:28
av Tekko
Satan i gatan illu att du orkar :shock: Skulle aldrig palla att cadda sånnt där :shock:

Postat: 8 juli 2008, 22:02:32
av JimmyAndersson
Samma här. :)

Illuwatar:
Du är galen. :D Enormt snyggt jobbat! :drool:

Postat: 8 juli 2008, 22:05:40
av Ronny
Snyggt jobbat! :tumupp:

Är imponerad över dina andra byggen du har publicerat på din hemsida också.
Mycket fina konstruktioner tycker jag!

Postat: 9 juli 2008, 16:44:36
av digitaliz
Wow! :):):)
Har du några kort över? :)

Postat: 9 juli 2008, 18:16:42
av squiz3r
Wow, Det blev inte stort!!

Jag tänkte göra ett 4-lagers kort till min robot, har du några tips och rekomendationer? (Alldrig gjort mer än enkelsidigt innan :oops: ) Kör du plus i ett lager och GND i ett annat eller?

Hur tunna banor har du, det ser riktigt smalt ut?

Postat: 9 juli 2008, 23:31:50
av Illuwatar
Man tackar! Detta bygge har tagit sin tid, framför allt att lägga beställningen. Med tanke på vad det kostar att göra 4-lagers blev skatteåterbäringen detta som gjorde korten möjliga. Nu hoppas jag att det inte finns något allvarligt fel i dessa, annars blir det en väldigt dyr dekoration...

När det gäller tillverkningen så har jag i princip maxat ut PCBcarts kapacitet gällande minsta linjebredd/avstånd och hålstorlek. Korten är gjorda med 0.1 mm minsta ledarbredd och avstånd samt minsta hål (i viorna) på 0.3 mm. Lagren i korten är tre signallager och ett jordplan. De synliga lagren bär i huvudsak signaler, lager 2 (det under komponentsidan) är primärt ett power-lager (vissa signaler var jag dock tvungen att smyga igenom där) och lager 3 är ett rent jordplan. När det gäller vias (speciellt blind vias) måste man kolla upp vad tillverkaren klarar av. Man kan inte koppla ihop lagren hur som helst (jag fick ändra min design något när jag fick reda på detta). Och korten är förstås helt handroutade (kör aldrig med autorouters).

Större serier och försäljning kan bli aktuellt om detta fungerar som jag tänkt.

Just nu jobbar jag på tilläggskort som skall agera "portreplikator" så jag kan bygga en konsol-liknande Amiga. Ett testkort som skall användas för att verifiera alla funktioner är beställt av en här på forumet (ett enkelsidigt prototypkort för att få ut alla portar som på en vanlig MiniMig.

Postat: 9 juli 2008, 23:55:27
av PeterH
Illuwatar: vilket CAD program kör du med?

Postat: 10 juli 2008, 17:43:27
av Greve Hamilton
Snyggt jobbat!
Illuwatar skrev:När det gäller vias (speciellt blind vias) måste man kolla upp vad tillverkaren klarar av. Man kan inte koppla ihop lagren hur som helst (jag fick ändra min design något när jag fick reda på detta).


Har du lust att utveckla detta?

Postat: 10 juli 2008, 18:04:20
av Illuwatar
Jag använder Protel DXP 2004 till alla mina byggen.

När det gäller sammankoppling av ledare mellan lagren finns det begränsningar hos tillverkaren hur dessa kan skapas. Blind vias är via-hål som stannar "halvvägs" genom kortet (går inte hela vägen igenom) För att lättare förstå detta tar vi ett exempel:

Kod: Markera allt

L1 (komponent)
  |
L2 (innerlager)
  |
L3 (innerlager/jordplan)
  |
L4 (lödsida)
En vanlig via går från L1 -> L4 och sammanbinder alla lager. Denna är nog inte så konstig (och är den man använder mest). Sedan har vi dessa blind vias. En sådan går exempelvis från L1 -> L2 och stannar där. Alla kombinationer mellan L1, L2, L3 och L4 är i teorin möjliga men i praktiken fungerar bara vissa. I mitt kort kör jag med L1 -> L2, L3 -> L4 samt helt genomgående vias. På så sätt blir det inget överlapp som inte går att tillverka (ett exempel på överlapp är L1 -> L3 samt L2 -> L4 i samma PCB).

Det bästa är att ta reda på vilka kombinationer tillverkaren har stöd för, välja den som passar bäst och lägga in detta som en regel i DRC-kontrollen. Då slipper man göra om designen efteråt.

Postat: 10 juli 2008, 18:26:19
av Greve Hamilton
OK. Så då går det bra att göra ett L2 -> L3, hos tillverkaren du använde? Alltså bara göra en "full" via och inte använda kopparen på L1 och L4?

Postat: 10 juli 2008, 19:35:33
av Illuwatar
Jag fick några alternativ (kom inte ihåg dem alla) och jag valde att köra via mellan L1 & L2, L3 & L4 samt (det som alltid fungerar) vior genom hela kortet (som ansluter de lager som har ledare i sig). Med dessa genomgående vior får man fixa till de som inte fungerar med de två andra kombinationerna (till exempel, skall du gå från L2 -> L3 använder du en helt genomående via, men placerar ledare i enbart L2 & L3).

Edit: Första Power-On test med monterade kretsar (alla utom ljudkrets och MAX232) - ingen onormal strömförbrukning och inget som small. Den magiska röken stannade kvar där den normalt hör hemma. Alla interna spänningar mättes upp och är helt normala (inom toleranserna för motstånd och regulatorer). Så, nu behöver jag testkortet som jag har beställt för att kunna testa vidare.

Postat: 13 juli 2008, 17:16:12
av Illuwatar
Uppdaterar med lite mer bilder:

Bild
Bild

Även detta projekt har nu hamnat lite i stå på grund av semester och leveranser av PCB. Jag har caddat och beställt två PCB, ett till en testrigg för FPGA-kortet och ett för en USB->Serieport, för att kunna lätt koppla in sig på PIC'ens serieanslutning. Utan dessa kan jag inte testa mer än matningsspänningarna (vilka uppför sig som förväntat).

Några smärre, mest kosmetiska förändringar har gjorts på PCB-layouten (som nu är i version 1.1). Om allt fungerar som det är tänkt kommer denna design att stanna där (och det blir denna som kommer att beställas ifall intresset är stort nog). Nästa fas (om man vill krympa detta ännu mer) är att köra med en fetare FPGA som kan köra allt (även processorn). För detta måste då ett stort problem lösas: löda BGA-kapslar...

Postat: 13 juli 2008, 21:40:11
av RDX*
Riktigt snyggt!
Vad körde du för storlekar på trace, via mm?