Cuprins:

Proiectați-vă propriul PCB Raspberry Pi Compute Module: 5 pași (cu imagini)
Proiectați-vă propriul PCB Raspberry Pi Compute Module: 5 pași (cu imagini)

Video: Proiectați-vă propriul PCB Raspberry Pi Compute Module: 5 pași (cu imagini)

Video: Proiectați-vă propriul PCB Raspberry Pi Compute Module: 5 pași (cu imagini)
Video: How to Make a Raspberry Pi Compute Module 4 Carrier Board in KiCad - Part 1 | Digi-Key Electronics 2024, Iulie
Anonim
Proiectați-vă propriul PCB Raspberry Pi Compute Module
Proiectați-vă propriul PCB Raspberry Pi Compute Module
Proiectați-vă propriul PCB Raspberry Pi Compute Module
Proiectați-vă propriul PCB Raspberry Pi Compute Module
Proiectați-vă propriul PCB Raspberry Pi Compute Module
Proiectați-vă propriul PCB Raspberry Pi Compute Module

Dacă nu ați mai auzit de Raspberry Pi Compute Module înainte, este practic un computer Linux complet, cu factorul de formă un stick RAM pentru laptop!

Cu acesta devine posibil să vă proiectați propriile plăci personalizate, unde Raspberry Pi este doar o altă componentă. Acest lucru vă oferă o cantitate enormă de flexibilitate, deoarece vă permite să aveți acces la o cantitate mult mai mare de pini IO, în timp ce alegeți exact ce hardware doriți pe placa dvs. De asemenea, eMMC de la bord elimină necesitatea unui card micro SD extern, ceea ce face modulul de calcul perfect pentru proiectarea produselor bazate pe Raspberry Pi.

Din păcate, în timp ce modulul de calcul vă permite să faceți toate acestea, încă pare să lipsească din punct de vedere al popularității în comparație cu modelele tradiționale Raspberry Pi A și B. Ca urmare, nu există multe proiecte hardware open source bazate pe aceasta. Și pentru oricine ar putea dori să înceapă cu proiectarea propriilor plăci, cantitatea de resurse pe care o are este destul de limitată.

Când am început prima dată cu modulul de calcul Raspberry Pi acum câteva luni, tocmai asta a fost problema cu care m-am confruntat. Deci, am decis să fac ceva în legătură cu asta. Am decis să proiectez un PCB open source bazat pe modulul de calcul, care va avea toate caracteristicile de bază care fac Raspberry Pi grozav. Aceasta include un conector pentru cameră, gazdă USB, ieșire audio, HDMI și, bineînțeles, un antet GPIO compatibil cu plăcile obișnuite Raspberry Pi.

Scopul acestui proiect este de a oferi un design open source pentru o placă bazată pe modulul de calcul, pe care oricine o va putea folosi ca punct de plecare pentru proiectarea propriei plăci personalizate. Placa a fost proiectată pe KiCAD, un pachet software EDA open source și multiplataforma, pentru a permite cât mai multor oameni să profite de ea.

Pur și simplu apucați fișierele de proiectare, adaptați-le la nevoile dvs. și rotiți-vă propria placă personalizată pentru proiectul dvs.

Pasul 1: Piese și instrumente

Piese și instrumente
Piese și instrumente
Piese și instrumente
Piese și instrumente
Piese și instrumente
Piese și instrumente
Piese și instrumente
Piese și instrumente

Pentru a începe cu modulul de calcul Raspberry Pi, veți avea nevoie de următoarele părți:

1 x Raspberry Pi Compute Module 3 - Vă recomandăm să obțineți versiunea obișnuită care include versiunea eMMC de la bord și nu versiunea Lite. Dacă doriți să utilizați versiunea Lite în proiectul dvs., va trebui să faceți câteva modificări în design și aceasta include adăugarea unui conector pentru card micro SD. În cele din urmă, am testat placa doar cu CM3 și nu pot garanta că va funcționa cu prima versiune CM care a fost lansată în 2014.

Actualizare 29/1/2019: Se pare că Fundația tocmai a lansat Compute Module 3+ și nu numai asta, dar acum vine și cu opțiunea pentru un eMMC de 8 GB, 16 GB sau 32 GB! Conform fișei tehnice, se pare că CM3 + este electric identic cu CM3, ceea ce înseamnă că este practic o scădere a înlocuirii pentru CM3.

1 x Placă IO Compute Module - Designul meu a fost destinat să servească drept punct de plecare pentru proiectarea propriei plăci personalizate bazate pe aceasta, să nu fie înlocuitor pentru placa IO Compute Module. Deci, pentru a vă face viața mai ușoară, vă recomandăm să vă puneți mâna pe o placă IO și să o folosiți pentru dezvoltare înainte de a vă muta pe o placă personalizată. Pe lângă faptul că vă oferă acces la fiecare pin al CM-ului plus o varietate de conectori, placa IO este necesară și pentru intermitentul eMMC de la bord. Ceea ce nu puteți face cu tabloul meu, dacă nu faceți mai întâi câteva modificări ale designului.

1 x cablu de cameră Raspberry Pi Zero sau adaptor de cameră Compute Module - La proiectarea mea utilizez un conector de cameră foarte asemănător cu cel folosit de placa de IO Compute Module și Raspberry Pi Zero. Deci, pentru a atașa o cameră, veți avea nevoie fie de un cablu adaptor proiectat pentru Pi Zero, fie de placa adaptorului camerei care vine împreună cu kitul de dezvoltare a modulului de calcul. Din câte știu, achiziționarea plăcii adaptorului separat este destul de costisitoare. Așadar, dacă vă place, ați decis să vă cumpărați CM și IO Board separat pentru a economisi niște bani, vă sfătuiesc să obțineți în schimb cablul adaptor al camerei proiectat pentru Pi Zero.

1 x Raspberry Pi Camera Module - Am testat placa doar cu modulul original de cameră de 5MP și nu cu versiunea mai nouă de 8MP. Dar, din moment ce primul pare să funcționeze foarte bine, nu văd niciun motiv, cel mai târziu nu ar fi, deoarece se presupune că este compatibil cu versiunile anterioare. Oricum ar fi, versiunea 5MP poate fi găsită la mai puțin de 5 € pe eBay în zilele noastre, motiv pentru care aș recomanda să obțineți una.

4 x fire jumper de la feminin la feminin - veți avea nevoie de cel puțin 4 pentru configurarea conectorului camerei de pe placa IO, probabil că veți dori să obțineți mai multe. Nu sunt necesare pentru placa personalizată, dar pot fi utile dacă intenționați să atașați orice hardware extern prin antetul GPIO.

1 x cablu HDMI - Am decis să folosesc un conector HDMI de dimensiuni complete pe placa mea pentru a elimina necesitatea adaptoarelor. Desigur, dacă preferați să utilizați un conector mini sau chiar micro HDMI nu ezitați să adaptați designul la nevoile dvs.

1 x sursă de alimentare micro USB de 5V - Încărcătorul dvs. de telefon ar trebui să funcționeze bine în majoritatea cazurilor, atâta timp cât poate oferi cel puțin 1A. Rețineți că aceasta este doar o valoare generală, de fapt cerințele dvs. de putere vor depinde de hardware-ul pe care decideți să îl includeți pe placa dvs. personalizată.

1 x adaptor Ethernet USB - Dacă intenționați să instalați sau să actualizați aproape orice pachet de pe sistemul dvs., veți avea nevoie de acces la Internet cel puțin temporar. Un adaptor Ethernet 2-în-1 plus hub USB este probabil o combinație bună, deoarece aveți la dispoziție un singur port USB. Personal folosesc Edimax EU-4208 care funcționează din cutie cu Pi și nu necesită alimentare externă, dar nu are un hub USB încorporat. Dacă doriți să cumpărați un adaptor USB Ethernet aici, puteți găsiți o listă cu cele care au fost testate cu Raspberry Pi.

Dacă doriți să adăugați mai multe porturi USB și chiar Etherent direct pe placa personalizată, vă recomand să aruncați o privire la LAN9512 de la Microchip. Este același cip folosit de originalul Raspberry Pi Model B și vă va oferi 2 porturi USB și 1 port Ethernet. Alternativ, dacă aveți nevoie de 4 porturi USB, luați în considerare o privire asupra vărului său LAN9514.

1 x conector DDR2 SODIMM RAM - Acesta este probabil cea mai importantă componentă a întregii plăci și probabil singura care nu poate fi substituită cu ușurință. Pentru a vă salva de probleme, partea pe care ar trebui să o primiți este TE CONNECTIVITY 1473005-4. Este disponibil de la majoritatea furnizorilor majori, inclusiv TME, Mouser și Digikey, deci nu ar trebui să aveți nicio problemă în găsirea acestuia. Cu toate acestea, fiți foarte atenți, verificați din nou și asigurați-vă că partea pe care o comandați este de fapt 1473005-4. Nu faceți aceeași greșeală pe care am făcut-o și obțineți versiunea oglindită, acești conectori nu sunt ieftini.

Pentru restul părților pe care aleg să le includ pe tablă, puteți arunca o privire asupra BOM pentru a obține mai multe informații, am încercat să includ link-uri către fișele tehnice pentru cele mai multe dintre ele.

Echipamente de lipit - Cele mai mici componente de pe placă sunt condensatoarele de decuplare 0402, dar conectorii HDMI, precum și camera și conectorii SODIMM pot fi, de asemenea, puțin provocatori, fără niciun fel de mărire. Dacă aveți o experiență bună cu lipirea SMD, ați crezut că nu ar trebui să fie o problemă importantă. Oricum, dacă aveți acces la un microscop, îl recomand cu drag.

Pasul 2: intermitent EMMC

Primul lucru pe care trebuie să-l faceți înainte de a începe să utilizați modulul de calcul este să clipiți cea mai recentă imagine Raspbian Lite de pe eMMC. Documentația oficială Raspberry Pi este foarte bine scrisă și descrie întregul proces în detaliu atât pentru Linux, cât și pentru Windows. Din acest motiv, voi descrie doar pașii pe care trebuie să îi parcurgeți pe scurt pe Linux, astfel încât să poată servi drept referință rapidă.

În primul rând, trebuie să vă asigurați că ați configurat placa IO pe modul de programare și că modulul de calcul este introdus în conectorul SODIMM. Pentru a seta placa în modul de programare mutați jumperul J4 în poziția EN.

Apoi, va trebui să construiți instrumentul rpiboot pe sistemul dvs., astfel încât să îl puteți utiliza pentru a obține acces la eMMC. Pentru a face acest lucru, aveți nevoie de o copie a depozitului usbboot care poate fi obținută cu ușurință folosind git după cum urmează, git clone --depth = 1 https://github.com/raspberrypi/usbboot && cd usbboot

Acum, pentru a construi rpiboot, trebuie să vă asigurați că atât libusb-1.0-0-dev, cât și pachetele make sunt instalate pe sistemul dvs. Deci, presupunând că sunteți pe o distribuție bazată pe Debian, cum ar fi Ubuntu, sudo apt update && sudo apt instalează libusb-1.0-0-dev make

Dacă nu utilizați o distribuție bazată pe Debian, numele pachetului libusb-1.0.0-dev poate fi diferit, deci asigurați-vă că găsiți cum este apelat în cazul dvs. Odată ce dependențele de construire sunt instalate, puteți construi binarul rpiboot pur și simplu rulând, face

După ce construirea este completă, rulați rpiboot ca root și va începe să aștepte o conexiune, sudo./rpiboot

Acum conectați placa IO la computer conectând un cablu micro USB la portul USB SLAVE și apoi alimentați portul POWER IN. După câteva secunde, rpiboot ar trebui să poată detecta modulul de calcul și să vă permită accesul la eMMC. Acest lucru ar trebui să ducă la apariția unui nou dispozitiv de blocare în / dev. Puteți utiliza programul fdisk pentru a vă ajuta să găsiți numele dispozitivului, sudo fdisk -l

Disk / dev / sdi: 3,7 GiB, 3909091328 octeți, 7634944 sectoare

Unități: sectoare de 1 * 512 = 512 octeți Dimensiunea sectorului (logic / fizic): 512 octeți / 512 octeți Dimensiunea I / O (minim / optim): 512 octeți / 512 octeți Tip de etichetă disc: dos Identificator disc: 0x8e3a9721

Dispozitiv de pornire Start End End Sectoare Dimensiune Tip ID

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

În cazul meu, a fost / dev / sdi, deoarece am deja câteva unități atașate deja pe sistemul meu, dar cu siguranță a ta va varia.

După ce ați fost absolut sigur că ați găsit numele corect al dispozitivului, puteți utiliza dd pentru a arde imaginea Raspbian Lite pe eMMC. Cu toate acestea, înainte de a face acest lucru, asigurați-vă că nu există nicio partiție a eMMC montată deja pe sistemul dvs.

df -h

Dacă găsiți vreun demontați-le după cum urmează, sudo umount / dev / sdXY

Acum, fiți extrem de atenți, utilizarea unui nume de dispozitiv greșit cu dd poate potențial să vă distrugă sistemul și să provoace pierderea datelor. Nu continuați cu pasul următor decât dacă sunteți complet sigur că știți ce faceți. Dacă aveți nevoie de mai multe informații, vă rugăm să aruncați o privire la documentația cu privire la aceasta.

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

Odată ce comenzile dd și sincronizare se termină, ar trebui să puteți deconecta placa IO de pe computer. În cele din urmă, nu uitați să mutați jumperul J4 înapoi în poziția DIS și modulul dvs. de calcul ar trebui să fie gata pentru prima sa pornire.

Pasul 3: Prima pornire

Înainte de a porni pentru prima dată, asigurați-vă că conectați o tastatură USB și un monitor HDMI la placa IO. Dacă totul merge așa cum era de așteptat și Pi-ul dvs. termină de pornire, dacă le atașați vă va permite să interacționați cu acesta.

Când vi se solicită conectarea, utilizați „pi” pentru numele de utilizator și „zmeură” pentru parolă, deoarece acestea sunt acreditările implicite de conectare. Acum puteți rula câteva comenzi pentru a vă asigura că totul funcționează așa cum era de așteptat așa cum ați face în mod normal pe orice Raspberry Pi, dar nu încercați încă să instalați nimic, deoarece încă nu aveți o conexiune la Internet.

Un lucru important pe care trebuie să îl faceți înainte de a opri Pi-ul este activarea SSH, astfel încât să vă puteți conecta la acesta de pe computer după următoarea pornire. Puteți face asta foarte ușor folosind comanda raspi-config, sudo raspi-config

Pentru a activa SSH, accesați Opțiuni de interfață, selectați SSH, alegeți DA, OK și Finalizați. În cazul în care sunteți întrebat dacă doriți să reporniți refuzul. După ce ați terminat, opriți Pi-ul și, odată ce a terminat, scoateți alimentarea.

sudo shutdown -h acum

Apoi, trebuie să stabiliți o conexiune la Internet folosind adaptorul USB Ethernet pe care ar trebui să îl aveți deja. Dacă adaptorul dvs. are, de asemenea, un hub USB, îl puteți folosi pentru a vă conecta tastatura, dacă doriți, altfel vă puteți conecta la Pi prin SSH. Oricum, țineți monitorul HDMI conectat cel puțin pentru moment, pentru a vă asigura că procesul de boot se termină așa cum era de așteptat.

De asemenea, aproape de final ar trebui să vă arate și adresa IP pe care Pi a primit-o de la serverul DHCP. Încercați să utilizați acest lucru pentru a vă conecta la Pi prin SSH.

ssh pi @

După ce v-ați conectat cu succes la Pi prin SSH, nu mai aveți nevoie de monitor și tastatură conectate, așa că nu ezitați să le deconectați dacă doriți. În acest moment, ar trebui să aveți și acces la Internet din Pi-ul dvs., puteți încerca să faceți ping ceva ca google.com pentru a-l verifica. După ce vă asigurați că aveți acces la Internet, este o idee bună să actualizați sistemul rulând, sudo apt update && sudo apt upgrade

Pasul 4: Configurarea camerei

Configurarea camerei
Configurarea camerei

Cea mai mare diferență între o placă Raspberry Pi obișnuită și modulul de calcul este că, în cazul celei mai recente, în afară de activarea camerei prin utilizarea raspi-config, aveți nevoie și de un fișier personalizat pentru arborele dispozitivului.

Puteți găsi mai multe informații despre configurația modulului de calcul pentru utilizare cu o cameră în documentație. Dar, în general, conectorul camerei foto include, de asemenea, 4 pini de control, care trebuie conectați la 4 pini GPIO de pe modulul de calcul și este la latitudinea dvs. să decideți care dintre acestea în timp ce vă proiectați placa personalizată.

În cazul meu, în timp ce proiectez placa am ales CD1_SDA pentru a merge la GPIO28, CD1_SCL la GPIO29, CAM1_IO1 la GPIO30 și CAM1_IO0 la GPIO31. Aleg acești pini GPIO, deoarece am vrut să am un antet GPIO cu 40 pini pe placa mea, care să păstreze compatibilitatea cu conectorul GPIO al plăcilor obișnuite Raspberry Pi. Din acest motiv, a trebuit să mă asigur că pinii GPIO pe care îi folosesc pentru cameră nu apar și în antetul GPIO.

Deci, cu excepția cazului în care decideți să faceți modificări la cablarea conectorului camerei, aveți nevoie de un /boot/dt-blob.bin care să îi spună Pi-ului dvs. să configureze GPIO28-31 așa cum este descris mai sus. Și pentru a genera un dt-blob.bin, care este un fișier binar, aveți nevoie de un dt-blob.dts pentru a compila. Pentru a ușura lucrurile, îți voi oferi propriul meu dt-blob.dts pe care să îl folosești, pe care îl poți adapta apoi la nevoile tale, dacă trebuie.

Pentru a compila fișierul arborelui dispozitivului utilizați compilatorul arborelui dispozitivului după cum urmează, dtc -I dts -O dtb -o dt-blob.bin dt-blob.dts

Nu sunt sigur de ce, dar cele de mai sus ar trebui să conducă la câteva avertismente, dar atâta timp cât dt-blob.bin a fost generat cu succes, totul ar trebui să fie bine. Acum, mutați dt-blob.bin pe care tocmai l-ați generat la / boot executând, sudo mv dt-blob.bin /boot/dt-blob.bin

Cele de mai sus vă vor oferi probabil următorul avertisment, mv: nu s-a păstrat calitatea de proprietar pentru „/boot/dt-blob.bin”: Operațiunea nu este permisă

Aceasta este doar mv plângând că nu poate păstra proprietatea fișierului, deoarece / boot este o partiție FAT care este de așteptat. Este posibil să fi observat că /boot/dt-blob.bin nu există în mod implicit, acest lucru se datorează faptului că Pi utilizează în schimb un arbore încorporat al dispozitivului. Adăugarea propriului interior / boot, însă, suprascrie unitatea încorporată și vă permite să configurați funcția pinului său așa cum doriți. Puteți găsi mai multe despre arborele dispozitivului în documentație.

După ce ați terminat, trebuie să activați camera, sudo raspi-config

