Toto je starší verze dokumentu!
Obsah
Pravidla pro návrh nových modulů
Tato stránka je wiki doplňkem originálního článku Návrhová pravidla a standardní postupy A je možné sem volně dopisovat další zásady pro tvorbu modulů, které v původním článku nejsou řešeny.
K samotnému návrhu modulů se využívají tyto softwarové nástroje.
Identifikace modulů
Každý modul musí mít jednoznačný identifikátor skládající z názvu, verze a revize modulu. Například: JTAGFT2232V02A.
- JTAGFT2232 - název modulu vystihující podstatu modulu (zde pravděpodobně J-tag programátor s čipem FTDI FT2232)
- (V)02 - verze modulu - ve vývoji modulu už došlo k nějaké zásadní změně (Zde bylo od verze 01 přidáno CPLD)
- A - revize modulu (v tomto případě ještě nedošlo k opravě žádné chyby)
Dále pak existují moduly se zelenou nepájivou maskou a bílím potiskem. A moduly s bílou maskou a černým potiskem. Tento způsob dalšího rozlišování zavedla firma UST vyrábějící pro MLAB moduly. A význam tohoto značení je následující:
- Zelená maska a bílý potisk - Prototypový modul, často vyrobený pouze v jednom nebo v několika kusech, jako testovací vzorek.
- Bílá maska a černý potisk - Produkční verze modulu vyráběná v mnoha kusech. Oproti zelenému modulu může obsahovat drobné změny i v případě, že identifikátor modulu je identický.
Založení nového modulu
Použití GitHub template (doporučeno)
Asi nejjednodušší možností, jak založit nový modul je použití GitHub MLAB module template repository.
Tento repozitář se k vytvoření nového repozitáře používá běžným GitHub způsobem.
Pomocí skriptu mlabgen
Prvním krokem je vytvoření správné adresářové struktury nového modulu ve forku hlavního modulového repozitáře. Návod na základní používání githubu.
Adresářovou strukturu modulu lze vytvořit buď ručně a nebo pomocí nástroje mlabgen, který adresářovou strukturu sám vytvoří a správně pojmenuje všechny soubory. Po jeho instalaci je možné nový modul vytvořit příkazem:
mlabgen-module-init NAMEVERREV
Kde NAMEVERREV
je námi vytvořená identifikace nového modulu. Příkaz mlabgen-module-init
je nutné spouštět ve složce, kde chceme nový modul založit. Pokud vytvářím modul se senzorem, musím být ve složce Modules/sensors
.
Použití příkazu mlabgen-module-init
je doporučené, protože skript vytvoří i další soubory. Například QRkód k vytvářenému modulu.
Pak je potřeba upravit metadatový soubor <NAMEVERREV>.json
v adresářové struktuře modulu tak, aby obsahoval základní informace o novém modulu. Následně adresářovou strukturu modulu přidáme do repozitáře. Po dokončení návrhu modulu je vhodné vytvořit pull-request do hlavního repozitáře MLAB ze kterého byl vytvořen fork. Což je nejlepší způsob, jak zařídit aby vaše práce byla vidět.
Do commit logu je vhodné napsat popis toho, že je přidáván nový modul s nějakým určením. Další dokumentace by měla být vytvářena již během vývoje modulu. Je proto dobré hned po commitu nového modulu založit stránku na této wiki. To lze nejlépe udělat otevřením wiki stránky ze stránky modulu Seznamu modulů.
Ruční vytvoření struktury modulu
Pokud z nějakých důvodů nechcete používat MLABgen pro vytvoření základní adresářové struktury, při zakládání nového modulu je potřeba dodržet následující pravidla.
V odpovídající složce kategorie vytvoříme složku s názvem nového modulu ve formátu NAMEVERREV
Uvnitř složky modulu by měla být vytvořena následující adresářová struktura. Povinné soubory/složky jsou označeny hvězdičkou
<NAMEVERREV>* ├── doc* │ ├── img* │ │ ├── <NAMEVERREV>_QRcode.png* │ │ └── <NAMEVERREV>_top_big.jpg* │ ├── pdf │ │ └── │ ├── <NAMEVERREV>.cs.pdf │ ├── <NAMEVERREV>.en.pdf │ └── src │ └── <NAMEVERREV>.tex ├── hw │ ├── cam_profi │ │ ├── <NAMEVERREV>-B.Cu.gbr │ │ . │ │ . │ │ └── <NAMEVERREV>-PTH.drl │ └── sch_pcb │ ├── <NAMEVERREV>.kicad_pcb │ ├── <NAMEVERREV>.pro │ └── <NAMEVERREV>.sch ├── cad │ ├── src │ │ └── <NAMEVERREV>.scad │ └amf │ └── <NAMEVERREV>.amf ├── <NAMEVERREV>.json* └── sw └── <NAMEVERREV>_exmalpe.py
Soubor <NAMEVERREV.json>
by měl obsahovat informace o modulu.
{ "wiki": "None", "status": "1", "name": "<NAMEVERREV>", "short_en": "Krátký anglicky popis", "image": "Adresa k obrazku, pokud neni zadana, pouzije se QR kod", "longname_cs": "Cesky podnadpis", "longname_en": "Anglicky podnadpis", "mark": "50.0", "ust": "", "doc_cs": "", "short_cs": "Kratky cesky popis", "doc_en": "", "root": "slozka v ramci repozitare", "author[]": [], "category[]": [] }
Se správným vyplněním se můžete inspirovat například u nějakého existujícího modulu.
Napájení modulů
Podrobnější příklady konektorů a vysvětlení jejich použití je na stránce navody
Konfigurace konektorů MLAB
Napájecí konektory pro nízké proudy mají více konfigurací a jsou realizovány lámacími hřebínky s roztečí 2,54mm
Napájecí konektory jsou vždy zdvojené, aby bylo umožněno smyčkování napájení z jednoho modulu na další. Propojovací vodiče jsou barevně označeny podle používaných napájecích napětí.
- Červená - 5V
- Oranžová - 3.3V
- Žlutá - 12V
- Modrá - Záporné napájení 5-12V.
Tato konvence vychází z barevného značení ATX napájecích zdrojů.
Externí napájecí zdroje
Na silové napájení s vyššími výkony se používají konektory FASTON, nebo svorkovnice WAGO256
Na plošném spoji jsou ale vždy otvory na svorkovnici WAGO256, je to proto protože svorkovnice a FASTON mají stejnou rozteč a je tedy možné do jednoho PCB osadit oba druhy konektorů.
Válcový napájecí konektor
Napájení +5V z USB
Je dobrým zvykem u modulu napájeného z USB, který může napájení dále distribuovat zařadit do USB napájení ochrannou proudovou PTC pojistku zaručující, že nedojde k přetížení HOST systému.
Vysoké napětí
Pro rozvod vysokého napětí k modulům (>250V DC) se používají speciální vysokonapěťové konektory SHV, které jsou použitelné až do cca 10kV. Konektory SHV mají oproti ostatním koaxiálním konektorům výhodu že je není možné zaměnit s klasickými měřícími konektory BNC.
Vzhledem k běžně velmi dobrým izolačním vlastnostem koaxiálních kabelů je možné použít pro výrobu vysokonapěťových rozvodů i koaxiální kabel RG58.
Ochranné prvky na modulech
Schéma modulu
Správně nakreslené schéma (nejenom modulů MLAB) dodržuje tyto zásady:
- Spoje se musí co nejméně křížit
- Signály vedou zleva doprava.
- Kladné napájení vede ze shora dolu, záporné zespoda nahoru.
- Spoj nesmí křížit žádný nápis.
- Blokovací kondenzátory se kladným pólem připojují do místa které blokují. (není-li to možné kreslí se nedaleko blokovaného obvodu)
- na jednom spoji musí být minimální množství spojovacích bodů (není například vhodné kreslit vedle sebe dva T uzly ale lepší je nakreslit jeden uzel +).
- Hodnoty součástek musí mít jednotnou jmennou konvenci využívající plný název fyzikální veličiny tj. nF, pF atd.
Specifikem schémat MLABu pak je, že hřebínky jsou vždy ve dvojici ale ve schématu se pro přehlednost uvádí, jako jedna součástka. (vyžaduje to v některých případech použití vlastních knihoven, ale přehlednost schéma je tím podstatně zlepšena.)
Ochranné odpory
Na vstupech některých modulů, jako jsou například čidla (nebo často moduly pracující na 3,3V) je vhodné umístit ochranné sériové odpory, které zvýší odolnost vůči externímu přepětí. Velikost těchto odporů se obvykle volí v rozsahu 10 Ohm až 1kOhm, podle předpokládaného potřebného proudu IO pinem.
Ochranné diody
Prakticky všechny současné moduly stavebnice MLAB, jsou na vstupu napájení opatřeny ochrannou antiparalelní diodou proti přepólování. Její funkce spočívá ve vyzkratování zdroje v případě připojení napájecího napětí nevhodné polarity. Pro její správou funkci je tedy nutné používat napájecí zdroje s proudovým omezením.
Proto není vhodné napájení modulů realizovat přímo z akumulátorů, které mohou diodu při špatném připojení napájení poškodit (odpařit) a tím vyřadí její správnou funkci.. Pro použití modulů společně s akumulátorovým, nebo bateriovým napájením je tedy vhodné použít vhodný napájecí modul, který obsahuje pojistku, nebo měnič s proudovým omezením.
Geometrie modulů
Rozměry
Moduly jsou navrženy v rastru 10,16 mm (400mils) a jejich rozměry přesahují 200 mils - 10mils od středu rohových děr Modul je o 10mils zmenšen proti přesnému rastru kvůli výrobním tolerancím (Jinak by nemuselo být možné dát na základní desku dva moduly těsně k sobě). Aby bylo možné moduly skládat vedle sebe, je potřeba z každé strany ubrat 0,254 mm (10mils). Pro montáž na ALBASE se používá šroubů M3 DIN 912 délky 12 mm, proto je potřeba v plošném spoji čtveřice otvorů o průměru 3 mm.
Názorný příklad pro modul zabírající 3 otvory na ALBASE. Počátek souřadnic PCB umístěn do středu šroubu vlevo dole. Rozměr PCB je symetricky centrován na rozteč šroubů.
- Délka hrany: 4×10,16 - 0,254 -0,254 = 40,132 mm
- Rozteč šroubů: 3×10,16 = 30,48 mm
- Vzdálenost otvoru na šroub od okraje desky: 5,08 - 0,254 = 4,826 mm
- Průměr otvoru na šroub: 3 mm (MLAB footprint)
Rohové šrouby
Šrouby musí mít okolo sebe dostatečný prostor pro utažení dvou kontra-matic, které v modulu drží šroub a zároveň fungují, jako distanční podložka mezi plošným spojem a podkladovou deskou. Plošný spoj je tedy na výšku dvou matic umístěný nad základovou deskou tedy cca 5mm, použitelný montážní prostor pro součástky je tedy 4,9mm. V případě nutnosti použití větších součástek lze modul mírně přizvednout vložením potřebného počtu podložek mezi obě matice (obvykle stačí jedna nebo dvě podložky, jinak je vhodné použít distanční sloupek nebo další matici).
Matice se u modulů používají proto, protože dvě matice umožňují využít efektu kontra matice a tudíž se nepovolují na rozdíl od jednoduchých sloupků, které je proti povolení třeba zabezpečit jiným způsobem. Například zalepením anaerobním lepidlem.
Layout (návrh plošného spoje)
Parametry se mohou lišit podle zvoleného návrhového nástroje
Mezní možnosti výroby:
Min. tloušťka cesty 0,1 mm Min. izolační mezera 0,1 mm Min. vzdálenost od okraje PCB je 0,5mm z důvodu drážkování
Vedení plošných spojů a jejich rozměry jsou vždy volené tak, aby byla v co největší míře umožněna i amatérská výroba a osazení plošného spoje. Izolační vzdálenosti, jsou proto maximální a plošky pro součástky o něco delší, než potřebné (zvláště u QFN pouzder, kde to velmi usnadňuje kontrolu kvality pájení).
Spoje jsou dále vedeny tak, aby se co nejvíce minimalizovala možnost vyzařování modulu, což znamená minimální plochy smyček zvláště u spojů, které vedou střídavé proudy s velkou amplitudou, typicky měniče ale třeba i výstupy logických obvodů typu CMOS a TTL.
U dvouvrstvých plošných spojů je preferováno užití horní strany modulu (odvrácené od základové desky) jako zemního potenciálu. V nutných případech je ale možné na této straně vést i nízkovýkonové napájení. Je ale nutné se v horní vrstvě vyvarovat vedení datových a vysokofrekvenčních signálů (opět kvůli možnosti vyzařování a snížení integrity signálu).
Moduly by měly mít všechny čtyři šrouby spojené stejným potenciálem a to pokud možno i v případě, kdy modul nepoužívá zem základové desky (Pokud to zvláštní konstrukční požadavky modulu nevylučují. Vy jímka je například eth) tato praxe opět pomáhá snížit vyzařování modulu, zvláště u vícevrstvých plošných spojů.
Pouzdra součástek
Preferovaná velikost SMD pouzder je aktuálně řada 0805. Použití konkrétních pouzder se může lišit podle zvoleného návrhového nástroje
Rozmisteni soucastek
SMD součástky se umisťují primárně na jednu stranu desky. Ideálně na stranu přivrácenou k základové děrované desce MLAB (vrstva B.Cu). Důvodem je větší odolnost konstrukce, menší potíže s EMC a značné ulehčení osazení v reflow peci.
Prokovy
Běžně používané parametry pro prokovy jsou:
0,8 mm průměr prokovu a 0,4 mm průměr vrtání
Minimální vyrobitelné okruží otvoru je 0,1 mm (průměr plošky prokovu = průměr vrtaného otvoru + 0,2 mm). V případech kde to není nutné nenavrhujeme spoje této mezi. Zbytečně to prodražuje cenu PCB a náročnost výroby.
Pro spoje s vysokým proudovým zatížením je potřeba zvětšit rozměry prokovu, dle přenášených proudů, nebo zvýšit počet prokovů na jednom spoji.
Texty v potisku modulu nesmí překrývat prokovy. (Jinak dojde k nečitelnosti potisku v místě prokovu)
Konstrukční části
Na moduly kde zbývá volné místo na plošném spoje je možné umístit plošky pro rezervní součástky, obvykle rezistory, nebo kondenzátory v pouzdru 0805. Při vkládání součástek, je vhodné použít dvojitý hřebínek, z něhož jedna řada bude vždy napájení Vcc, nebo zem GND a protilehlé piny povedou k rezervním součástkám. Viz. například modul ATmegaTQ3201A. Zajímavou možností také je, plošný spoj v místě umístění rezervních součástek proděrovat, což umožní snadnou kontrolu jejich přítomnosti a navíc umožní i použití SMD LED.
LED
Indikační LED jsou na modulech ideálně navrhovány tak, aby svítily skrz plošný spoj na od základní desky odvrácenou stranu. Toho je dosaženo vsazením LED do díry v plošném spoji. Tento způsob montáže se označuje jako „reverse mount“ a vyrabějí se pro něj i speciální SMD svítivé diody.
Klasické THT LED s průchozími nožičkami se osazují s montážní podložkou, která usnadňuje osazování chrání led před zbytečným tepelným namáháním a ohybem. Montážní podložka mírně zvětší průměr základny LED s čímž je nutné počítat při návrhu plošného spoje.
Krystaly
Pro krystaly v modulech MLAB bylo jako základní pouzdro zvoleno HC49/S, malý krystal s nožičkovými vývody. Je to z toho důvodu, že může být umístěn na modulu z vrchní strany a je vždy viditelná jeho frekvence. Konstruktér tak má během laborování s moduly vždy přehled o používaných frekvencích.
Pro moduly, kde lze předpokládat občasnou výměnu krystalu za krystal s jinou frekvencí se na modulech osazuje speciální držák krystalu, do kterého je možné po zkrácení nožiček krystal pohodlně zasunout a kdykoli vyměnit za jiný.
Rezervní pozice pro součástky
Indikační LED mohou na modulech být v provedení SMD, nebo LED 3mm. SMD diody lze umisťovat i na spodní stranu desky přivrácenou k podkladové desce. V takovém případě je ale vhodné do plošného spoje nad SMD LED navrhnout díru cca 1mm kterou bude SMD LED viditelná..
Potisk na modulech
Potisk na modulech by měl respektovat obecná typografická pravidla. Je to důležité hlavně z hlediska nutnosti zachovat čitelnost potisku i po aplikaci sítotiskem. To znamená že, grafika v potisku nesmí překrývat nesouvislou plochu a hrany. (Odmaskování plošek, otvory a pod.) Texty v potisku modulu tak například nesmí barvenou plochou překrývat prokovy, ale je možné, aby prokov byl v nebarvených plochách písmen.
Písmo
Na jednom modulu se může vyskytovat více velikostí písma, (obvykle na modulech stačí méně, než 3). Použivají se v pořadí: název modulu, popisky, výstrahy, označení autora. Různé velikosti se samozřejmě používají pouze v případech, kdy je k tomu na modulu místo. Na některých modulech je proto jenom jedna velikost písma podřízená čitelnosti a rozměrům modulu.
Zarovnání
Signály se stejnou prioritou by měly mít na celém modulu jednotnou velikost písma. Taktéž by měla být sjednocena velikost a styl jednotlivých popisků u jednoho konektoru.
Popisky jednotlivých signálů na hřebínku se zarovnávají ke konektoru, aby byla minimalizována možnost řádkové chyby při zapojování.
Velikosti Písma
Nejčastější používané velikosti písma jsou:
Width 1,5 mm, Height 1,5mm, Thickness 0,3mm - název modulu, důležité informace a popisky hřebínků Width 1,3 mm, Height 1,3mm, Thickness 0,3mm - popisky jednotlivých vývodů hřebínků
Velikost písma menší než 1,3 mm je problematická a je třeba ji používat pouze v opodstatněných případech.
Na některých malých modulech může vzniknout problém s délkou názvu modulu, v takovém případě se název modulu zalamuje u verze modulu, například:
ISL2902001A je celý název tohoto modulu, avšak ten není možné na modul umístit, proto je zalomen u verze jako ISL29020 a 01A.
QR kódy
Na všechny moduly které jsou dostatečně velké, aby na ně mohl být umístěn QR kód. Ten obsahuje identifikaci modulu a odkaz na stránku s permalinkem na dokumentaci modulu. QRkód generujeme nástrojem qrencode do složky <modul>/doc/img/<modul>_QRcode.png. např
qrencode -s 15 -l L "http://www.mlab.cz/" -o "MODUL01A_QRcode.png"
Pokud jste pro vytvoření modulu použili mlabgen, QRkód by měl být vytvořen při vytváření základní adresářové struktury.
Vhodnejší by pravděpodobně bylo použití micro QR kódů. Utilita qrencode je sice umí generovat. Např. „qrencode –micro -v 4 -s 15 -l L „BATPOWER04C“ -o „microQRcode.png““ ale ještě neexistuje vhodná čtečka do Androidu, která by je uměla číst.
PADS
Miho pro potřeby generování kódu do potisku plošného spoje vytvořil generátor QR kódů, který generuje grafiku ve formátu ASC (Původně určeno pro Mentor Graphics PADS) Velikost QR kódů na plošných spojích zatím není sjednocena. Při generování kódů je výchozí velikost pro většinu plošných spojů příliš velká. Momentálně se vhodné nastavení musí vyzkoušet vhodné počáteční nastavení je např.
- PADS Size: 20
- PADS Line Width: 2
Vygenerovaný soubor je ve formě textu na spodní straně stránky. Text je tak nutné ručně vložit do souboru s příponou asc. Po importování vygenerovaného obrázku do potisku plošného spoje je následně třeba nastavit atribut „solid copper“ aby motiv byl kompletně vyplněn barvou.
KiCAD
Obrázky QRkódů se do KiCAD převedou stejně jako logo.
Check list před výrobou
- zkontrolovat velikost a správnost pouzder
- Velikost plošek a otvorů u konektoru a součástek skrz desku.
- velikost der, krystaly ledky, hřebínky, propojky, speciální součástky.
- odmaskovani plošek, propojky
- obrysy součástek, označeni propojek.
- popisky, nápis www.mlab.cz
- Zkontrolovat, ze nejsou prokovy pod písmeny a znaky
- zkontrolovat QR kod a PermaLink.
Struktura repozitáře MLABu
Protože aktuální struktura repozitáře popsaná výše nevyhovuje současným potřebám projektu, je na následujících odstavcích popsána nová navrhovaná struktura.
- Projektová metadata - json
- Commit message - začátek velké písmeno, slova jako added, fixed, removed, started, finished…
Jmenná konvence
bez_diakritiky_a_specialnich_znaku_mezery_nahrazeny_podtrzitkem_pouze_mala_pismena_strucne_a_srozumitelne
Navrhovaná adersářová struktura modulu
MODUL01A/ hw/ sch_pcb gerb_ama gerb_profi hdl cad sw/ doc/ src img datasheets MODUL01A.cs.pdf MODUL01A.en.pdf