Bygga egen dator från grunden

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

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Janson1 skrev: 29 april 2024, 07:28:59 Daniel, Ditt kort ser väldigt bra ut. Hoppas nu bara det fungerar. Det är väldigt många funktioner som måste lira, dessutom är många tidskritiska! BGA- kapslar är inte lätt att få dit bra, (va i alla fall inte lätt att få dit på min tid för snart 20 år sedan) , har du något knep där?
Tackar så mycket. Jo, jag tycker också mitt kretskort ser bra ut. Jag får lite tankar på Raspberry Pi när jag tittar på den. Tanken är inte att datorn ska vara en Raspberry Pi. Tanken är att kretskortet ska vara en enkel dator som man kan ha en webbläsare, eller någon form av GUI i C++ eller Java.

BGA kapslar jag har aldrig lött förut. Så detta blir första gången. Jag vet inte om jag ska löda allt manuellt eller om jag ska lägga bort jobbet åt Kina.
Jag har följt ditt alster på dom här sidorna nu ett tag och sett många utmaningar som egentligen inte är 100% lösta. Så nu när du får tillbaka ett mönsterkort och sen bestyckar det, hur tänkte du göra då?
Jag har verktyg för att värma och köra ytmonterat för BGA (Jag är lödinstruktör inom FSD). Jag tror jag börjar med allt som är med BGA eller IC-kretsar som har ett GND-plan under. Jag har en liten maskin som jag kan styra en ett kretskort på. Jag har dock inte använt denna någon gång.
thumbnail_ITEM-14838-001_web.jpg
Börjar du med BGA-kapseln och sen bygger bara det allra nödvändigaste för att se om du får grundfunktioner, typ, den svänger, dessutom med rätt frekvens, den kan läsa/skriva till minnet mm? Har du något slags testprogram till den?
Det finns något som heter OpenSTLinux som man kan installera. Jag har inte gjort något mera än att ritat upp kretskortet efter rekommenderad design från tillverkaren.
Jag har ingen utrustning för att mäta högfrekvenssignaler. Men debugger med UART har jag implementerat. Så jag antar att man kan få meddelanden om något ej går att läsa eller skriva.
Vad tror du?
Klas-Kenny skrev: 29 april 2024, 08:03:20 Jag tror och hoppas att Daniel tänker låta mönsterkortstillverkaren även bestycka kortet åt honom.

Om inte så är han på djupt vatten. :D
Jag funderar på detta att låta JLCPCB bestycka mitt mönsterkort. Vissa kanske jag får löda själv om dom inte har i lagret.
I övrigt så ser det ju fint ut att titta på. Svårt att säga så mycket mera kvalificerat än så bara utifrån dessa bilder. :)
Tackar. Det är lite jobb kvar på impedans så att jag kan komma så nära 50, 90 och 100 efter rekommendationer från tillverkaren och JLCPCB.
Några monteringshål är ju aldrig fel, om man tänker använda kortet till något.
Har du USB-OTG tillgängligt någonstans, för programladdning? Ser ingen uppenbar kontakt för detta.
Jag har inte hittat hur man lägger till monteringshål i Altium CircuitMaker. Men det kommer. Notera att mitt kretskort är 75x105 mm.

USB-OTG har jag inte. Det jag har är är USBH (High Speed). Fyra stycken dessutom :)

Om ni vill så kan jag ladda upp modellen här så ni kan ta och titta på den. Jag är väldigt generös med öppen källkod. Har ni Altium CircuitMaker?

Jag kommer lägga upp detaljerade bilder på vilka saker jag har gjort. Ni får gärna säga till om jag har missat något :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Klas-Kenny
Inlägg: 11541
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: 29 april 2024, 14:36:53 USB-OTG har jag inte. Det jag har är är USBH (High Speed). Fyra stycken dessutom :)
Du behöver USB-OTG för att kunna programladda enheten. Kopplat till rätt USB på processorn dessutom. Som jag nämnde tidigare i tråden.
Ser ut som att du kopplat dina fyra USB till en USB-hub, det går inte för programladdningen.

DanielM skrev: 29 april 2024, 14:36:53
Börjar du med BGA-kapseln och sen bygger bara det allra nödvändigaste för att se om du får grundfunktioner, typ, den svänger, dessutom med rätt frekvens, den kan läsa/skriva till minnet mm? Har du något slags testprogram till den?
Det finns något som heter OpenSTLinux som man kan installera. Jag har inte gjort något mera än att ritat upp kretskortet efter rekommenderad design från tillverkaren.
Jag har ingen utrustning för att mäta högfrekvenssignaler. Men debugger med UART har jag implementerat. Så jag antar att man kan få meddelanden om något ej går att läsa eller skriva.
Vad tror du?
Testa DDR-minne och liknande brukar finnas verktyg ifrån processortillverkaren för. Åtminstone NXP har verktyg för att stresstesta och samtidigt testa ut timing-parametrar för DDR-minnet, förmodar att ST har något liknande.
Brukar rekommenderas att man kör det det första man gör på korten (efter verifiering av matningsspänningar osv såklart).

Dessutom lär du behöva baka in dessa framtestade minnesparametrar i U-boot eller motsvarande, kompilera och få in i enheten.
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Klas-Kenny skrev: 29 april 2024, 14:53:48 Du behöver USB-OTG för att kunna programladda enheten. Kopplat till rätt USB på processorn dessutom. Som jag nämnde tidigare i tråden.
Ser ut som att du kopplat dina fyra USB till en USB-hub, det går inte för programladdningen.
Det går också att använda UART4 som jag använder.
Skärmbild 2024-04-29 150909.png
Testa DDR-minne och liknande brukar finnas verktyg ifrån processortillverkaren för. Åtminstone NXP har verktyg för att stresstesta och samtidigt testa ut timing-parametrar för DDR-minnet, förmodar att ST har något liknande.
Brukar rekommenderas att man kör det det första man gör på korten (efter verifiering av matningsspänningar osv såklart).

Dessutom lär du behöva baka in dessa framtestade minnesparametrar i U-boot eller motsvarande, kompilera och få in i enheten.
Nu använder jag färdig konfigurering av DDR-minne och dragning. Jag har inte rört något där.
Jag har inte tittat något mera på BOOT, förutom detta.

Jag vet inte riktigt hur det fungerar när man "bränner" över Linux till eMMC. Ska det ske via USB-sticka eller kan man direkt flasha det via SWO/JTAG?
Skärmbild 2024-04-29 151545.png
Skärmbild 2024-04-29 151332.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av DanielM 29 april 2024, 15:36:20, redigerad totalt 1 gång.
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Här är schemat i alla fall! Jag bifogar också rekommendationen
Schematic PDF_[No Variations].pdf
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
brrmek
Inlägg: 53
Blev medlem: 26 maj 2012, 23:27:37
Ort: Ursviken

Re: Bygga egen dator från grunden

Inlägg av brrmek »

Jag håller på med ett makerprojekt, Gaggiuno, som har ett stm32 kort. Den använder en st-link för bootload. Kanske kan vara något att titta på?

https://gaggiuino.github.io/#/?id=home
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Ja. Detta är väll en mikrokontroller? Jag använder en mikroprocessor. Men ST-Link går att använda där också.
Jag har inte forskat helt riktigt angående om BOOT. Jag håller fortfarande på att beta av vissa punkter som bör göras. Just nu är jag klar med alla ledarbanor. Så det är bara bereda så kretskortet går att produceras och monteras.

Jag ska använda OpenSTLinux. Men mer än så har jag inte tittat på.
Användarvisningsbild
AndLi
Inlägg: 17680
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Bygga egen dator från grunden

Inlägg av AndLi »

Finns det inget dev kort för den processor du valt(eller likvärdig) som du kan bekanta dig med funktionerna på först så du vet vad du behöver för att komma igång med ditt egna kort?
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Jo, det finns ett utvecklingskort som jag har tittat på. Jag har försökt göra ungefär likadant. Men jag modifierar efter mina behov.
Utvecklingskorten använder t.ex. SD-kort, medan jag använder eMMC. Dom använder också inbyggd ST-Link, medan jag använder extern ST-Link från en Nucleo STM32. Man ska ju bara programmera den en gång så :)

