system-diagram.dot 9.8 KB

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