Uživatelské nástroje

Nástroje pro tento web

Překlady této stránky?:

cs:rules

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.

  1. JTAGFT2232 - název modulu vystihující podstatu modulu (zde pravděpodobně J-tag programátor s čipem FTDI FT2232)
  2. (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)
  3. 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. Další postup je pak popsán v readme nového repozitáře modulu.

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>.kicad_pro
│       └── <NAMEVERREV>.kicad_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.

Elektrické propojení modulů

Podrobnější příklady konektorů a vysvětlení jejich použití pro různé aplikace je na stránce navody.

Elektrické propojení modulů

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ů. Stejná konvence se pak používá i pro propojovací vodiče.

Externí napájecí zdroje

Na silové napájení s vyššími výkony (až 16A) 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

Používaný rozměr je 5.5/2.1mm. Střední vodič je +, vnější plášť je -.

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.

SHV zásuvka SHV vidlice

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:

  1. Spoje se musí co nejméně křížit
  2. Signály vedou zleva doprava.
  3. Kladné napájení vede ze shora dolu, záporné zespoda nahoru.
  4. Spoj nesmí křížit žádný nápis.
  5. 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)
  6. 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 +).
  7. 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.

MLAB HC49/S standardní krystal

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ý.

MLAB držák krystalu

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

  1. zkontrolovat velikost a správnost pouzder
  2. Velikost plošek a otvorů u konektoru a součástek skrz desku.
  3. velikost der, krystaly ledky, hřebínky, propojky, speciální součástky.
  4. odmaskovani plošek, propojky
  5. obrysy součástek, označeni propojek.
  6. popisky, nápis www.mlab.cz
  7. Zkontrolovat, ze nejsou prokovy pod písmeny a znaky
  8. 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

MODUL01A/
  hw/
    sch_pcb
      gerb_ama
      gerb_profi
    hdl
    cad
  sw/
  doc/
    src
      img
    datasheets
    MODUL01A.cs.pdf
    MODUL01A.en.pdf
cs/rules.txt · Poslední úprava: 2023/02/16 20:18 autor: 178.17.10.62