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.

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

Manual module creation

If, for some reason, you are reluctant to use MLABgen for creation of the basic directory structure, it is necessary to comply with the following rules:

In the appropriate folder category we create a folder with the name of the new module using a format NAMEVERREV’’. Inside the folder, we create the following directory structure (obligatory folders/files are marked with an asterisk): <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 The file <NAMEVERREV.json>'' should contain the information concerning the module.

{
    "wiki": "None", 
    "status": "1", 
    "name": "<NAMEVERREV>", 
    "short_en": “Short  description in English", 
    "image": “Picture adress, if not available, use QR code", 
    "longname_cs": “Czech subtitle", 
    "longname_en": “English subtitle”, 
    "mark": "50.0", 
    "ust": "", 
    "doc_cs": "", 
    "short_cs": “Short description in Czech", 
    "doc_en": "", 
    "root": “folder within the repository", 
    "author[]": [], 
    "category[]": []
}

You can find example of a correct filling by checking one of the already existing module.

Module power supply

You can find more detailed examples of connectors and an explanation of their use at Manuals.

MLAB connectors configuration

Power supply connectors for low currents have two configurations (??) which are implemented using .. (??) Napájecí konektory pro nízké proudy mají dvě konfigurace a jsou realizovány lámacími hřebínky s roztečí 2,54mm

Power supply connectors are doubled in order to allow smyčkování napájení (??).

Externí napájecí zdroje

For power supply with higher powers, the FASTON connectors or WAGO256 terminal blocks are used.

There are always openings for WAGO256 terminal block on PCB, because the terminal blocks and FASTON have the same with and it is thus possible to fit both types of connectors onto one PCB.

Cylindrical power supply connector

Power supply +5V from USB

It is always a good practice to include a safety current PTC fuse into the USB power supply in case of modules powered from USB that are able to further distribute the power so that the HOST system is not overloaded.

High voltage

For high voltage distribution (>250V DC) to modules, there are special high-voltage connectors SHV that can be used up to approximately 10kV. SHV connectors, compared to other coaxial connectors, have an advantage that it is not possible to confuse them with the usual measuring BNC connectors.

SHV zásuvka SHV fork

Due to usually very good insulating parameters of coaxial cables, it is possible to use coaxial cable RG58 for construction of high-voltage distributions.

Safety features

Module schema

A properly drawn schema (not only of MLAB modules) follows these rules:

  1. Connections cross each other as little as possible
  2. Signals are led from left to right.
  3. Positive power supply is led from top to the bottom, negative from bottom to the top.
  4. A connection cannot cross any text / inscription
  5. Decoupling capacitors are connected with their positive pole to the place they should decouple (if not possible, they are drawn closely to the decoupled circuit).
  6. One connection has to contain a minimal amount of connecting points (it is for example not recommended to draw two T nodes, instead it is better to draw one + node).
  7. Components’ values must have a common name convention using full names of the physical quantities - e.g. nF, pF etc.

A specific feature of MLAB schemes is, that the nails are always in pair, but to keep the scheme intelligible, they are shown as one component (in some cases it requires using own libraries, but on the other hand, schemes are much more intelligible).

Safety resistors

We advice to use safety serial resistors on inputs of some of our modules (e.g. sensors or often modules working at 3.3V) - they will increase the resistance to extreme preload. Size of such resistors is usually within range 10 Ohm to 1 kOhm, with respect to the IO pin’s current requirements.

Safety diodes

Almost all the present MLAB modules contain a safety antiparallel diode on the power supply input, serving as a protection against polarity reversal. It short-circuits the power supply in case of connecting the power voltage of incorrect polarity. In order to function correctly, the diode requires power supplies with current limit.

Therefore it is not recommended to power supply the modules directly from accumulators, as they are able to damage (evaporate) the diode in case of wrong connecting and thus ruin its function. When using modules together with accumulator or battery power supply, we recommend using a proper power supply module that contains a fuse or a converter with current limitation.

Module geometry

Sizes

MLAB modules are designed in 10.16 mm raster (400 mils) and their sizes exceed 200 mils - 10 mils from the centres of the corner holes. Each module is 10 mils smaller in size compared to the exact raster due to production tolerances (otherwise it might not be possible to fit two modules next to each other on a base board). To make it possible to fit modules next to each other, it is necessary to make each size smaller by 0.254 mm (10 mils). For mounting on the ALBASE, we use M3 screws of 12 mm in length - that is why it is necessary to have four 3 mm diameters openings on each PCB.

An example of a module occupying 3 openings on the ALBASE:

 Length of the edge = 4x10.16 - 0.254 -0.254 = 40.132 mm
 Screws’ pitch = 3x10.16 = 30.48 mm
 The distance of screw opening from the base’s edge = 5.08 - 0.254 = 4.826 mm
 Screw opening’s diameter = 3 mm

Edge screws

Screws need to have a sufficiently large space around them in order to fasten two contra-nuts that are holding a screw in a module and at the same time serve as a spacer washer between a PCB and a base. PCB is thus placed at the height of two nuts above the base (approx. 5 mm) making the available space for assembly of components 4.9 mm. In case of using larger components, a module can be slightly raised by inserting a required number of washers between both nuts (usually one or two washers are sufficient, otherwise it is recommended using a spacer column or another nut).

Nuts are used thanks to the fact that two nuts make it possible to use a contra-nut effect - they hold firmly and are not released easily compared to simple columns, which have to be secured against release by other ways (e.g. using an anaerobic glue).

Layout (PCB design)

Limits of production possibilities:

Minimal trace width (?? Cesta) 0.1 mm
Minimal insulating space 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.1549373134.txt.gz · Last modified: 2019/02/05 13:25 by fluktuacia