LAKI PINGVINI Od ideje do FR-4 fiberglasa
Uprošlom broju prošli smo kroz neke primere dostupnog softvera za dizajniranje štampanih ploča. Ideja je da napravimo PCB (printed circuit board) na kojoj će mikrokontroler raditi neku prostu operaciju. Princip je potpuno isti, kako za najobičniju LED, tako i za kompleksne sisteme. U nekom softveru pravimo električnu šemu, na osnovu nje dizajniramo štampanu ploču i poručujemo je od proizvođača. S obzirom na to da će naš primer biti zasnovan na ATmega328P SMD TQFN mikrokontroleru, biće reči i o bootloaderu i flešovanju softvera. Kroz ovu seriju ćemo provući sve što je bitno, od ideje do realizacije. I da dodamo da je redosled realizacije u suštini isti, bez obzira na to da li je 328p ili ESP8266/32, odnosno da li je AVR uopšte. Softver Za izradu smo se odlučili da koristimo EasyEDA u online varijanti. Softver je lak za učenje, ima veliku zajednicu i sve što nam je potrebno za izradu PCB-a, pa čak i 3D artwork. Na kraju, tu je direktan link ka prebacivanju GERBER fajla ka JLCPCB proizvođaču, koji je (kada se saberu cena, poštarina, ali i kvalitet) verovatno i najpovoljniji. Pet ploča (maksimalnih dimenzija deset puta deset centimetara) uz poštarinu, u vremenu pre COVID-19 pandemije, koštale su do devet dolara. Sada je to oko 18 dolara, uz do deset dana do zvona poštara na vratima. Takođe, na raspolaganju je izrada stensila, ali i kompletiranje ploče ako su se koristile komponente sa LCSC ili JLCPCB Assembled štoka. Na www.easyeda.com/editor pravimo nalog koji će nam pomoći da se svi naši projekti čuvaju u oblacima. Počinjemo sa File -> New -> Project, gde dajemo naziv našem projektu. Naš projekat će se zvati „sk labs mcu”. Desni klik na projekat, pa na New Schematic. U editoru će se pojaviti sheet sa frejmom. Neke od pomenutih alatki iz prošlog broja zahtevale su da se frejm naknadno doda. Interfejs delimo na četiri dela. Gornja traka sa opcijama, gde će se opcije menjati u zavisnosti od toga da li smo u editoru šema, editoru PCB-a, 2D ili 3D. Leva traka je rezervisana za Project, gde je skup svih naših projekata. Imperativ je davati smislene nazive projektima. Dok imate pet projekata to i nije važno, ali kada pređete cifru od 30 i više, nećete se moći snaći. Ipak, iznad je pretraga koja olakšava posao. Design Manager koristimo prilikom pretrage za greškama, ali i tu možemo videti i broj komponenata i netova. Tu se, takođe, prikazuju i nepovezani netovi. EELib je osnovna biblioteka komponenata i flagova uz paralelne oznake za US i EU. Bilo bi lepo kada bismo nekako mogli da jednu od kolona isključimo. Library nudi ozbiljnu zbirku komponenata, gde uvek prvo tražimo da li isti ima u „firmiranom” delu, LCSC ili JLCPCB Assembled. U User Contributed se može desiti da se, ako ne obratite pažnju, 2D model u PCB editoru ne podudara sa šematskim. Autor ovih redova je izgubio silno vreme debagujući jednu ploču, a problem je bio u pogrešnim linijama tranzistora. Dakle, ovu poslednju grupu komponenata koristite ako baš morate, ali obratite posebnu pažnju. Parts vodi na lcsc.com a JLCPCB na jlcpcb.com. Desna strana sadrži atribute kanvasa, a tu možemo pratiti ose, ali i menjati određene parametre u zavisnosti od toga koji je editor aktivan. Centralni deo je sam editor koji, u zavisnosti od toga da li je editor šema ili PCB-a, dolazi uz po još dva mini-prozora. Editor šema U našem primeru ćemo napraviti PCB sa ATmega328P mikrokontrolerom, koji će uključivati LED na pinu 13 (a koji bi drugi bio). Od komponenata biće one koje su neophodne za sam MCU, a ostavićemo i prostor za programiranje bootloadera, ali i prebacivanje skeča na nju. Za napajanje ćemo ostaviti mikro-USB priključak koji se neće moći koristiti u druge svrhe. Naravno, možemo ići na veći projekat sa nekim UART čipom, kao i na neki smisleniji projekat, ali to izlazi iz okvira ovog projekta SK Labsa. Krećemo od mikrokontrolera. Unosom „328p” u pretragu biblioteke, dobijamo pregršt pogodaka gde je treći ujedno i onaj koji je nama potreban: ATMEGA328P-AU u TQFN pakovanju. Našu ploču ćemo napajati sa pet volti, stoga iz EELib uzimamo GND flag i vezujemo izvode 3, 5 i 21. Sa +5V flagom vezujemo izvode 4, 6 i 18. Prema tehničkoj dokumentaciji, za takt od šesnaest megaherca potreban je eksterni oscilator (ide na XTAL1 i XTAL2) i dva kondenzatora od po 22pF, preko kojih oscilator vezujemo sa GND. Komponente, inače, dodajemo u drag’n’drop maniru. Uvek je zgodno ostaviti i ’Reset’ taster, a njega postavljamo između izvoda 29 (reset) i GND, uz pull-up otpornik od 10K. Ovo je bukvalni barebone setup 328p mikrokontrolera. Sve ostalo svodi se na komponente koje omogućavaju prebacivanje skeča na njega i komponente preko kojih on izvršava korisnički program. Da bismo napajali ovu našu ploču, odlučili smo se za mikro-USB, jer se ploča može napajati običnim punjačem telefona, preko računara, ali i eksternom baterijom. Sa GND spajamo GND, ali i sve SH netove, što su, zapravo, padovi preko kojih se sam konektor lemi na PCB. Između VCC i +5V linije stavljamo jednu zaštitnu diodu „just in case”. Ostaju nam D-, D+ i ID. Ako ćemo koristiti neki od UART čipova za prebacivanje skeča direktno sa računara, tada ćemo koristiti i D- i D+. Isti princip važi i na, recimo, Arduino Unu. Mi inače gledamo da koristimo što je manje moguće komponenata, a pogotovo ne one koje ne moramo. Za programiranje naše ploče (ali i svih koje autor ovih redova pravi) koristimo UART adapter zasnovan na FTDI čipu. Iz tog razloga ćemo ispratiti pinout ovog adaptera i napravićemo prostu plug’n’play ploču. To je i razlog da na D-, D+ i ID stavljamo No Connect Flag. Ovo je vrlo bitno zbog kasnije DRC verifikacije. Iz biblioteke uzimamo i 6-pinski ženski header, a pinove vezujemo Net Pointima shodno pinoutu adaptera. Redom idu DTR, RX, TX, +5V, pin 5 ostaje nepovezan, dok na pin 6 ide GND. Znamo da RX/TX linije treba da budu ukrštene, tako da na izvod Atmege 31 (inače TXD0) vezujemo RX Net Point, dok na 30 (RXD0) vezujemo TX Net Point. Sekvenca prebacivanja skeča zahteva da DTR preko 100nF kondenzatora bude povezan na reset izvod. Da bismo uopšte prebacili ikakav skeč na mikrokontroler, potrebno je da mu programiramo bootloader. Za to nam je potreban izveden ICSP header. U zavisnosti od toga kako ćemo prebaciti bootlaoder, zavisi i da li ćemo koristiti 1x6 ili 2x3 header. Mi ćemo naš bootlaoder programirati uz pomoć Arduino Nano (može i Uno) i dupont žica, tako da je header nebitan. Ipak, upotrebili smo muški 2x3 gde MISO ide na izvod 16, MOSI na 15, SCK na 17, dok reset ide na reset liniju uz naponske linije, a sve u skladu sa SPI interfejsom. Ostaje na kraju još i naša built-in LED koju preko 510R otpornika vezujemo između izvoda 13 i GND. Ne zaboravite da i na nekorišćene izvode mikrokontrolera postavite No Connect Flag. Ako je sve spremno, povezano sa Wire(W) možemo snimiti dizajn šeme. Prilikom rada u ovom editoru, na raspolaganju su nam dva panela, Wiring tools i Drawing tools. Mi smo za ovaj primer često koristili Wire (W), Net Point i No Connect Flag. Ali, valja znati da ova dva panela imaju još mnogo korisnih alatki. Njihova pozicija nije fiksna u odnosu na editor i mogu se pomerati, mada u half window češće smetaju, nego što koriste. Editor šema nudi veći broj sheet-ova šema po projektu. Nama je najviše trebalo četiri, ali smo u par navrata otvarali i preko deset. Wiring Tools mini prozor nudi 15 alatki koje uz prečice brzo rešavaju probleme. Drawing Tools mini-prozor omogućava custom oblike, dodavanje crteža, teksta, frejmova. Editor dizajna PCB Idemo na Design -> Convert to PCB. Na ovaj način pretvaramo našu šemu u PCB. Prilikom eventualnih promena šeme ići ćemo na Update PCB. Kao nova ploča, prvo dobija osnovne parametre koje treba podesiti, a koji se mogu i kasnije prepraviti. Prva je Units (držimo se milimetara), zatim broj slojeva (u našem slučaju dva) i Board Outline. Mi idemo na Circular, za X i Y ose stavljamo „20” i „-20”, dok za radijus stavljamo 20 milimetara. Ovo se može promeniti pod Tools -> Set Board Outline. Oblikom samih ploča možemo se u velikoj meri igrati. Editor u startu nudi tri standardna oblika, dok se levim klikom po samoj outline liniji mogu dodavati tačke, a koje se prostim razvlačenjem mogu pomerati. Mini prozor PCB Tools nudi još dosta toga za oblikovanje ploče. Alat za oblik možda nije najbolji u ovoj sferi, ali svakako možemo napraviti bilo koji oblik. Na našu malu ploču, malo veću od kovanice od 20 dinara, spakovali smo sve komponente prostim drag’n’drop sistemom. U našem slučaju, raspored i nema puno „must” pozicija, ali generalno treba grupisati određene komponente tako da budu blizu jedna drugoj. U ovom slučaju, recimo, kristal i kondenzatori C1 i C2, LED i prateći otpornik, taster i njegov pull-up otpornik. Kod ESP porodice mikrokontrolera, par kondenzatora uz sam modul su totalni imperativ. Zatim, MAX6675 i kondenzator za odvajanje između naponskih izvoda, takođe, mora biti što je moguće bliže. Za eventualno neke druge komponente potrebno je prelistati tehničku dokumentaciju. Kada smo poređali komponente, na redu je rutovanje. Najbolja varijanta je preuzimanje lokalnog Auto Routera. To radimo tako što idemo na Route -> Auto Route. Ovde imamo osnovne parametre samih linija, njihove širine, razmake, prečnike mostova između slojeva i Router Server, sa opcijama Local i Cloud. Link Install Local Auto Router nas vodi ka njegovom preuzimanju. Nakon toga je dovoljno u pozadini pokrenuti BAT fajl i ponovo otvoriti Auto Router. Local će biti čekiran, te možemo ići na Run. Router će vrlo brzo završiti posao, a prikazaće eventualni fail koji možemo ručno vezati opcijom Track(W) u PCB Tools mini prozoru. Dok smo kod PCB editora, imamo još par zanimljivosti da pomenemo. Prva je View -> 2D View. Tu možemo videti kako će naša ploča izgledati u različitim bojama (same ploče), kroz dva pogleda (prednji i zadnji). Neki od proizvođača posebno naplaćuju određene boje, kod drugih se duže čeka. Opcijom View -> 3D View možemo da vidimo kako će naša ploča izgledati popunjena. Ovo može biti jako korisno kod određenih komponenata u odnosu na druge. Nažalost, nemaju sve komponente 3D modele, a njih, inače, pregledamo i dodeljujemo komponentama u PCB editoru klikom na neku, gde se u desnoj traci pod Custom Atributes dobija polje 3Dmodel. Ukoliko baš ne možete da nađete određeni model, naš savet je da ga pogledate na stranicama www.3dcontentcentral.com u WRL formatu koji raspakovan dodajete u File -> New -> 3D Model. Iako zvanično EasyEDA podržava i OBJ format fajla, mi nijednom nismo uspeli da ga dodamo u softver. Na ploču možete dodati i custom slike preko PCB Tools mini-prozora i opcije Image. Tu su opcije za isecanje otvora u bilo kom obliku, zatim copper i solid region. Ako vam je potreban custom font, trebalo bi da znate da se on može dodati, ali se ne može postaviti kao predefinisan, već se za svaku rečenicu ili oznaku mora posebno odabrati. Prilikom odabira sloja na kojem ćemo postaviti tekst ili sliku, treba razlikovati TopLayer i TopSilkLayer, gde se ovaj poslednji odnosi na prednji sloj po kome možemo pisati i označavati. Isto važi i za donji. Layers and Object mini-prozor nudi odličan menadžment, tako da se lako mogu razdvojiti Copper od Non-Copper sloja. Kada je sve spremno, idemo na File -> Generate Fabrication File (Gerber). EasyEDA će nas pitati da li želimo da proverimo DRC, što i radimo. Ako nema nikakvih grešaka, dobijamo Gerber View, gde možemo preuzeti Gerber fajlove u ZIP formatu preko Generate Gerber ili direktno naručiti kod JLCPCB. Tu, osim cene bez poštarine, možemo da izaberemo i broj ploča, debljinu, boju i još mnogo toga. Naš predlog je da odmah odete na poručivanje, gde u par koraka završavate posao. Pri odabiru određenih opcija, možemo poručiti Stencil, ali i SMT Assembly. Ovo poslednje se odnosi na komponente odabrane iz pomenutih kataloga pri izradi same šeme. SMT Assembly će tražiti još dva fajla pored Gerbera. BOM (bill of material) tabelu u CSV formatu preuzimamo preko File -> Export BOM, što je, zapravo, spisak komponenata. Ukoliko nam neka od komponenata nije sa LCSC spiska, ovde to možemo korigovati. Drugi fajl koji nam je potreban je CPL (pick&place), a koji je zapravo skup koordinata, rotacija i odabir sloja za svaku komponentu ponaosob. Njega dobijamo preko File -> Export Pick and Place File. Sa ovim, malo obimnijim tekstom, završavamo našu ploču. U narednom broju biće reči o njenom programiranju, a do tada, za sva pitanja tu je forum „Sveta kompjutera”, a mi vam stojimo na raspolaganju. Svi fajlovi ovog projekta (22 KB): i.sk.rs/357673
|
||||||||||
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Doom: The Dark Ages Doom iz mračnog doba drugačiji je od svih drugih Doomova, jer je Slayer koncipiran kao tenk sa štitom... Clair Obscur: Expedition 33 Estetika Belle Époquea, gameplay u skladu sa kanonima JRPG-a, vrhunsko pripovedanje i ljubav prema igrama... Computex 2025, Tajpej, Tajvan AI NEXT Ovaj, nekada ultra-PC-specifični sajam, odavno se proširio na srodne tehnologije, biznis rešenja i digitalne usluge, postavši varijanta azijskog C... Gigabyte GeForce RTX 5070 Gaming OC 12G Višak samopouzdanja Kartica je sa hardverske strane vrlo kvalitetna, ali ništa ne može da nadomesti nedostatak snage „pod haubom”... Asus ProArt P16 (H7606WP) Pronalazak neverovatnog Novi ProArt P16 donosi moderna rešenja, u dobro usaglašenom odnosu gabarita i performansi – alatka koju ćete sa ponosom nosati sa sobom... Logitech ProX Superlight 2 Sve udvostručeno Ovaj miš predstavlja jasnu indikaciju da najveći proizvođač ne želi da napusti nijedan segment tržišta... Winhance 25.05 Popravka Prozora U pitanju je alatka koja omogućava da se brzo rešite (većine) bloatwarea, ali i da obavite optimizaciju rada Windowsa... .rs: Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije Unapređeno e Zakazivanje Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije Google Mariner, Google Astra i AI autonomni agenti Uspon tihog softvera Umesto kliktanja stručnog lica, softver će, već ove godine, u tihom, gotovo nečujnom načinu rada - završavati posao... Fatal Fury: City of the Wolves Fatal Fury je oduvek bio čudna cvećka u svetu borilačkih igara; takav je i ostao... Arc Raiders Novi extraction shooter iz pera autora dobrih delova franšize Battlefield (i potcenjenog The Finals)... |
||||||||||