Bygga egen dator från grunden

Berätta om dina pågående projekt.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Bygga egen dator från grunden

Inlägg av DanielM »

Hej!

Vill bara dokumentera vad jag håller på med.

Introduktion:
Jag har länge hållit på med mikrokontrollers och jag tycker dom är roliga att arbeta med. Men jag ville göra något mera med dom, framförallt hålla på med webbsidor och nätverk. Jag snurrade in mig lite mera på att använda LwIP, men trots detta så var det mycket bök och jobb för att bara få till en liten enkel hemsida.

Då tänkte jag att om man skulle använda ett riktigt operativsystem på mikrokontrollern, alltså ett linux-baserat operativsystem. Lite mera som Raspberry Pi. Då skulle detta säkerligen bli enklare. Samtidigt som man kan styra I/O in- och utgångar via operativsystemet. Operativsystemet kommer vara OpenSTLinux.

Av slumpen hittade jag ett utvecklingskort som heter STM32MP157D-DK1 där DK1 står får minimal. Det finns DK2 också. Det har inget med Donkey Kong att göra.
Skärmbild 2024-03-18 135103.png
Jag hittade även en manual
an5031-getting-started-with-stm32mp151-stm32mp153-and-stm32mp157-line-hardware-development-stmicroelectronics.pdf
till att bygga denna dator samt ritningsunderlag
en.mb1272-dk1-c03-schematic.pdf
Grunden
Jag har tittat mycket på vad ST har gjort, och jag gör nästan likadant. Jag börjar med att konstruera
  • Lågfrekvenskristallen
  • Högfrekvens-oscillatorn
  • Reset
  • Boot

Skärmbild 2024-03-18 135618.png
Där efter gav jag mig på strömtillförseln.
Det som var unikt här för mig är att det är en annan typ av krets som använder sig av I2C för att aktivera delar av andra kretsar. Kretsen heter STPMIC1APQR.
Strömmatningen kommer från USB-C kontaktdonet som även har en "ideal diod" som jag inte har riktigt förstått vad den ska vara bra till. Jag har mer eller mindre kopierat befintligt schema från ST.

Först hade jag planer på att skippa det där med USB-C kontakt och köra vanlig DC 3.5 kontakt. Men det verkar som att USB_PWR_CC1 och USB_PWR_CC2 ska tydligen anslutas från USB-C kontakten till STM32MP157 processorn. Så om USB_PWR_CC1 och USB_PWR_CC2 är bara en 5V spänningssignal, så kan jag lika gärna använda mig av DC 3.5 kontakt istället.
Skärmbild 2024-03-18 135722.png
Och det ett av dom viktigaste, avkopplingskondensatorer. Jag tror jag kommer få äta upp detta med tanke på att jag använder en processor med BGA-paket och 0402 avkopplingskondensatorer. Jag kanske borde ha valt 0201, men det blir så omständigt. Jag kommer få sätta avkopplingskondensatorerna under STM32MP157.
Skärmbild 2024-03-18 141951.png
3D modeleringen
Nu när jag har strömmatning och avlastningskondensatorer. Då är det dags att påbörja lite 3D modelering. Det är ändå mycket kvar, men jag har inte testat 3D moderlering alls i Altium CircuitMaker (konstnadsfri version). Så jag var riktigt nyfiken hur det ska vara.

Jag började med att bestämma antalet lager. Jag väljer 6 lager.
Skärmbild 2024-03-18 143425.png
Skärmbild 2024-03-18 143533.png
Och nu är jag här.
Bilden visar högfrekvensoscillatorn, lågfrekvenskristallen, reset-funktion och BOOT.
Skärmbild 2024-03-18 143624.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Nu har jag gjort klar följande:
  • Strömmatningen
  • Kristallen/oscillatorn
  • Dragit dom mest grundläggande linjerna för att kunna starta processorn
  • 4 lager istället för 6 lager
  • Hållare för knappbatteri på 3.3V
Så här ser 3D modellen ut
Skärmbild 2024-03-24 143459.png
Undre lagret
Skärmbild 2024-03-24 143308.png
Mellanlagret
Skärmbild 2024-03-24 143036.png
Övre lagret
Skärmbild 2024-03-24 143021.png
En annan bild på 3D modellen från en annan vikel
Skärmbild 2024-03-24 142954.png
Under processorn STM32MP157 så finns det 0201 kondensatorer/resistorer samt 0402 spole/resistor
Skärmbild 2024-03-24 143356.png
Det jag tänker göra nu är att lägga till
  • HDMI
  • DSI
  • USB
  • Ethernet
  • SD-kort hållare
  • Audio
Sedan känner jag mig väldigt nöjd :)
Jag börjar med Ethernet....
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Bygga egen dator från grunden

Inlägg av Klas-Kenny »

Ska du inte ha något DDR-minne?
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Jo, jag glömde skriva in detta.
Jag har exempelritning på hur placeringen ska vara.

:tumupp:
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Bygga egen dator från grunden

Inlägg av Klas-Kenny »

En rekommendation är att rita det innan du ritar så mycket annat.

DDR-layouten kommer att vara det mest kritiska i hela din layout.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Jag brukar rita del för del. Just nu håller jag på med DRC. Jag har många varningar som jag försöker reda ut.
Jag sitter fortfarande fast med problemet att JLCPCB inte tillåter mindre än 0.2mm mellan padd och spår. Det krockar liksom om jag använder 3.5mil (0.09mm) spår mellan BGA paddarna. :humm:
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Bygga egen dator från grunden

Inlägg av Klas-Kenny »

Visst, inget konstigt att rita (till stor del) del för del.
Men DDR bör vara en utav de allra första delarna som ritas, just för att ge den delen optimala förutsättningar snarare än att behöva klämma in sig mellan redan dragna ledare.

Allmän rekommendation på ordning är typ;
1. Högfrekvensbussar, tex. DDR, PCIe, USB osv.
2. Matningsspänning till de kritiska bitarna
3. Lågfrekvensledare

Tillägg: Men en bra uppsättning constraints/designregler är väldigt bra att ha innan man börjar rita något alls. Så helt OK att fixa med det innan du ritar mycket mer.
Användarvisningsbild
hawkan
Inlägg: 2585
Blev medlem: 14 augusti 2011, 10:27:40

Re: Bygga egen dator från grunden

Inlägg av hawkan »

Men välj en leverantör som kan göra mindre banor?
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Detta ska jag lägga på minnet. Jag har ofta vana med att börja med kristallen, sedan spänningsmatning, boot, NRST och sedan kan jag dra allt annat så som USB och ethernet. Notera att detta är första gången jag bygger med HDMI och RAM.

Jag kommer använda detta RAM-minne:
https://www.mouser.se/ProductDetail/Mic ... vzkQ%3D%3D

Är det OK att säga RAM-minne idag, eller är jag gammskola?
Tänkte om språket har ändrats. När jag var ung så sade vi "megabyte" när vi pratar om grafikkort. :mrgreen:
hawkan skrev: 24 mars 2024, 19:38:24 Men välj en leverantör som kan göra mindre banor?
Har du någon rekommendation? JLCPCB har alltid fungerat riktigt bra för mig. Att dom har max 0.2mm mellan pad och ledare är väldigt extremt grovt. Vissa IC-kretsar som jag har på mitt PCB-kort har 0.2mm mellan pinnarna.
Användarvisningsbild
hawkan
Inlägg: 2585
Blev medlem: 14 augusti 2011, 10:27:40

Re: Bygga egen dator från grunden

Inlägg av hawkan »

Som alltid, pcbshopper.com visar
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Bygga egen dator från grunden

Inlägg av Klas-Kenny »

DanielM skrev: 24 mars 2024, 19:40:30 Detta ska jag lägga på minnet. Jag har ofta vana med att börja med kristallen, sedan spänningsmatning, boot, NRST och sedan kan jag dra allt annat så som USB och ethernet. Notera att detta är första gången jag bygger med HDMI och RAM.
Boot, reset-signal och liknande kan du vänta med till bland det allra sista. Det går alltid att snirkla in, på såna signaler spelar det ingen större roll om det så krävs tio lagerbyten på vägen.
DanielM skrev: 24 mars 2024, 19:40:30 Är det OK att säga RAM-minne idag, eller är jag gammskola?
Tänkte om språket har ändrats. När jag var ung så sade vi "megabyte" när vi pratar om grafikkort. :mrgreen:
Inget fel med det. Men det finns många typer av RAM-minnen. Beroende på sammanhang kan det vara mer eller mindre viktigt att förtydliga vilken typ man pratar om.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Oj oj...ja, det är bara att dra för hand.
Skärmbild 2024-03-25 183512.png
Såg ett dokument från ST hur man drar linjer som en kung.
https://www.st.com/resource/en/applicat ... ronics.pdf

Är det något i denna länk som jag bör tolka som obligatoriskt?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Bygga egen dator från grunden

Inlägg av Klas-Kenny »

DanielM skrev: 25 mars 2024, 18:54:57 Är det något i denna länk som jag bör tolka som obligatoriskt?
Det mesta.

Längdmatchningen är kritisk. Impedans är kritiskt.
Isolation mellan ledare är viktigt, men beroende på ledarlängd kan man komma undan med mindre än den där S-3S-regeln. Och avkopplingskondensator vid varje via vill jag nog påstå är smått överdrivet.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Klas-Kenny skrev: 25 mars 2024, 20:05:53 Det mesta.

Längdmatchningen är kritisk. Impedans är kritiskt.
Isolation mellan ledare är viktigt, men beroende på ledarlängd kan man komma undan med mindre än den där S-3S-regeln. Och avkopplingskondensator vid varje via vill jag nog påstå är smått överdrivet.
Min plan är att ha så korta ledarbanor som möjligt. Nu pratar jag om max 10 mm här.
Avkopplingskondensatorerna är placerade nära ingång/utgång hos ramminnet.
Differentialsledare kommer appliceras så dom får samma längd.

Så här placerar jag mina avlastningskondensatorer.
Skärmbild 2024-03-25 211208.png
Skärmbild 2024-03-25 211356.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Bygga egen dator från grunden

Inlägg av Klas-Kenny »

I princip alla ledare måste längdanpassas, signalerna inom en viss grupp får inte skilja mer än +-1mm. Inte bara de differentiella.
Läs kapitel 6.2 och 6.3 i ditt dokument så får du detaljerna du behöver veta.

De bitarna är absolut inget du kan hoppa över.

Här har du en layout jag gjort med ungefär samma förutsättningar som du. 16bit DDR3, 4-lagerskort.
Ditt bör se liknande ut när du är färdig.
Skärmbild 2024-03-25 215313.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar