søndag 21. mai 2017

Fra breadboard til PCB

Har den siste tiden brukt altfor mye tid på små elektroniske prosjekter, alt fra små Arduino kretser til å lodde sammen en RC2014-maskin. Det jeg til nå ikke hadde gjort noe av var å ta designene videre fra breadboard til et noe mer varig format, og PCB er vel så permanent som det kommer.


Det hele, og da sikter jeg mer eller mindre på rotet øverst til høyre, startet med et behov for å lese/skrive fra/til en EEPROM-brikke (Flash-minne oftest benyttet for å holde programvare eller lagret data innenfor integrerte kretser). Som alt annet for tiden, så var det enda en ting jeg hadde rotet med relatert til RC2014-maskine, i dette tilfellet så var det et behov for å få lest ut innholdet på brikken som fulgte med settet i forkant av å montere brikken på kretskortet.

For å løse dette valgte jeg å bruke en standard Arduino Uno som hjernen i løsningen, men som man kan se så krever det en hel haug kabling - faktisk såpass mange at Uno-en i seg selv ikke har nok pin-er til å gjøre dette. Derfor benytter løsningen to MCP23S17-brikker for å utvide antallet tilgjengelig, hver av disse utvider med 16 pin-er og man kommuniserer med dem over SPI. Ønsket muligheten til å bruke løsningen uten en tilkoblet datamaskin, la derfor til en SD-kort modul - også denne koblet på SPI.

Medregnet de tre brikkene, SD-modulen og selve Arduino-en så er det fortsatt en relativt enkel løsning, men som man ser av skjermbildene så langt så er det ikke akkurat rett frem å skulle reprodusere løsningen med bildene som utgangspunkt - det er rett og slett altfor mange kabler involvert her. Den foretrukne løsningen for å dokumentere disse tingene, i alle fall for de av oss som aldri har deltatt i noen form for opplæring innenfor elektronikk - noe jeg vil anta vises - er bruk av programvaren Fritzing. Programvaren i seg selv er gratis og gjør det relativt enkelt å lage en visuell representasjon av hvordan man har koblet ting sammen - ved arbeid med prosjektene vil man forholde seg til et sett med arbeidsflater; Breadboard, Schematic og PCB.

Breadboard

Dette er den arbeidsflaten man vanligvis forbinder med programvaren Fritzing, man tar utgangspunkt i et breadboard og drar så komponenter ut av verktøykassen oppe til høyre til den plassen man ønsker å ha dem. EEPROM programmereren jeg snekret sammen ble seende ut som følger:


Ser relativt enkelt ut, ikke sant? Vel, dette er så enkelt som det blir, man trenger ingen forhåndskunnskap for å forstå hvordan man reproduserer løsningen på egen arbeidspult - sammenlignet med fotografiene øverst så er det langt enklere å følge ledningene som går mellom komponentene.

Schematic

De som arbeider med elektronikk i en litt mer profesjonell sammenheng forholder seg heller til elektroniske skjema-tegninger, til en viss grad kan Fritzing hjelpe til med å lage disse - den vil automatisk sørge for at elementer lagt inn i de ulike visningene automatisk også er å finne i skjema-visningen. Man må selv sørge for å plassere komponentene i forhold til hverandre og legge kablingen slik at disse ikke overlapper hverandre - en distinkt forskjell mellom disse visningene er at strøm og jord blir enkle symboler som går igjen i skissen.


Starter man med breadboard visningen som utgangspunkt så vil man mer eller mindre starte med et rot slik det vist ovenfor til venstre, herfra må man flytte komponenter utover tegneflaten og så tegne opp koblingen mellom enhetene på nytt igjen - de stiplede linjene viser delene som i følge breadboard oppsettet skal være koblet sammen. Etter litt omkalfatring så ender man opp med noe som fortsatt mer eller mindre ville fått langt mer erfarne teknikere til å kaste opp, men det er i det minste en start (det jeg endte opp med er vist til høyre).

Personlig så synes jeg ikke denne visningen gir spesielt mye utover den første, så jeg pleier vanligvis å hoppe over denne biten - de er mer eller mindre to ulike måter å dokumentere prosjektet ditt på. Grunnen til at jeg i det hele tatt nevner denne visningen er at dersom interessen for å lage elektroniske småting øker og man etter hvert ønsker å gå videre til mer profesjonelt rettede verktøy, så vil med arbeid innenfor denne visningen gjøre overgangen betraktelig enklere.

PCB

Endelig kommet frem til det punktet der man kan bruke penger på å få laget en fysisk utgave av det man har tegnet inn, men man har fortsatt en god del arbeid man må gjøre først; alle komponentene er bare kastet ut på tegneflaten uten noen tanke på at noe skal fungere. Den grå firkanten angir dimensjonene av det fysiske kretskortet du ønsker, denne kan du endre størrelsen på etter ønske - legg derimot merke til at de fleste produksjons-alternativene for PCB går fra rimelig til dyrt dersom noen av sidene overgår 10 cm!

Start med å dra komponentene ut til en omtrentlig plassering - det er ikke alltid mulig, men prøv å sørge for at så få som mulig av de stiplede linjene mellom komponentene krysser hverandre. Klikk på koblingspunktene og dra ut linjene mellom de tilsvarende tilkoblingspunktene for å definere en fysisk kobling.

Vanligvis vil en PCB ha to sider: en forside og en bakside. Vi kan kun tillate linjer å krysse hverandre så lenge som disse er på ulike sider av PCB-en (med mindre de selvsagt er ment å være koblet sammen) - høyreklikk på linjen og velg tilsvarende fra menyen for å flytte linjen mellom de ulike sidene. Dersom linjen må bevege seg mellom sidene, eksempelvis for å lage en bro over annen linje, så gjør vi dette ved å opprette en såkalt via. En via er et hull i PCB-en innlagt med metall for å lede mellom lagene, disse opprettes ved å høyreklikke på et av knekkpunktene på linjen. Fortsett å legge opp alle linjene på denne måten inntil alle de stiplede linjene er borte.


Produksjon

Med PCB-en lagt ut på en konsistent flate, så er man nesten klar til å gå til et selskap for å få produsert den. Før man derimot gjør dette så er det to ting man bør gjøre...

Den første er å la programvaren sjekke at alt er koblet sammen som forventet uten kortslutninger - bruk valget Design Rules Check (DRC) fra nedtrekksmenyen Routing. Reparer eventuelle feil som blir flagget før man går videre, alternativet er tross alt å betale for noe som i utgangspunktet mangler de grunnleggende forutsetningene for å fungere.

Den siste tingen er generere såkalte Gerber filer, dette er filene som produksjonsselskapene trenger for å vite hvordan alt PCB-en skal bygges opp - de har ingen formening om hvordan skissene dine er lagt opp, de trenger bare å vite hvor kobberet skal legges og hvor hullene skal drilles. Innenfor Fritzing genereres disse ved å klikke på knappen Export for PCB på den røde verktøy-linjen nede i skjermbildet - angi en tom katalog for hvor filene skal plasseres, dette for å unngå rot i strukturen.

Før man går videre med innsending av de genererte Gerber-filene bør man ta en titt på filene for å igjen se at ting vises korrekt også her (ingen lag byttet om på eller manglende). Fritzing i seg selv har ingen funksjon på dette, den anbefalte programvaren for å supplere Fritzing på dette området er GerbView (ovenfor til venstre). Flere av bestillingssidene har også en integrert løsning for å vise disse, man får da gjerne også de tilsvarende valgene om å skreddersy utseendet (forhåndsvisningen hos SeeedStudio.com ovenfor til høyre).

Når det gjelder valg produsent så finnes det mange alternativer, fellesnevneren for de fleste av dem er at de er plassert i USA og det koster skjorta å benytte seg av dem - av de mer populære av disse er AISLER (eier Fritzing programvaren og er derfor integrert i den) samt OSH Park.

For de av oss som har lyst til å prøve oss frem uten de helt store kravene til kvalitet, det vil si at vi forventer at de er trykt opp som produsert - vi kan bare ikke forvente at kortene skal kunne fungere etter tre år eksponert mot elementene, så må man bla litt mer rundt.

Den leverandøren jeg har sett på å benytte meg av er den allerede nevnte SeeedStudio, dersom man ikke har så veldig store krav til leveringstid eller lager kort på mer enn 10cm * 10cm så kan man få produsert et kort i 5 eller 10 eksemplarer for 5$. Rimelig billig i seg selv, men man må betale porto for disse og gitt at bedriften er plassert i Singapore så legger det på en signifikant del av kostnaden - da jeg bestilte disse endte jeg opp med med 8$ i porto for billigste alternativ. Inkludert en uke produksjonstid så tok det nesten en måned før jeg mottok det ferdige resultatet.


Hvite PCB-er er kanskje ikke de mest presentable i og med at de raskt blir misfarget av varmen, men for et førsteutkast er de perfekt - det er svært lett å se hvor koblingene går. Kvaliteten på selve kortene, materialene og ikke det jeg har gjort med dem, er overraskende godt - definitivt på nivå med de jeg har sett fra andre leverandører, så kommer ikke til å trenge noen betenkningstid for å bruke dem (SeeedStudio.com) som leverandør på et senere tidspunkt.

Resultatet

Kortet fungerte ikke og i etterkant vises det at jeg la opp en del av komponentene sent på kvelden, pull-up resistorene var blitt til motstand i serie på CS-linjene og knappene henger i løse luften ... Det eneste man kan si er dermed at det hele må kunne regnes som en opplevelse med mye potensiale for læring, det at man er pinlig berørt over å se på dem en måned etterpå betyr kun at man har lært mye underveis.


Selve leseren er i stand til å lese fra og skrive til EEPROM-brikker, data kan også hentes ut fra SD-kortet. Måtte kutte av en av sporene på forsiden og et på baksiden, la også inn en patch på baksiden. "Pull-up"-resistorene ble klippet vekk og loddet på plass en bro mellom koblingene istedenfor, knappene må jeg bare late som om ikke eksisterer.

Revisjon B kan ikke bli annet enn en markant forbedring.

Ingen kommentarer:

Legg inn en kommentar