Indholdsfortegnelse:

Design din egen Raspberry Pi Compute Module PCB: 5 trin (med billeder)
Design din egen Raspberry Pi Compute Module PCB: 5 trin (med billeder)

Video: Design din egen Raspberry Pi Compute Module PCB: 5 trin (med billeder)

Video: Design din egen Raspberry Pi Compute Module PCB: 5 trin (med billeder)
Video: Discover this Game-Changing Mini Sensor-Display for Home Assistant 2024, Juli
Anonim
Design dit eget PCB til Raspberry Pi -computermodul
Design dit eget PCB til Raspberry Pi -computermodul
Design dit eget PCB til Raspberry Pi -computermodul
Design dit eget PCB til Raspberry Pi -computermodul
Design dit eget PCB til Raspberry Pi -computermodul
Design dit eget PCB til Raspberry Pi -computermodul

Hvis du aldrig har hørt om Raspberry Pi Compute Module før, er det dybest set en fuldgyldig Linux -computer med formfaktoren en bærbar RAM -stick!

Med det bliver det muligt at designe dine egne brugerdefinerede boards, hvor Raspberry Pi bare er en anden komponent. Det giver dig en enorm fleksibilitet, da det giver dig mulighed for at få adgang til en meget større mængde IO -pins, mens du samtidig får mulighed for at vælge præcis, hvilken hardware du vil have på dit bord. Den indbyggede eMMC eliminerer også behovet for et eksternt micro SD-kort, hvilket gør Compute Module perfekt til design af Raspberry Pi-baserede produkter.

Desværre, mens Compute Module giver dig mulighed for at gøre alt dette, ser det stadig ud til at mangle popularitetsmæssigt i forhold til den traditionelle Raspberry Pi Model A og B. Som følge heraf er der ikke mange open source hardware -projekter derude baseret på det. Og for alle, der måske vil i gang med at designe deres egne bestyrelser, er mængden af ressourcer, de har, ret begrænset.

Da jeg først kom i gang med Raspberry Pi Compute Module for et par måneder siden, var det netop det problem, jeg stod over for. Så besluttede jeg mig for at gøre noget ved det. Jeg besluttede at designe en open source PCB baseret på Compute Module, der vil have alle de grundlæggende funktioner, der gør Raspberry Pi fantastisk. Det inkluderer et kamerastik, USB -vært, lydudgang, HDMI og selvfølgelig et GPIO -header, der er kompatibelt med de almindelige Raspberry Pi -kort.

Målet med dette projekt er at tilvejebringe et open source -design til et computermodulbaseret board, som alle vil kunne bruge som udgangspunkt for at designe deres eget brugerdefinerede board. Boardet blev designet på KiCAD, en open source og cross platform EDA softwarepakke, for at give så mange mennesker som muligt mulighed for at drage fordel af det.

Bare tag fat i designfilerne, tilpas dem til dine behov og drej dit eget brugerdefinerede bord til dit projekt.

Trin 1: Dele og værktøjer

Dele og værktøjer
Dele og værktøjer
Dele og værktøjer
Dele og værktøjer
Dele og værktøjer
Dele og værktøjer
Dele og værktøjer
Dele og værktøjer

For at komme i gang med Raspberry Pi Compute Module skal du bruge følgende dele:

1 x Raspberry Pi Compute Module 3 - Jeg anbefaler stærkt at få den almindelige version, der indeholder den indbyggede eMMC og ikke Lite -versionen. Hvis du vil bruge Lite -versionen i dit projekt, skal du foretage et par ændringer i designet, og det inkluderer tilføjelse af et micro SD -kortstik. Endelig har jeg kun testet kortet med CM3, og jeg kan ikke garantere, at det vil fungere med den første CM -version, der blev udgivet tilbage i 2014.

Opdatering 29/1/2019: Det ser ud til, at Foundation netop har frigivet Compute Module 3+ og ikke kun det, men nu kommer det også med mulighed for en 8 GB, 16 GB eller 32 GB eMMC! Ifølge databladet ser det ud til, at CM3+ er elektrisk identisk med CM3, hvilket betyder, at det stort set er et fald i udskiftningen af CM3.

1 x Compute Module IO Board - Mit design var beregnet til at tjene som udgangspunkt for at designe dit eget brugerdefinerede board baseret på det, ikke at være en erstatning for Compute Module IO boardet. Så for at gøre dit liv lettere anbefaler jeg stærkt at få dine hænder til et IO -kort og bruge det til udvikling, før du flytter til et brugerdefineret bord. Udover at give dig adgang til hver enkelt pin i CM plus en række forskellige stik, er IO-kortet også nødvendigt for at blinke det indbyggede eMMC. Hvilket er noget, du ikke kan gøre med mit bord, medmindre du først foretager nogle ændringer af designet.

1 x Raspberry Pi Zero Camera Cable eller Compute Module Camera Adapter - På mit design bruger jeg et meget lignende kamerastik til det, der bruges af Compute Module IO Board og Raspberry Pi Zero. Så for at vedhæfte et kamera skal du enten bruge et adapterkabel designet til Pi Zero eller kameraadapterkortet, der følger med Compute Module Development Kit. Så vidt jeg ved, er det ret dyrt at købe adapterkortet separat. Så hvis du som mig besluttede at købe din CM og IO Board separat for at spare nogle penge, råder jeg dig til at få kameraadapterkablet designet til Pi Zero i stedet.

1 x Raspberry Pi kameramodul - Jeg har kun testet kortet med det originale 5MP kameramodul og ikke den nyere 8MP version. Men da førstnævnte ser ud til at fungere fint, ser jeg ingen grund til, at det senere ikke ville, da det formodes at være bagudkompatibelt. Uanset hvad, kan 5MP -versionen findes for mindre end 5 € på eBay i dag, hvorfor jeg vil anbefale at få en.

4 x Kvinder til Kvinder Jumper Wires - Du skal bruge mindst 4 for at konfigurere kamerastikket på IO -kortet, men du vil sandsynligvis få mere. De er ikke nødvendige for det brugerdefinerede bord, men kan være nyttige, hvis du planlægger at vedhæfte ekstern hardware via GPIO -headeren.

1 x HDMI -kabel - Jeg besluttede at bruge et HDMI -stik i fuld størrelse på mit kort for at eliminere behovet for adaptere. Hvis du foretrækker at bruge et mini- eller endda et mikro -HDMI -stik, er du naturligvis velkommen til at tilpasse designet til dine behov.

1 x 5V mikro -USB -strømforsyning - Din telefonoplader burde nok klare sig fint i de fleste tilfælde, så længe den kan levere mindst 1A. Husk, at dette kun er en generel værdi, dine faktisk strømbehov kommer til at afhænge af den hardware, du beslutter dig for at inkludere på dit brugerdefinerede bord.

1 x USB Ethernet -adapter - Hvis du planlægger at installere eller opdatere stort set enhver pakke på dit system, skal du have mindst midlertidig internetadgang. En 2-i-1 Ethernet-adapter plus USB-hub er sandsynligvis en god kombination, da du kun har en USB-port til rådighed. Personligt bruger jeg Edimax EU-4208, der fungerer ud af kassen med Pi og ikke kræver ekstern strøm, men den har ikke en USB-hub indbygget. Hvis du overvejer at købe en USB Ethernet-adapter her, kan du find en liste med dem, der er blevet testet med Raspberry Pi.

Hvis du vil tilføje flere USB -porte og endda Etherent direkte på dit brugerdefinerede bord, vil jeg foreslå at tage et kig på LAN9512 fra Microchip. Det er den samme chip, der bruges af den originale Raspberry Pi Model B og vil give dig 2 USB -porte og 1 Ethernet -port. Alternativt, hvis du har brug for 4 USB -porte, kan du overveje at kigge på sin fætter LAN9514.

1 x DDR2 SODIMM RAM -stik - Dette er sandsynligvis den vigtigste komponent i hele kortet og sandsynligvis den eneste, der ikke let kan udskiftes. For at redde dig fra problemer er den del, du bør få, TE CONNECTIVITY 1473005-4. Den fås hos de fleste større leverandører, herunder TME, Mouser og Digikey, så du burde ikke have problemer med at finde den. Vær dog meget forsigtig, dobbelttjek og kontroller, at den del, du bestiller, faktisk er 1473005-4. Tag ikke den samme fejl, som jeg gjorde, og få den spejlede version, disse stik er ikke billige.

For resten af de dele, som jeg vælger at inkludere på tavlen, kan du kigge på styklisten for at få flere oplysninger. Jeg forsøgte at inkludere links til databladene for de fleste af dem.

Loddeudstyr - De mindste komponenter på brættet er afkoblingskondensatorerne 0402, men HDMI samt kameraet og SODIMM -stik kan også være lidt udfordrende uden nogen form for forstørrelse. Hvis du har god erfaring med SMD -lodning, mente det ikke skulle være et stort problem. Uanset hvad, hvis du tilfældigvis har adgang til et mikroskop, kan jeg varmt anbefale det.

Trin 2: Blinker EMMC

Det første, du skal gøre, før du begynder at bruge dit computermodul, blinker det nyeste Raspbian Lite -billede på eMMC. Den officielle Raspberry Pi -dokumentation er meget velskrevet og beskriver hele processen i detaljer til både Linux og Windows. Af den grund vil jeg kun beskrive de trin, du skal tage meget kort på Linux, så de kan tjene som en hurtig reference.

Først og fremmest skal du sørge for, at dit IO -kort er indstillet til programmeringstilstand, og computermodulet er indsat i SODIMM -stikket. For at indstille kortet til programmeringstilstand skal J4 -jumperen flyttes til positionen EN.

Dernæst skal du bygge rpiboot -værktøjet på dit system, så du kan bruge det til at få adgang til eMMC. For at gøre dette har du brug for en kopi af usbboot -depotet, som let kan opnås ved hjælp af git som følger, git klon --depth = 1 https://github.com/raspberrypi/usbboot && cd usbboot

For at bygge rpiboot skal du nu sørge for, at både libusb-1.0-0-dev og make-pakker er installeret på dit system. Så forudsat at du er på en Debian -baseret distro som f.eks. Ubuntu -kørsel, sudo apt update && sudo apt install libusb-1.0-0-dev make

Hvis du ikke bruger en Debian-baseret distro, kan navnet på pakken libusb-1.0.0-dev være anderledes, så sørg for at finde ud af, hvordan det kaldes i dit tilfælde. Når build -afhængighederne er installeret, kan du oprette rpiboot -binæret ved blot at køre, lave

Når den indbyggede er fuldført, kør rpiboot som root, og den begynder at vente på en forbindelse, sudo./rpiboot

Tilslut nu IO -kortet til din computer ved at slutte et mikro -USB -kabel til dets USB SLAVE -port, og tilfør derefter strøm til POWER IN -porten. Efter et par sekunder skulle rpiboot være i stand til at registrere computermodulet og give dig adgang til eMMC. Det skulle resultere i, at en ny blok -enhed vises under /dev. Du kan bruge fdisk -programmet til at hjælpe dig med at finde navnet på enheden, sudo fdisk -l

Disk /dev /sdi: 3,7 GiB, 3909091328 bytes, 7634944 sektorer

Enheder: sektorer på 1 * 512 = 512 bytes Sektorstørrelse (logisk/fysisk): 512 bytes/512 bytes I/O -størrelse (minimum/optimal): 512 bytes/512 bytes Diskmærketype: dos Diskidentifikator: 0x8e3a9721

Enhedsstart Start Slutsektorer Størrelse Id Type

/dev/sdi1 8192 137215 129024 63M c W95 FAT32 (LBA)/dev/sdi2 137216 7634943 7497728 3.6G 83 Linux

I mit tilfælde var det /dev /sdi, da jeg allerede har en hel del drev tilknyttet mit system, men dit vil helt sikkert variere.

Når du har været helt sikker på, at du har fundet det korrekte enhedsnavn, kan du bruge dd til at brænde Raspbian Lite -billedet til eMMC. Inden du gør det, skal du dog sørge for, at der ikke allerede er nogen partition af eMMC på dit system.

df -h

Hvis du finder nogen afmonter dem som følger, sudo umount /dev /sdXY

Vær nu yderst forsigtig, hvis du bruger det forkerte enhedsnavn med dd, kan det ødelægge dit system og forårsage datatab. Fortsæt ikke med det næste trin, medmindre du er helt sikker på, at du ved, hvad du laver. Hvis du har brug for flere oplysninger, kan du se dokumentationen vedrørende dette.

sudo dd if = -raspbian-stretch-lite.img of =/dev/sdX bs = 4M && sync

Når kommandoerne dd og synkronisering er færdige, skal du kunne tage IO -kortet ud af din computer. Glem endelig ikke at flytte J4 -jumperen tilbage til DIS -positionen, og dit computermodul skal være klar til sin første opstart.

Trin 3: Første opstart

Før du starter for første gang, skal du sørge for at tilslutte et USB -tastatur og en HDMI -skærm til dit IO -kort. Hvis alt går som forventet, og din Pi er færdig med at starte, kan du interagere med det ved at have dem vedhæftet.

Når du bliver bedt om at logge ind, skal du bruge "pi" til brugernavnet og "hindbær" til adgangskoden, da disse er standard loginoplysninger. Du kan nu køre nogle kommandoer for at sikre, at alt fungerer som forventet, som du normalt ville gøre på enhver Raspberry Pi, men prøv ikke at installere noget endnu, da du stadig ikke har en internetforbindelse.

En vigtig ting, du skal gøre, før du lukker din Pi ned, er at aktivere SSH, så du kan oprette forbindelse til den fra din computer efter den næste opstart. Du kan meget let gøre det ved hjælp af kommandoen raspi-config, sudo raspi-config

For at aktivere SSH skal du gå til Interfacing Options, vælge SSH, vælge YES, OK og Finish. Hvis du bliver spurgt, om du vil genstarte afvisningen. Når du er færdig med at lukke din Pi, og når den er færdig, skal du fjerne strømmen.

sudo shutdown -h nu

Dernæst skal du oprette en internetforbindelse ved hjælp af USB Ethernet -adapteren, som du allerede skal have. Hvis din adapter også har en USB -hub, kan du bruge den til at tilslutte dit tastatur, hvis du vil, ellers kan du bare oprette forbindelse til din Pi over SSH. Uanset hvad, skal du holde HDMI -skærmen tilsluttet i det mindste for nu for at sikre, at opstartsprocessen slutter som forventet.

I slutningen skulle det også vise dig den IP -adresse, som din Pi fik fra DHCP -serveren. Prøv at bruge dette til at oprette forbindelse til din Pi via SSH.

ssh pi@

Efter en vellykket forbindelse til din Pi over SSH har du ikke længere brug for skærmen og tastaturet tilsluttet, så tag dem gerne ud af stikkontakten, hvis du vil. På dette tidspunkt skal du også have adgang til internettet fra din Pi, du kan prøve at pinge noget som google.com for at verificere det. Når du har sørget for, at du har adgang til Internettet, er det en god idé at opdatere systemet ved at køre, sudo apt opdatering && sudo apt opgradering

Trin 4: Konfiguration af kameraet

Konfiguration af kameraet
Konfiguration af kameraet

Den største forskel mellem et almindeligt Raspberry Pi-kort og computermodulet er, at i tilfælde af senere bortset fra bare at aktivere kameraet ved hjælp af raspi-config, har du også brug for en brugerdefineret enhedstræfil.

Du kan finde flere oplysninger om konfigurationen af computermodulet til brug med et kamera i dokumentationen. Men generelt har kamerastikket blandt de andre også 4 kontrolnåle, som skal tilsluttes 4 GPIO -ben på computermodulet, og det er op til dig at beslutte hvilke, mens du designer dit brugerdefinerede kort.

I mit tilfælde vælger jeg under design af tavlen CD1_SDA for at gå til GPIO28, CD1_SCL til GPIO29, CAM1_IO1 til GPIO30 og CAM1_IO0 til GPIO31. Jeg vælger disse særlige GPIO -ben, da jeg ville have et 40 -pins GPIO -header på mit bord, der også opretholder kompatibilitet med GPIO -stikket på de almindelige Raspberry Pi -kort. Og derfor måtte jeg sørge for, at de GPIO -ben, jeg bruger til kameraet, ikke også vises i GPIO -header.

Så medmindre du beslutter dig for at foretage ændringer i ledningerne til kamerastikket, skal du bruge en /boot/dt-blob.bin, der fortæller din Pi at konfigurere GPIO28-31 som beskrevet ovenfor. Og for at generere en dt-blob.bin, som er en binær fil, skal du have en dt-blob.dts til at kompilere. For at gøre tingene lette vil jeg give mine egne dt-blob.dts, som du kan bruge, som du derefter kan tilpasse til dine behov, hvis du skal.

For at kompilere enhedens træfil skal du bruge enhedens trækompiler som følger:

dtc -I dts -O dtb -o dt -blob.bin dt -blob.dts

Jeg er ikke sikker på hvorfor, men ovenstående skulle resultere i en del advarsler, men så længe dt-blob.bin er blevet genereret med succes, skal alt være i orden. Flyt nu dt-blob.bin, du lige har genereret til /boot ved at udføre, sudo mv dt-blob.bin /boot/dt-blob.bin

Ovenstående giver dig sandsynligvis følgende advarsel, mv: kunne ikke bevare ejerskabet for '/boot/dt-blob.bin': Betjening ikke tilladt

Dette er bare mv, der klager over, at det ikke kan bevare filejerskabet, da /boot er en FAT -partition, som kan forventes. Du har muligvis bemærket, at /boot/dt-blob.bin ikke findes som standard, det skyldes, at Pi i stedet bruger et indbygget enhedstræ. Tilføjelse af din egen inderside /støvle tilsidesætter dog den indbyggede i en og giver dig mulighed for at konfigurere funktionen af dens pin, som du vil. Du kan finde mere om enhedstræet i dokumentationen.

Når det er gjort, skal du aktivere kameraet, sudo raspi-config

Gå til grænsefladeindstillinger, vælg Kamera, vælg YES, OK og Afslut. Hvis du bliver spurgt, om du vil genstarte afvisningen. Luk nu din Pi og fjern strømmen.

Efter at strømmen er blevet fjernet fra IO -kortet, forbinder stifterne til GPIO28 med CD1_SDA, GPIO29 til CD1_SCL, GPIO30 til CAM1_IO1 og GPIO31 til CAM1_IO0 ved hjælp af 4 hun -til -hun -jumperkabler. Til sidst skal du slutte dit kameramodul til CAM1 -stikket ved hjælp af kameraadapterkortet eller et kamerakabel, der er designet til Raspberry Pi Zero, og tilslut strøm.

Hvis alt fungerede som forventet efter Pi -støvlerne, skulle du kunne bruge kameraet. For at prøve at tage et billede efter tilslutning til din Pi via SSH -kørsel, raspistill -o test.jpg

Hvis kommandoen slutter uden fejl, og en test-j.webp

sftp pi@

sftp> get test.jpg sftp> exit

Trin 5: Flytning fra IO -kortet til et brugerdefineret printkort

Flytning fra IO -kortet til et brugerdefineret printkort
Flytning fra IO -kortet til et brugerdefineret printkort
Flytning fra IO -kortet til et brugerdefineret printkort
Flytning fra IO -kortet til et brugerdefineret printkort
Flytning fra IO -kortet til et brugerdefineret printkort
Flytning fra IO -kortet til et brugerdefineret printkort

Nu hvor du er færdig med al den grundlæggende konfiguration, kan du gå til at designe dit eget brugerdefinerede kort baseret på Compute Module. Da dette bliver dit første projekt, opfordrer jeg dig stærkt til at tage fat i mit design og udvide det til at omfatte yderligere hardware, du kan lide.

Bagsiden af tavlen har masser af plads til at tilføje dine egne komponenter og til relativt små projekter behøver du sandsynligvis ikke engang at øge tavlens dimensioner. Hvis dette er et selvstændigt projekt, og du ikke har brug for et fysisk GPIO -header på dit bord, kan du nemt slippe af med det og spare plads på oversiden af printkortet. GPIO -headeren er også den eneste komponent, der føres gennem det andet indre lag og fjerner det, frigør det helt.

Jeg skal påpege, at jeg selv har samlet og testet et af kortene selv, og jeg har verificeret, at alt inklusive kameraet og HDMI -udgangen ser ud til at fungere som forventet. Så bare du ikke foretager store ændringer i den måde, jeg har routet alt, bør du ikke have nogen problemer.

Hvis du skal foretage nogle store layoutændringer, skal du dog huske på, at de fleste spor, der går til HDMI- og kamerastikket, dirigeres som 100 Ohm differentialpar. Det betyder, at du skal tage dette i betragtning, hvis du skal flytte dem rundt på tavlen. Det betyder også, at selvom du dropper GPIO -headeren fra dit design, hvilket betyder, at de interne lag nu ikke indeholder spor, har du stadig brug for et 4 -lagers printkort for at opnå en differentialimpedans tæt på 100 Ohm. Hvis du ikke kommer til at gøre brug af HDMI -udgangen og kameraet, skulle du dog kunne gå med et 2 -lags bord ved at slippe af med dem og reducere omkostningerne ved brædderne lidt.

Bare for reference blev pladerne bestilt fra ALLPCB med en total tykkelse på 1,6 mm, og jeg bad ikke om impedansstyring, da det sandsynligvis ville øge omkostningerne en del, og jeg ville også se, om det ville have betydning. Jeg valgte også nedsænkning af guld for at gøre håndlodning af konnektorerne lettere, da det garanterer, at alle puder bliver pæne og flade.

Anbefalede: