Съдържание:

Проектирайте своя собствена компютърна платка за Raspberry Pi: 5 стъпки (със снимки)
Проектирайте своя собствена компютърна платка за Raspberry Pi: 5 стъпки (със снимки)

Видео: Проектирайте своя собствена компютърна платка за Raspberry Pi: 5 стъпки (със снимки)

Видео: Проектирайте своя собствена компютърна платка за Raspberry Pi: 5 стъпки (със снимки)
Видео: Массимо Банци: Как Arduino пробуждает воображение 2024, Юли
Anonim
Проектирайте своя собствена компютърна платка с изчислителен модул Raspberry Pi
Проектирайте своя собствена компютърна платка с изчислителен модул Raspberry Pi
Проектирайте своя собствена компютърна платка с изчислителен модул Raspberry Pi
Проектирайте своя собствена компютърна платка с изчислителен модул Raspberry Pi
Проектирайте своя собствена компютърна платка с изчислителен модул Raspberry Pi
Проектирайте своя собствена компютърна платка с изчислителен модул Raspberry Pi

Ако никога досега не сте чували за изчислителния модул Raspberry Pi, това е основно пълноправен компютър с Linux с форм -фактор лаптоп RAM памет!

С това става възможно да проектирате свои собствени персонализирани дъски, където Raspberry Pi е просто друг компонент. Това ви дава огромно количество гъвкавост, тъй като ви позволява да имате достъп до много по -голямо количество IO пинове, като в същото време можете да изберете точно какъв хардуер искате на вашата дъска. Вграденият eMMC елиминира и необходимостта от външна micro SD карта, което прави Compute Module перфектен за проектиране на продукти на базата на Raspberry Pi.

За съжаление, докато Compute Module ви позволява да правите всичко това, все още изглежда, че липсва по отношение на популярността в сравнение с традиционните Raspberry Pi модели A и B. В резултат на това няма много хардуерни проекти с отворен код, базирани на то. И за всеки, който би могъл да започне да проектира свои собствени дъски, размерът на ресурсите им е доста ограничен.

Когато за първи път започнах с изчислителния модул Raspberry Pi преди няколко месеца, точно с това се сблъсках. Така че реших да направя нещо по въпроса. Реших да проектирам печатна платка с отворен код, базирана на Compute Module, която ще има всички основни функции, които правят Raspberry Pi страхотен. Това включва конектор за камера, USB хост, аудио изход, HDMI и разбира се GPIO заглавка, съвместима с обикновените платки Raspberry Pi.

Целта на този проект е да осигури дизайн с отворен код за платка, базирана на Compute Module, която всеки ще може да използва като отправна точка за проектиране на своя собствена персонализирана платка. Дъската е проектирана върху KiCAD, софтуерен пакет с отворен код и междуплатформена EDA, за да позволи на възможно най -много хора да се възползват от него.

Просто вземете дизайнерските файлове, адаптирайте ги към вашите нужди и завъртете своя собствена персонализирана дъска за вашия проект.

Стъпка 1: Части и инструменти

Части и инструменти
Части и инструменти
Части и инструменти
Части и инструменти
Части и инструменти
Части и инструменти
Части и инструменти
Части и инструменти

За да започнете с изчислителния модул Raspberry Pi, ще ви трябват следните части:

1 x Raspberry Pi Compute Module 3 - горещо препоръчвам да вземете обикновената версия, която включва вградения eMMC, а не версията Lite. Ако искате да използвате Lite версията във вашия проект, ще трябва да направите няколко промени в дизайна, а това включва добавяне на конектор за микро SD карта. И накрая, тествах платката само с CM3 и не мога да гарантирам, че тя ще работи с първата версия на CM, пусната през 2014 г.

Актуализация 29/1/2019: Изглежда, че Фондацията току -що пусна Compute Module 3+ и не само това, но сега идва и с опция за 8GB, 16GB или 32GB eMMC! Според листа с данни изглежда, че CM3+ е електрически идентичен с CM3, което означава, че по същество това е спад в заместването на CM3.

1 x IO платка за изчислителен модул - Моят дизайн беше предназначен да служи като отправна точка за проектирането на вашата собствена персонализирана платка въз основа на нея, а не да бъде заместител на IO платката за изчислителен модул. Така че, за да улесните живота си, силно препоръчвам да вземете ръцете си за IO платка и да я използвате за развитие, преди да преминете към персонализирана дъска. Освен че ви дава достъп до всеки отделен щифт на CM плюс различни конектори, IO платката е необходима и за мигане на вградената eMMC. Това е нещо, което не можете да направите с моята дъска, освен ако първо не направите някои промени в дизайна.

1 x Кабел за камера на Raspberry Pi Zero или адаптер за камера на изчислителен модул - По моя дизайн използвам много подобен конектор за камера към този, използван от IO платката на Compute Module и Raspberry Pi Zero. Така че, за да прикачите камера, или ще ви е необходим адапторен кабел, предназначен за Pi Zero, или адаптерната платка на камерата, която се доставя заедно с Комплект за разработка на изчислителен модул. Доколкото знам, закупуването на адаптерната платка отделно е доста скъпо. Така че, ако харесвате мен, решихте да закупите вашата CM и IO платка отделно, за да спестите малко пари, съветвам ви вместо това да вземете адаптерния кабел на камерата, предназначен за Pi Zero.

1 x Raspberry Pi Camera Module - Тествал съм платката само с оригиналния 5MP камерен модул, но не и по -новата 8MP версия. Но тъй като първият изглежда работи добре, не виждам причина последният да не работи, тъй като се предполага, че е обратно съвместим. Така или иначе, 5 -мегапикселовата версия може да се намери за по -малко от 5 евро в днешно време на eBay, поради което бих препоръчал да си вземете такава.

4 x проводници от женски към женски - ще ви трябват поне 4 за конфигуриране на конектора на камерата на IO платката, но вероятно ще искате да получите повече. Те не са необходими за персонализираната платка, но могат да бъдат полезни, ако планирате да прикачите външен хардуер чрез заглавието GPIO.

1 x HDMI кабел - Реших да използвам HDMI конектор в пълен размер на дъската си, за да премахна нуждата от адаптери. Разбира се, ако предпочитате да използвате мини или дори микро HDMI конектор, не се колебайте да адаптирате дизайна към вашите нужди.

1 x 5V Micro USB захранване - Вашето зарядно устройство за телефона вероятно би трябвало да се справя добре в повечето случаи, стига да може да осигури поне 1A. Имайте предвид, че това е само обща стойност, вашите действителни изисквания за мощност ще зависят от хардуера, който решите да включите в персонализираната си дъска.

1 x USB Ethernet адаптер - Ако планирате да инсталирате или актуализирате почти всеки пакет във вашата система, ще ви е необходим поне временен достъп до Интернет. 2-в-1 Ethernet адаптер плюс USB хъб вероятно е добра комбинация, тъй като имате на разположение само един USB порт. Лично аз използвам Edimax EU-4208, който работи извън кутията с Pi и не изисква външно захранване, но няма вграден USB хъб. Ако търсите да закупите USB Ethernet адаптер тук, можете намерете списък с тези, които са тествани с Raspberry Pi.

Ако искате да добавите още USB портове и дори Etherent директно на вашата персонализирана платка, бих предложил да разгледате LAN9512 от Microchip. Това е същият чип, използван от оригиналния Raspberry Pi Model B и ще ви даде 2 USB порта и 1 Ethernet порт. Като алтернатива, ако имате нужда от 4 USB порта, помислете дали да разгледате неговия братовчед LAN9514.

1 x DDR2 SODIMM RAM конектор - Това е може би най -важният компонент на цялата платка и вероятно единственият, който не може лесно да бъде заменен. За да ви спаси от неприятностите, частта, която трябва да получите, е TE CONNECTIVITY 1473005-4. Предлага се от повечето големи доставчици, включително TME, Mouser и Digikey, така че не би трябвало да имате проблеми с намирането му. Бъдете много внимателни, проверете отново и се уверете, че поръчаната от вас част всъщност е 1473005-4. Не правете същата грешка, която направих и вземете огледалната версия, тези конектори не са евтини.

За останалите части, които избирам да включа на дъската, можете да разгледате спецификацията, за да получите повече информация. Опитах се да включа връзки към листа с данни за повечето от тях.

Оборудване за запояване - Най -малките компоненти на платката са кондензаторите за отделяне 0402, но HDMI, както и камерата и конекторите SODIMM също могат да бъдат малко предизвикателни без никакво увеличение. Ако имате добър опит с SMD запояване, помислете, че това не трябва да е голям проблем. Така или иначе, ако случайно имате достъп до микроскоп, силно го препоръчвам.

Стъпка 2: Мига EMMC

Първото нещо, което трябва да направите, преди да започнете да използвате вашия изчислителен модул, е да мига най -новото изображение на Raspbian Lite на eMMC. Официалната документация за Raspberry Pi е много добре написана и описва целия процес много подробно както за Linux, така и за Windows. Поради тази причина ще опиша само накратко стъпките, които трябва да предприемете в Linux, за да могат те да служат като бърза справка.

На първо място, трябва да се уверите, че вашата IO платка е настроена в режим на програмиране и изчислителният модул е поставен в конектора SODIMM. За да настроите платката в режим на програмиране, преместете J4 джъмпера в позиция EN.

След това ще трябва да изградите инструмента rpiboot във вашата система, за да можете да го използвате, за да получите достъп до eMMC. За да направите това, имате нужда от копие на хранилището на usbboot, което може лесно да се получи с помощта на git, както следва, git clone --depth = 1 https://github.com/raspberrypi/usbboot && cd usbboot

Сега, за да изградите rpiboot, трябва да се уверите, че както libusb-1.0-0-dev, така и make пакетите са инсталирани във вашата система. Така че, ако приемем, че сте на дистрибуция, базирана на Debian, като например Ubuntu, sudo apt update && sudo apt install libusb-1.0-0-dev make

Ако не използвате дистрибутор, базиран на Debian, името на пакета libusb-1.0.0-dev може да е различно, така че не забравяйте да намерите как се извиква във вашия случай. След като зависимостите за изграждане са инсталирани, можете да изградите двоичния файл rpiboot, просто като стартирате, направете

След завършване на изграждането стартирайте rpiboot като root и той ще започне да чака връзка, sudo./rpiboot

Сега включете IO платката към компютъра, като свържете микро USB кабел към неговия USB SLAVE порт и след това включете захранването към порта POWER IN. След няколко секунди rpiboot трябва да може да открие изчислителния модул и да ви позволи достъп до eMMC. Това би трябвало да доведе до появата на ново блоково устройство под /dev. Можете да използвате програмата fdisk, за да ви помогне да намерите името на устройството, sudo fdisk -l

Диск /dev /sdi: 3.7 GiB, 3909091328 байта, 7634944 сектори

Единици: сектори от 1 * 512 = 512 байта Размер на сектора (логически/физически): 512 байта/512 байта Размер на входа/изхода (минимален/оптимален): 512 байта/512 байта Тип на диска: dos Идентификатор на диска: 0x8e3a9721

Тип идентификационен номер за стартиране на началните крайни сектори на устройството

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

В моя случай беше /dev /sdi, тъй като имам доста устройства, вече прикрепени към моята система, но вашите определено ще варират.

След като сте абсолютно сигурни, че сте намерили правилното име на устройството, можете да използвате dd, за да запишете изображението на Raspbian Lite в eMMC. Преди да направите това обаче, уверете се, че вече няма инсталиран дял на eMMC във вашата система.

df -h

Ако откриете, че ги демонтирате, както следва, sudo umount /dev /sdXY

Сега бъдете изключително внимателни, използването на грешно име на устройството с dd може потенциално да унищожи вашата система и да причини загуба на данни. Не пристъпвайте към следващата стъпка, освен ако не сте напълно сигурни, че знаете какво правите. Ако имате нужда от повече информация, моля, разгледайте документацията по този въпрос.

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

След като командите dd и sync завършат, трябва да можете да изключите IO платката от компютъра си. И накрая, не забравяйте да преместите джъмпера J4 обратно в позиция DIS и вашият изчислителен модул трябва да е готов за първото зареждане.

Стъпка 3: Първо зареждане

Преди да стартирате за първи път, не забравяйте да включите USB клавиатура и HDMI монитор към вашата IO платка. Ако всичко върви според очакванията и вашият Pi завършва зареждането, прикачването им ще ви позволи да взаимодействате с него.

Когато бъдете подканени да влезете, използвайте „pi“за потребителското име и „raspberry“за паролата, тъй като това са идентификационните данни за вход по подразбиране. Вече можете да изпълните някои команди, за да се уверите, че всичко работи както се очаква, както обикновено на всеки Raspberry Pi, но все още не се опитвайте да инсталирате нищо, тъй като все още нямате интернет връзка.

Важно нещо, което трябва да направите, преди да изключите Pi, е да активирате SSH, така че да можете да се свържете с него от компютъра си след следващото зареждане. Можете да направите това много лесно, като използвате командата raspi-config, sudo raspi-config

За да активирате SSH, отидете на Interfacing Options, изберете SSH, изберете YES, OK и Finish. В случай, че бъдете попитани дали искате да рестартирате отказ. След като приключите, изключете Pi и след като приключи, изключете захранването.

sudo shutdown -h сега

След това трябва да установите интернет връзка с помощта на USB Ethernet адаптер, който вече трябва да имате. Ако вашият адаптер разполага и с USB хъб, можете да го използвате, за да включите клавиатурата си, ако желаете, в противен случай можете просто да се свържете с вашия Pi през SSH. Така или иначе, дръжте HDMI монитора включен поне засега, за да сте сигурни, че процесът на зареждане завършва според очакванията.

Също така, в края, той също трябва да ви покаже IP адреса, който вашият Pi е получил от DHCP сървъра. Опитайте да използвате това, за да се свържете с вашия Pi чрез SSH.

ssh pi@

След успешно свързване към вашия Pi през SSH вече не се нуждаете от включване на монитора и клавиатурата, така че не се колебайте да ги изключите, ако желаете. На този етап също трябва да имате достъп до интернет от вашия Pi, можете да опитате да пингнете нещо като google.com, за да го проверите. След като се уверите, че имате достъп до интернет, добра идея е да актуализирате системата, като стартирате, sudo apt update && sudo apt upgrade

Стъпка 4: Конфигуриране на камерата

Конфигуриране на камерата
Конфигуриране на камерата

Най-голямата разлика между обикновената платка Raspberry Pi и изчислителния модул е, че в случай на по-късната, освен просто активиране на камерата с помощта на raspi-config, имате нужда и от персонализиран файл с дървовидно устройство.

Повече информация относно конфигурацията на изчислителния модул за използване с камера можете да намерите в документацията. Но като цяло, конекторът за камера между другите разполага и с 4 контролни пина, които трябва да бъдат свързани към 4 GPIO пина на изчислителния модул и от вас зависи да решите кои от тях, докато проектирате вашата персонализирана платка.

В моя случай, докато проектирам платката, избирам CD1_SDA, за да отида на GPIO28, CD1_SCL на GPIO29, CAM1_IO1 на GPIO30 и CAM1_IO0 на GPIO31. Избирам тези конкретни GPIO щифтове, тъй като исках да имам 40 -пинов GPIO заглавие на дъската си, което също поддържа съвместимост с GPIO конектора на обикновените платки Raspberry Pi. И поради тази причина трябваше да се уверя, че пиновете за GPIO, които използвам за камерата, също не се появяват в заглавката на GPIO.

Така че, освен ако не решите да направите промени в окабеляването на конектора на камерата, имате нужда от /boot/dt-blob.bin, който казва на вашия Pi да конфигурира GPIO28-31, както е описано по-горе. И за да генерирате dt-blob.bin, който е двоичен файл, имате нужда от dt-blob.dts за компилиране. За да улесня нещата, аз ще ви предоставя свой собствен dt-blob.dts за използване, който след това можете да адаптирате към вашите нужди, ако трябва.

За да компилирате файла с дърво на устройството, използвайте компилатора на дървото на устройството, както следва:

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

Не съм сигурен защо, но горното трябва да доведе до доста предупреждения, но докато dt-blob.bin е генериран успешно, всичко трябва да е наред. Сега преместете току-що генерирания dt-blob.bin в /boot чрез изпълнение, sudo mv dt-blob.bin /boot/dt-blob.bin

Горното вероятно ще ви даде следното предупреждение, mv: не успя да запази собствеността за '/boot/dt-blob.bin': Операцията не е разрешена

Това е само mv, което се оплаква, че не може да запази собствеността върху файла, тъй като /boot е FAT дял, който може да се очаква. Може би сте забелязали, че /boot/dt-blob.bin не съществува по подразбиране, това е така, защото вместо това Pi използва вградено дърво на устройството. Добавянето на ваш собствен вътрешен /boot, въпреки че замества вградения и ви позволява да конфигурирате функцията на неговия щифт по ваш вкус. Можете да намерите повече за дървото на устройствата в документацията.

След като направите това, трябва да активирате камерата, sudo raspi-config

Отидете на Опции за свързване, изберете Камера, изберете ДА, OK и Край. В случай, че бъдете попитани дали искате да рестартирате отказ. Сега изключете Pi и изключете захранването.

След като захранването е било премахнато от IO платката, с помощта на 4 проводника от женски към женски джъмпери свържете щифтовете за GPIO28 към CD1_SDA, GPIO29 към CD1_SCL, GPIO30 до CAM1_IO1 и GPIO31 към CAM1_IO0. Накрая, прикрепете модула на камерата към конектора CAM1, като използвате адаптерната платка на камерата или кабела на камерата, проектиран за Raspberry Pi Zero, и включете захранването.

Ако всичко работи както се очаква след Pi обувките, трябва да можете да използвате камерата. За да опитате да направите снимка, след като се свържете с вашия Pi чрез SSH, raspistill -o test.jpg

Ако командата приключи без грешки и се създаде test.jpg, това означава, че е работила. Ако искате да разгледате току -що направената снимка, можете да се свържете с вашия Pi чрез SFTP и да я прехвърлите към компютъра си.

sftp pi@

sftp> get test.jpg sftp> exit

Стъпка 5: Преместване от IO платката към персонализирана печатна платка

Преместване от IO платката към персонализирана печатна платка
Преместване от IO платката към персонализирана печатна платка
Преместване от IO платката към персонализирана печатна платка
Преместване от IO платката към персонализирана печатна платка
Преместване от IO платката към персонализирана печатна платка
Преместване от IO платката към персонализирана печатна платка

Сега, когато сте приключили с цялата основна конфигурация, можете да преминете към проектиране на собствена персонализирана платка въз основа на изчислителния модул. Тъй като това ще бъде първият ви проект, силно ви препоръчвам да вземете моя дизайн и да го разширите, за да включите допълнителен хардуер, който харесвате.

На гърба на дъската има достатъчно място за добавяне на ваши собствени компоненти и за сравнително малки проекти вероятно дори не се налага да увеличавате размерите на дъската. Също така, в случай че това е самостоятелен проект и нямате нужда от физически GPIO заглавие на дъската си, можете лесно да се отървете от него и да спестите малко място в горната страна на печатната платка. Заглавката GPIO е и единственият компонент, който се насочва през втория вътрешен слой и премахването му го освобождава напълно.

Трябва да отбележа, че сам успешно сглобих и изпробвах една от платките и проверих, че всичко, включително камерата и HDMI изхода, изглежда работят според очакванията. Така че, стига да не правите големи промени в начина, по който съм насочил всичко, не би трябвало да имате проблеми.

В случай че трябва да направите някои големи промени в оформлението, имайте предвид, че повечето от следите, които отиват към HDMI и конекторите на камерата, се маршрутизират като 100 Ohm диференциални двойки. Това означава, че трябва да вземете това предвид в случай, че трябва да ги преместите по дъската. Също така, това означава, че дори да изпуснете заглавието GPIO от вашия дизайн, което означава, че сега вътрешните слоеве няма да съдържат никакви следи, все още се нуждаете от 4 -слойна печатна платка, за да постигнете диференциален импеданс близо до 100 ома. Ако все пак няма да използвате HDMI изхода и камерата, би трябвало да можете да използвате двуслойна платка, като се отървете от тях и намалите малко цената на дъските.

Само за справка, дъските бяха поръчани от ALLPCB с обща дебелина 1,6 мм и не поисках контрол на импеданса, тъй като това вероятно ще повиши доста цената и също исках да видя дали ще има значение. Избрах и потапящо златно покритие, за да направя ръчното запояване на конекторите по -лесно, тъй като гарантира, че всички подложки ще бъдат хубави и плоски.

Препоръчано: