reform

MNT Reform: Open Source Portable Computer
Log (Feed) | Files | Refs (Tags) | README

system-diagram.dot (9835B)


      1 digraph G {
      2   newrank=true;
      3   overlap=false;
      4   splines=ortho;
      5 
      6   node [shape=box fillcolor=white style=filled fontname="Inter" width=1 target="_top"];
      7   edge [arrowsize="0.5"];
      8   rankdir=TB; 
      9   fontname="Inter";
     10   label=<<font point-size='24'> <br/>MNT Reform 2.0D-4 System Diagram<br/> </font>>;
     11   labelloc="t";
     12 
     13   rtc  [label="Realtime\nClock" href="system.html#rtc"];
     14   rtcbat  [label="Coin Cell" href="system.html#rtc"];
     15    
     16   subgraph cluster_som {
     17     fontname="Inter";
     18     color=lightgrey;
     19     label=<<br/><b>System on Module</b>>;
     20     labelloc="t";
     21     margin="25.0";
     22     
     23     style=filled;
     24     
     25     subgraph cluster_soc {
     26       fontname="Inter";
     27       color=white;
     28       label=<<br/>System on Chip (i.MX8M)>;
     29       labelloc="t";
     30       margin="25.0";
     31       
     32       dsi  [label="MIPI DSI" href="system.html#mipi-dsi"];
     33       hdmi  [label="HDMI" href="system.html#hdmi"];
     34       sai  [label="SAI" href="system.html#sai"];
     35       i2c0  [label="I2C 1" href="system.html#i2c"];
     36       
     37       usb0  [label="USB3 Root 1" href="system.html#usb3"];
     38       usb1  [label="USB3 Root 2" href="system.html#usb3"];
     39 
     40       ddrc [label="DDRC" href="system.html#ddrc"];
     41 
     42       sd1  [label="MMC/SD1" href="system.html#mmc"];
     43       sd2  [label="MMC/SD2" href="system.html#mmc"];
     44       
     45       uart1 [label="UART 2" href="system.html#uart"];
     46       pcie0  [label="PCIe 1" href="system.html#pcie"];
     47       pcie1  [label="PCIe 2" href="system.html#pcie"];
     48       uart0 [label="UART 1" href="system.html#uart"];
     49       
     50       //uart2 [label="UART 3"];
     51       
     52       pwm [label="PWM" href="system.html#pwm"];
     53       
     54       ethmac  [label="ETH MAC" href="system.html#eth-mac"];
     55 
     56       cpu0 [label="Cortex-A53" href="system.html#cortex-a53"];
     57       cpu1 [label="Cortex-M4F" href="system.html#cortex-m4f"];
     58       gpu [label="GPU GC7000L" href="system.html#gpu"];
     59       
     60       i2c1  [label="I2C 2" href="system.html#i2c"];
     61       spi1 [label="SPI" href="system.html#spi"];
     62     }
     63 
     64     ram [label="LPDDR4\nRAM 4GB" href="system.html#ddrc"];
     65     emmc [label="eMMC\n~8GB" href="system.html#mmc"];
     66     
     67     ethphy  [label="ETH PHY" href="system.html#eth-phy"];
     68     
     69     s5v  [label="5V Input"];
     70   }
     71   
     72   hub  [label="USB Hub" href="system.html#usb-hub"];
     73   
     74   adac  [label="DAC WM8960" href="system.html#dac"];
     75   dsi2edp  [label="DSI to eDP\nConverter" href="system.html#dsi2edp"];
     76 
     77   subgraph cluster_headers {
     78     fontname="Inter"
     79     labelloc="b";
     80     margin="25.0";
     81     color=lightgrey;
     82     style=filled;
     83     label=<<b>Internal Ports</b><br/> >;
     84 
     85     iuart0  [label="UART1" href="system.html#uart"];
     86     iuart1  [label="UART2\nConsole" href="system.html#uart"];
     87 
     88     iusb0 [label="IUSB1" href="system.html#usb3"];
     89     iusb1 [label="IUSB2" href="system.html#usb3"];
     90 
     91     impcie [label="mPCIe Slot" href="system.html#pcie"];
     92     im2 [label="M.2 Slot\nKey M" href="system.html#pcie"];
     93   }
     94   
     95   subgraph cluster_power {
     96     fontname="Inter"
     97     label=<<b>Power</b><br/> >;
     98     labelloc="b";
     99     color=lightgrey;
    100     style=filled;
    101     margin="25.0";
    102     
    103     subgraph cluster_system_control {
    104       fontname="Inter"
    105       label="System Control\n ";
    106       labelloc="b";
    107       color=white;
    108       style=filled;
    109       margin="25.0";
    110       
    111       lpc  [label="MCU LPC11U24" width=4 href="system.html#lpc"];
    112       ina  [label="Current &\nVoltage Monitor" href="system.html#ina"];
    113       
    114       ltc  [label="Buck/Boost\nDC-DC and Charger" href="system.html#ltc4020"];
    115 
    116       mon  [label="Cell Monitor\nBalancer" href="system.html#balancer"];
    117       
    118       lspi  [label="SPI" shape=diamond fillcolor=lightgrey href="system.html#spi"];
    119       li2c  [label="I2C" shape=diamond fillcolor=lightgrey href="system.html#i2c"];
    120     
    121       cells [label="8x LiFePO4 18650 Batteries" shape=rectangle href="system.html#cells"];
    122       supply [label="24V Power Supply\nfrom Barrel Jack" shape=rectangle href="system.html#barreljack"];
    123     
    124       enabchg [label="Charge On" shape=diamond fillcolor=lightgrey href="system.html#lpc"];
    125       enab5v [label="On" shape=diamond fillcolor=lightgrey href="system.html#lpc"];
    126       enab3v3 [label="On" shape=diamond fillcolor=lightgrey href="system.html#lpc"];
    127     }
    128 
    129     subgraph cluster_power_rails {
    130       fontname="Inter"
    131       label="Power Rails\n ";
    132       color=white;
    133       style=filled;
    134       margin="25.0";
    135       
    136       r28v  [label="~28V" shape=diamond fillcolor=lightgrey];
    137       stby [label="3V3 Standby" href="system.html#standby"];
    138       r5v  [label="5V" width=1.1 href="system.html#r5v"];
    139       r3v3 [label="3V3" href="system.html#r3v3"];
    140       
    141       r1v2 [label="1V2" width=0.5 href="system.html#r1v2"];
    142       r1v5 [label="1V5" width=0.5 href="system.html#r1v5"];
    143       r1v8 [label="1V8" width=0.5 href="system.html#r1v8"];
    144     }
    145   }
    146 
    147   subgraph cluster_ports {
    148     fontname="Inter"
    149     label=<<b>External Ports</b><br/> >;
    150     labelloc="b";
    151     margin="25.0";
    152     color=lightgrey;
    153     style=filled;
    154     
    155     pusb3  [label="USB3 Port 3" href="system.html#usb3"];
    156     pusb2  [label="USB3 Port 2" href="system.html#usb3"];
    157     pusb1  [label="USB3 Port 1" href="system.html#usb3"];
    158 
    159     pbarrel [label="Barrel Jack" href="system.html#barreljack"];
    160     
    161     phdmi  [label="HDMI Port" href="system.html#hdmi"];
    162     psdcard  [label="SD Card Slot" href="system.html#mmc"];
    163     peth [label="1G Ethernet Port" href="system.html#eth-mac"];
    164 
    165     paudio  [label="Headphone &\nMic Jack" href="system.html#audiojack"];
    166   }
    167   lshift  [label="Level Shifter" href="system.html#mmc"];
    168   
    169   //refclk  [label="PCIe Clock Generator"];
    170   
    171   
    172   subgraph cluster_hmi {
    173     fontname="Inter"
    174     color=lightgrey;
    175     style=filled;
    176     label=<<b>Human Machine Interface</b><br/> >;
    177     labelloc="b";
    178     margin="25.0";
    179     
    180     subgraph cluster_screen {
    181       fontname="Inter"
    182       color=white;
    183       style=filled;
    184       label="Screen Assembly\n ";
    185       margin="25.0";
    186 
    187       panel  [label="12.5\" 1920x1080\nIPS Panel" href="system.html#panel"];
    188       backlight  [label="Backlight" href="system.html#panel"];
    189       speakers  [label="Stereo\nSpeakers" href="system.html#speakers"];
    190     }
    191     
    192     subgraph cluster_trackball {
    193       fontname="Inter"
    194       color=white;
    195       style=filled;
    196       label="Trackball\n ";
    197       margin="25.0";
    198       
    199       tmcu  [label="MCU Atmega32U2" width=3 href="system.html#tbctrl"];
    200       tsens  [label="Motion Sensor" href="system.html#tbsensor"];
    201       
    202       ti2c  [label="I2C" shape=diamond fillcolor=lightgrey href="system.html#i2c"];
    203       tgpio  [label="GPIO" shape=diamond fillcolor=lightgrey href="system.html#tbctrl"];      
    204       tkeys  [label="5 Buttons" href="system.html#kbkeys"];
    205     }
    206 
    207     subgraph cluster_keyboard {
    208       fontname="Inter"
    209       color=white;
    210       style=filled;
    211       label="Keyboard\n ";
    212       margin="25.0";
    213       
    214       kmcu  [label="MCU Atmega32U4" width=3 href="system.html#kbctrl"];
    215 
    216       oled [label="OLED Display 128x32" href="system.html#oled"];
    217       
    218       ki2c  [label="I2C" shape=diamond fillcolor=lightgrey href="system.html#i2c"];
    219       kuart  [label="UART" shape=diamond fillcolor=lightgrey href="system.html#kbctrl"];
    220       kgpio  [label="GPIO" shape=diamond fillcolor=lightgrey href="system.html#kbctrl"];
    221       kkeys  [label="Key Matrix" href="system.html#kbkeys"];
    222     }
    223   }
    224 
    225   { rank=same; ddrc, cpu0, cpu1, gpu }
    226   
    227   { rank=same; kmcu, tmcu, lpc, panel }
    228 
    229   { rank=same; ltc, mon, ina }
    230   { rank=same; enab5v, enab3v3, cells, supply }
    231   
    232   { rank=same; iusb0, iusb1, iuart0, iuart1, impcie, im2, paudio}
    233     
    234   { rank=same; usb0, usb1, ethphy, rtc, i2c1 }
    235   { rank=same; adac, dsi2edp }
    236 
    237   { rank=same; spi1, i2c0, pwm }
    238 
    239   { rank=same; hdmi, ethmac, emmc }
    240   { rank=same; peth, hub, pusb3 }
    241   
    242   { rank=same; phdmi, psdcard, pbarrel }
    243   
    244   
    245   // power signals
    246   
    247   lpc -> lspi -> mon  [arrowhead=none];
    248   lpc -> li2c -> ina  [arrowhead=none];
    249   lpc -> enabchg -> ltc;
    250   
    251   mon -> cells [arrowhead=none];
    252   ina -> cells [arrowhead=none];
    253   
    254   ltc -> cells [arrowhead=none,color=red];
    255   supply -> ltc [arrowhead=none,color=red];
    256 
    257   lpc -> enab5v -> r5v;
    258   lpc -> enab3v3 -> r3v3;
    259 
    260   // power
    261   
    262   r28v -> r5v   [color=red];
    263   r28v -> r3v3  [color=red];
    264   r28v -> stby  [color=red];
    265   r5v -> r1v2   [color=red];
    266   r5v -> r1v5   [color=red];
    267   r3v3 -> r1v8  [color=red];
    268   ltc -> r28v   [color=red];
    269   cells -> r28v [color=invis];
    270 
    271   rtcbat -> rtc [arrowhead=none,color=red];
    272   
    273   stby -> lpc [color=red,constraint=false];
    274   stby -> kmcu [color=red,constraint=false];
    275 
    276   // soc/som signals, external ports
    277   usb1 -> hub [arrowhead=none];
    278   hub -> pusb1 [arrowhead=none];
    279   hub -> pusb2 [arrowhead=none];
    280   usb0 -> pusb3 [arrowhead=none];
    281   hdmi -> phdmi [arrowhead=none];
    282 
    283   sd2 -> lshift -> psdcard  [arrowhead=none];
    284   ethmac -> ethphy -> peth [arrowhead=none];
    285   sai -> adac  [arrowhead=none];
    286   
    287   ddrc -> ram [arrowhead=none];
    288   sd1 -> emmc [arrowhead=none];
    289 
    290   r5v -> s5v [color=red constraint=false];
    291 
    292   // internal ports
    293   pcie0 -> impcie [arrowhead=none];
    294   pcie1 -> im2 [arrowhead=none];
    295   uart0 -> iuart0 [arrowhead=none];
    296   uart1 -> iuart1 [arrowhead=none];
    297   hub -> iusb1 [arrowhead=none];
    298   hub -> iusb0 [arrowhead=none];
    299 
    300   iusb0 -> kmcu [arrowhead=none];
    301   iusb1 -> tmcu [arrowhead=none];
    302 
    303   // trackball internal signals
    304 
    305   tmcu -> ti2c -> tsens [arrowhead=none];
    306   tmcu -> tgpio -> tkeys [arrowhead=none];
    307 
    308   // keyboard internal signals
    309   
    310   kmcu -> ki2c -> oled [arrowhead=none];
    311   kmcu -> kgpio -> kkeys [arrowhead=none];
    312   kmcu -> kuart -> lpc [arrowhead=none];
    313   
    314   i2c1 -> rtc [arrowhead=none];
    315   i2c0 -> adac [arrowhead=none];
    316 
    317   // uart2 -> lpc;
    318   spi1 -> lpc [arrowhead=none,constraint=false];
    319 
    320   // screen assembly
    321   
    322   dsi -> dsi2edp;
    323   dsi2edp -> panel;
    324   panel -> backlight [arrowhead=none];
    325   pwm -> backlight [constraint=false];
    326 
    327   adac -> speakers [arrowhead=none,style=dashed];
    328   adac -> paudio [arrowhead=none,style=dashed,constraint=false];
    329 }