Men bör jag använda mig av USB_OTG eller kan jag använda UART4 som dokumentet säger?
Kanske det är dags att titta lite på OpenSTLinux så man får veta hur man får över det till eMMC. :)
Användarvisningsbild
Klas-Kenny
Inlägg: 11541
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: 29 april 2024, 15:15:12
Klas-Kenny skrev: 29 april 2024, 14:53:48 Du behöver USB-OTG för att kunna programladda enheten. Kopplat till rätt USB på processorn dessutom. Som jag nämnde tidigare i tråden.
Ser ut som att du kopplat dina fyra USB till en USB-hub, det går inte för programladdningen.
Det går också att använda UART4 som jag använder.

Jag vet inte riktigt hur det fungerar när man "bränner" över Linux till eMMC. Ska det ske via USB-sticka eller kan man direkt flasha det via SWO/JTAG?
Det kanske går (till vissa saker, om inte till allt), men i så fall blir det otroligt långsamt förr eller senare.

Det normala är att du startar USB/UART-bootloadern och kopplar in din dator. Sen använder du något verktyg ifrån ST för att ladda över en bootloader till RAM på enheten (den här delen kanske går att göra någotsånär rimligt via UART). Sen bootar du den, och därefter använder du u-boot för att antingen direkt ladda in allt data som ska skrivas till flash och göra det, eller så laddar du in en linuxkärna och ett minimalt rootfilsystem som du bootar och kör ifrån RAM. Sen använder du detta för att ta in och skriva ned det slutgiltiga till flash.

Men just det där att få in "allt" som ska skrivas till disk, då vill du ha något snabbare än UART. Jag rekommenderar USB då det förmodligen finns väldokumenterat hur man kan göra detta, och troligen färdiga program för att hjälpa dig.
Men det går säkert via tex. Ethernet också. Eller för den delen att lägga det på en USB-sticka där man flyttar över till eMMC. Men båda dessa två sista alternativen blir mer komplicerat om du inte vet riktigt vad du gör.


Tillägg: Hittade en liten guide ifrån ST för vad du bör göra första gången du kör igång kortet.
https://community.st.com/t5/stm32-mpus/ ... ta-p/49280
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Klas-Kenny skrev: 29 april 2024, 17:39:09 Det kanske går (till vissa saker, om inte till allt), men i så fall blir det otroligt långsamt förr eller senare.

Men just det där att få in "allt" som ska skrivas till disk, då vill du ha något snabbare än UART. Jag rekommenderar USB då det förmodligen finns väldokumenterat hur man kan göra detta, och troligen färdiga program för att hjälpa dig.
Men det går säkert via tex. Ethernet också. Eller för den delen att lägga det på en USB-sticka där man flyttar över till eMMC. Men båda dessa två sista alternativen blir mer komplicerat om du inte vet riktigt vad du gör.
Okej. Jag lägger till USB_OTG medan jag håller på. Skadar direkt inte.
Kan jag använda USB OTG med vanlig USB sticka också? Alltså typ läsa in data? Eller är USB OTG bara till för boot?
Det normala är att du startar USB/UART-bootloadern och kopplar in din dator. Sen använder du något verktyg ifrån ST för att ladda över en bootloader till RAM på enheten (den här delen kanske går att göra någotsånär rimligt via UART). Sen bootar du den, och därefter använder du u-boot för att antingen direkt ladda in allt data som ska skrivas till flash och göra det, eller så laddar du in en linuxkärna och ett minimalt rootfilsystem som du bootar och kör ifrån RAM. Sen använder du detta för att ta in och skriva ned det slutgiltiga till flash.
Du verkar ha byggt en egen dator förut med linux antar jag?
Som jag har uppfattat allt så använder man ST-Link som finns inbyggt på STM32 Nucleo korten.
Kan jag använda vilket linux som helst? Som jag uppfattar det som så är det OpenSTLinux som dom rekommenderar.
Tillägg: Hittade en liten guide ifrån ST för vad du bör göra första gången du kör igång kortet.
https://community.st.com/t5/stm32-mpus/ ... ta-p/49280
Tackar. Jag ska läsa igenom detta efter jag har lagt till USB OTG. Jag känner att mer än så där behöver jag inte.
Användarvisningsbild
AndLi
Inlägg: 17680
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Bygga egen dator från grunden

Inlägg av AndLi »

Otg är till för att usb ska automatiskt kunna växla mellan vara master eller device.

Det är det som gör att du både kan ansluta din telefon till datorn och ett usb minne....
Användarvisningsbild
Klas-Kenny
Inlägg: 11541
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: 29 april 2024, 18:39:15 Kan jag använda USB OTG med vanlig USB sticka också? Alltså typ läsa in data? Eller är USB OTG bara till för boot?
Det ska gå, har dock aldrig provat själv, alltid använt en dedikerad USB för bara programladdning.
Då kopplad till en intern programmeringskontakt innehållande alla signaler som behövs för automatiserad programmering av hela kortet (boot-mode signal, eventuella andra processorer osv också i samma kontakt). Men det behövs klart inte nödvändigtvis på ett hobbyprojekt.
DanielM skrev: 29 april 2024, 18:39:15 Du verkar ha byggt en egen dator förut med linux antar jag?
Ja, har designat två produkter som gått i serieproduktion med Linux, hittills.

DanielM skrev: 29 april 2024, 18:39:15 Kan jag använda vilket linux som helst? Som jag uppfattar det som så är det OpenSTLinux som dom rekommenderar.
Allt blir väldigt mycket enklare om du håller dig till vad som supportas av processortillverkaren.
Men det finns inget som hindrar dig att plocka ihop i princip vad som helst.

OpenSTLinux låter som ett namn påhittat av en marknadsavdelning för att låta lite speciellt.
Verkar som att det inte är något speciellt alls med det, utan ett helt vanligt bygge i Yocto. Såklart med ST's eget meta-lager med inlagt stöd för sina processorer och kanske något hjälp för att komma igång.
Exmpelvis så hämtar de Linux-kärnan rakt ifrån mainline och bara lägger på en handfull egna patchar på den.
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Jag tror jag hittade länken för att få in Linux på eMMC. Känner du igen detta?
https://wiki.st.com/stm32mpu/wiki/STM32 ... er_Package

Nu har jag lagt in USB OTG.
VBUS är några millimeter ifrån differentiella signalbanorna. Den är ca 0.2mm bred. Övriga signalbanor är 0.12mm.
Skärmbild 2024-04-29 224822.png
Skärmbild 2024-04-29 225104.png
Skärmbild 2024-04-29 225338.png
Jag är väldigt noga att läsa i databladet också.
Skärmbild 2024-04-29 225536.png
Skärmbild 2024-04-29 225505.png
Edit:

Jag lade till ett område som skalar bort jordplanet, för att USB ledarna är tydligen mycket känsliga och måste ha lika längd.
Jag gjorde även detta för kristallen för USB PHY.
Skärmbild 2024-04-30 001022.png
Skärmbild 2024-04-30 001320.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Bygga egen dator från grunden

Inlägg av DanielM »

Så där ja!
Då var det dags för att titta på hur jag kan få in Linux på denna dator. Jag känner att jag är klar med dragningen nu. Möjligtvis så är det bara beredning inför montering t.ex. kanske måste byta ut någon komponent om den ej finns i lager, eller om impedansen ej stämmer överens med tillverkarens material.

Men annars så är allt på plats! :wink: :tumupp:
Jag lade till tre stycken M3 (2.7mm) hål för att skruva dit tre skruvar.

Det som skiljer sig från bilderna ovan är att alla differentiella ledarbanor har ett område där jag tar bort GND planet t.ex. för kristallerna. Jag antar att det är smart att göra så. Jag brukar se vissa ta bort GND-planet runt om kristallerna och sedan ha två ledarbanor ut från kondensatorerna från kristallerna, till övriga GND-plan.
Skärmbild 2024-04-30 084522.png
Skärmbild 2024-04-30 085124.png
Skärmbild 2024-04-30 085424.png
Skärmbild 2024-04-30 085642.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
hawkan
Inlägg: 2937
Blev medlem: 14 augusti 2011, 10:27:40

Re: Bygga egen dator från grunden

Inlägg av hawkan »

Den jag hade där var det bara att kopiera in en image med dd till emmc-minnet, som en usb-disk.
Det lilla jag sett är att det nog inte är så med openstlinux.
Skriv svar