User Tools

Site Tools

Translations of this page?:

en:rules

This is an old revision of the document!


FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

Rules for designing new modules

This page serves as a wiki complement to an original article Proposed rules and standard procedures. It also serves as a site for placing additional rules of module design, which are not dealt with in the article.

The module design itself uses a following software tools.

Identification of modules

Each modules has to carry a unambiguous identification mark consisting of its name, version and module revision - e.g. JTAGFT2232V02A.

  1. JTAGFT2232 - the name of the module, depicting the nature of the module (here probably a J-tag programmer with FTDI FT2232 chip).
  2. (V)02 - the module’s version - there already were some crucial changes during the modules development (in this case, there was CPLD added from version 01)
  3. A - the module’s revision (in this case there were not corrections of any mistakes)

Furthermore there are modules with green non-soldering mask and white print and modules with white mask and green print. This kind of module identification was introduced by UST company, which produces modules for MLAB. The meaning of the above-mentioned colour identification is as follows:

  • Green mask and white print - a prototype module, often made only in one or few pieces serving as testing samples
  • White mask and black print - a production version made in large quantities. Compared to the green version, it may contain tiny changes changes even if the module’s identification mark is identical.

Establishing a new module

Using a mlabgen script

The first step is to create a correct directory structure of a new module in the fork of the main modules' repository. A basic guide for using github.

The directory structure can be created either manually or using a mlabgen tool, which will create the directory structure by itself and correctly name all the files. After its installation, a new module can be created using the following command:

mlabgen-module-init NAMEVERREV

The NAMEVERREV is the new module’s identification created by us. The mlabgen-module-init command has to be executed in the folder, where we want to create the new module. If we plan to create a module with sensor, it has to be placed in the Modules/sensors folder.

Using the mlabgen-module-init command is recommended because the script also creates some additional files - for example an QR code for the new module.

Next step is to edit the metadata file <NAMEVERREV>.json in the directory structure of the module in such way, that it would contain the basic information about the new module. Then we can add the directory structure of the module to the repository. After finishing the module design, it is useful to create a pull-request to the main MLAB repository, which has been forked - this is the best way to make your work visible.

Commit log should be completed with an information that a new module has been added together with its purpose. Further documentation should be already created during the module development. It is therefore useful to create a module’s wiki page here, shorty after the commit of the new module. Creating a page can be done by opening a wiki page from the List of the MLAB modules page.

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í 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í dvě konfigurace a jsou realizovány lámacími hřebínky s roztečí 2,54mm

Napájecí konektory jsou zdvojené, aby bylo umožněno smyčkování napájení.

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.

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ěr

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 ubral 0,254 mm (10mils). Pro montáž na ALBASE se používá šroubů M3 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:

 Délka hrany = 4x10,16 - 0,254 -0,254 = 40,132 mm
 Rozteč šroubů = 3x10,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

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)

Mezní možnosti výroby:

Min. tloušťka cesty 0,1 mm
Min. izolační mezera 0,1 mm

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á pouzdra součástek jsou z našich ověřených knihoven na githubu.

Proferovaná velikost SMD pouzder je aktuálně řada 0805.

Rozmisteni soucastek

SMD součástky se umisťují výhradně na jednu stranu desky. Ideálně na stranu přivrácenou k základové desce (vrstva B.Cu). Důvodem je větší odolnost konstrukce, nižší vyzařování a ulehčení osazení v reflow peci.

Vrstvy

F.Cu - měděná vrstva ze strany součástek
B.Cu - měděná vrstva ze strany spojů
F.SilkS - potisk součástek
B.SilkS - potisk strana spojů
F.Mask - maska strana součástek
B.Mask - maska strana spojů
Edge.Cuts - obrys desky
F.Fab - potisk pro osazování strana součástek
B.Fab - potisk pro osazování strana spojů

Pri navrhu dvouvrstveho plosneho spoje, je jedna vrstva se vyhrazena pro zem a napajeni. Tato vrstva se pak nastaví jako “Split/Mixed plane” a priradi se k ni signal zem a napájení. To umožní automaticky ukončovat tyto spoje prokovem do této vrstvy. Je to mnohem lepší než pro tuto vrstvu zadat “copper pour” protoze v takovem případě se spoj špatně edituje.

Prokovy

Pro běžné cesty

0,8 mm průměr prokovu a 0,4 mm průměr vrtání

Pro silové cesty je potřeba zvětšit rozměry prokovu, dle přenášených proudů, nebo zvýšit jejich počet.

Mez výroby

Min. okruží 0,1 mm (průměr prokovu = průměr vrtání + 0,2 mm)

V případech kde to není nutné nenavrhujeme na této mezi. Prodražuje cenu PCB.

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.

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 spravnost pouzder
  2. Velikost plosek u konektoru a soucastek skrz desku.
  3. velikost der, krystaly ledky, hrebinky, propojky, specialni soucastky.
  4. odmaskovani plošek, propojky
  5. obrysy soucastek, oznaceni propojek.
  6. popisky, napis www.mlab.cz
  7. Zkontrolovat, ze nejsou prokovy pod pismeny a znaky
  8. zkontrolovat QR kod a PermaLink.

Struktura repozitáře MLABu

  • 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

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
en/rules.1549121070.txt.gz · Last modified: 2019/02/02 15:24 by fluktuacia