Mergeți la Opțiuni de interfață, selectați Cameră foto, alegeți DA, OK și Finalizați. În cazul în care sunteți întrebat dacă doriți să reporniți refuzul. Acum, închideți Pi și scoateți alimentarea.

După ce alimentarea a fost îndepărtată de pe placa IO, folosind 4 fire jumper la mamă conectați pinii pentru GPIO28 la CD1_SDA, GPIO29 la CD1_SCL, GPIO30 la CAM1_IO1 și GPIO31 la CAM1_IO0. În cele din urmă, atașați modulul camerei dvs. la conectorul CAM1 utilizând placa adaptorului camerei sau un cablu de cameră conceput pentru Raspberry Pi Zero și alimentați alimentarea.

Dacă totul a funcționat conform așteptărilor după pornirea Pi, ar trebui să puteți utiliza camera. Pentru a încerca să faceți o fotografie după conectarea la Pi prin rularea SSH, raspistill -o test.jpg

Dacă comanda se termină fără erori și se creează un test-j.webp

sftp pi @

sftp> get test.jpg sftp> exit

Pasul 5: Trecerea de la placa IO la un PCB personalizat

Trecerea de la placa IO la un PCB personalizat
Trecerea de la placa IO la un PCB personalizat
Trecerea de la placa IO la un PCB personalizat
Trecerea de la placa IO la un PCB personalizat
Trecerea de la placa IO la un PCB personalizat
Trecerea de la placa IO la un PCB personalizat

Acum că ați terminat cu toate configurațiile de bază, puteți trece la proiectarea propriei plăci personalizate pe baza modulului de calcul. Deoarece acesta va fi primul dvs. proiect, vă încurajez să luați designul meu și să îl extindeți pentru a include orice hardware suplimentar pe care îl doriți.

Partea din spate a plăcii are mult spațiu pentru adăugarea propriilor componente și pentru proiecte relativ mici, probabil că nici măcar nu trebuie să măriți dimensiunile plăcii. De asemenea, în cazul în care acesta este un proiect independent și nu aveți nevoie de un antet GPIO fizic pe placa dvs., puteți scăpa cu ușurință de acesta și puteți economisi puțin spațiu pe partea superioară a PCB-ului. Antetul GPIO este, de asemenea, singura componentă care este direcționată prin al doilea strat interior și îndepărtarea acestuia îl eliberează complet.

Ar trebui să subliniez că am asamblat și testat cu succes una dintre plăci și am verificat că totul, inclusiv camera și ieșirea HDMI, pare să funcționeze așa cum era de așteptat. Deci, atâta timp cât nu faceți modificări uriașe în modul în care am direcționat tot ceea ce nu ar trebui să aveți probleme.

Totuși, în cazul în care trebuie să efectuați modificări mari ale aspectului, rețineți că majoritatea urmelor care ajung la conectorii HDMI și aparat de fotografiat sunt direcționate ca perechi diferențiale de 100 Ohm. Aceasta înseamnă că trebuie să țineți cont de acest lucru în cazul în care trebuie să le mutați în jurul tabloului. De asemenea, înseamnă că, chiar dacă renunțați la antetul GPIO din design, ceea ce înseamnă că acum straturile interne nu vor conține urme, aveți nevoie în continuare de un PCB cu 4 straturi pentru a obține o impedanță diferențială de aproape 100 Ohm. Dacă nu intenționați să utilizați ieșirea HDMI și camera, totuși, ar trebui să puteți merge cu o placă cu 2 straturi, scăpând de ele și reducând puțin costul plăcilor.

Doar ca referință, plăcile au fost comandate de la ALLPCB cu o grosime totală de 1,6 mm și nu am cerut controlul impedanței, deoarece probabil ar crește destul de mult costul și am vrut să văd dacă va conta. De asemenea, am selectat finisajul auriu imersiune pentru a ușura lipirea manuală a conectorilor, deoarece garantează că toate plăcuțele vor fi frumoase și plate.

Recomandat: