From The Compiler, 5 Years ago, written in LaTeX.
Embed
  1. \documentclass[a4paper,12pt]{scrartcl}
  2. \usepackage[utf8]{inputenc}
  3. \usepackage[T1]{fontenc}
  4. \usepackage{cmbright}
  5. \usepackage[left=1cm]{geometry}
  6.  
  7. \usepackage{tikz}
  8. \usetikzlibrary{matrix}
  9. \usetikzlibrary{arrows}
  10. \usetikzlibrary{calc}
  11. \usetikzlibrary{shapes.symbols}
  12.  
  13.  
  14. \tikzstyle{block} = [draw,
  15.                     rectangle,
  16.                     thick,
  17.                     minimum width=4.3cm,
  18.                     align=center,
  19.                     rounded corners]
  20. \tikzstyle{outblock} = [block, fill=green!25, draw=green!70!black]
  21. \tikzstyle{ucblock}  = [block, fill=brown!50, draw=brown]
  22.  
  23. \tikzstyle{lin}  = [thick, rounded corners]
  24. \tikzstyle{outc} = [lin, -triangle 45]
  25. \tikzstyle{inc}  = [lin, triangle 45-]
  26. \tikzstyle{ioc}  = [lin, triangle 45-triangle 45]
  27.  
  28. \tikzstyle{vcc} = [-open triangle 90, thick]
  29.  
  30. \begin{document}
  31. \newcommand{\comptxt}[3]{%
  32.     \footnotesize #1 \\
  33.     #2 \\
  34.     \footnotesize #3
  35. }
  36. \newcommand{\vcc}[2]{%
  37.     \coordinate (arrowpeak-#1) at ($(#1.north) + (-3\hpitch,5mm)$);
  38.     \draw [vcc]
  39.         ($(#1.north) + (-3\hpitch,0)$)
  40.         -- node [right, pos=1.2] {\llabel{#2}}
  41.        (arrowpeak-#1);
  42. }
  43. \newcommand{\vccalt}[2]{%
  44.     \draw [vcc]
  45.         ($(#1.north) + (3\hpitch,0)$)
  46.         -- node [right, pos=1.2] {\llabel{#2}}
  47.        ($(#1.north) + (3\hpitch,5mm)$);
  48. }
  49.  
  50. \newcommand{\llabel}[1]{\scriptsize#1}
  51. \newcommand{\IIC}{I$^2$C}
  52. \newlength{\hpitch}
  53. \setlength{\hpitch}{6mm}
  54. \newlength{\vpitch}
  55. \setlength{\vpitch}{3mm}
  56.  
  57. \begin{tikzpicture}
  58.     %%% Blocks %%%
  59.     \matrix [row sep=1cm, column sep=1.5cm] {
  60.        \node[outblock] (bat)   {\comptxt{Power Supply}{3V Lithium Battery}{}}; &
  61.        &
  62.        \node[block]    (boost) {\comptxt{3.3V Boostconverter}{TPS61025}{}}; \\
  63.         %%%%%%%%%%%%%%%
  64.         \node[block]    (ntx)   {\comptxt{434\,MHz TX}{NTX2 433\,MHz}{Or RFM-228 (SPI)}}; &
  65.        &
  66.        \node[block]    (osc)   {\comptxt{Oscillator}{9.216\,MHz Crystal}{}}; \\
  67.         %%%%%%%%%%%%%%%
  68.         \node[block]    (xbee)  {\comptxt{868\,MHz TX/RX}{XBee 868\,MHz}{}}; &
  69.        &
  70.        \node[block]    (swi)   {\comptxt{silicon switch}{TS5A5624}{disable \IIC{}}}; \\
  71.         %%%%%%%%%%%%%%%
  72.         \node[block]    (flash) {\comptxt{256\,Mbit flash}{S25FL256SAGNFI001}{}}; &
  73.        \node[ucblock]  (uc)    {\comptxt{Microcontroller}{ATmega1281}{}}; &
  74.        \node[block]    (mux)   {\comptxt{\IIC{} Mux/Conv.}{PCA9540}{}}; \\
  75.         %%%%%%%%%%%%%%%
  76.         \node[outblock] (beep)  {\comptxt{Alarm}{Beeper}{+ Driver}}; &
  77.        &
  78.        \node[block]    (9dof)  {\comptxt{Motion Sensors}{9DOF-Board}{}}; \\
  79.         %%%%%%%%%%%%%%%
  80.         \node[block]    (gps)   {\comptxt{GPS RX}{MAX-6Q}{}}; &
  81.        &
  82.        \node[block]    (temp)  {\comptxt{Temp./Hum.}{SHT25}{}}; \\
  83.         %%%%%%%%%%%%%%%
  84.         \node[block]    (cfg)   {\comptxt{config memory}{4K EEPROM}{}}; &
  85.        &
  86.        \node[outblock] (temp2) {\comptxt{Temp./Hum.}{SHT25}{}}; \\
  87.         %%%%%%%%%%%%%%%
  88.         \node[block]    (inout) {\comptxt{Input/Output Debug}{LEDs + DIP-switches}{}}; &
  89.        &
  90.        \node[block]    (press) {\comptxt{pressure sensor}{SSCMNNN015PA2A3}{}}; \\
  91.    };
  92.  
  93.     %%% Lines %%%
  94.     %% Left side to uC
  95.     % Battery - Boost converter
  96.     \draw [outc]
  97.         ($(bat.east) + (0,\vpitch)$)
  98.         -- node [above] {\llabel{U$_{bat}$}}
  99.         ($(boost.west) + (0, \vpitch)$);
  100.     % NTX2 - uC
  101.     \draw [inc]
  102.         (ntx)
  103.         -| node [above, near start] {\llabel{PWM 3.3V}}
  104.         (uc.north);
  105.     % XBee - uC
  106.     \draw [ioc]
  107.         (xbee)
  108.         -| node [above, near start] {\llabel{UART 3.3V}}
  109.         ($(uc.north) - (\hpitch,0)$);
  110.     % Flash - uC
  111.     \draw [ioc]
  112.         (flash)
  113.         -- node [above=2pt] {\llabel{SPI 3.3V}}
  114.         (uc.west);
  115.     % Beeper - uC
  116.     \draw [ioc]
  117.         (beep)
  118.         -| node [above, near start] {\llabel{\IIC{} 3.3V}}
  119.         ($(uc.south) - (1\hpitch,0)$);
  120.     % GPS - uC (UART)
  121.     \draw [ioc]
  122.         ($(gps.east) + (0,\vpitch)$)
  123.         -| node [above, near start] {\llabel{UART 3.3V}}
  124.         ($(uc.south) + (0\hpitch,0)$);
  125.     % GPS - uC (I/O)
  126.     \draw [outc]
  127.         ($(gps.east) - (0,\vpitch)$)
  128.         -| node [below, near start] {\llabel{I/O 3.3V}}
  129.         ($(uc.south) + (1\hpitch,0)$);
  130.     % GPS - config memory
  131.     \draw [ioc]
  132.         (gps)
  133.         -- node [right] {\llabel{\IIC{} 3.3V}}
  134.         (cfg);
  135.     % I/O Debug - uC
  136.     \draw [ioc]
  137.         (inout)
  138.         -| node [above, near start] {\llabel{I/O 3.3V}}
  139.         ($(uc.south) + (2\hpitch,0)$);
  140.  
  141.     %% Right side - uC
  142.     % Boost to uC
  143.     \draw [ioc]
  144.         ($(boost.west) - (0,\vpitch)$)
  145.         -| node [below, near start] {\llabel{I/O 3.3V}}
  146.         ($(uc.north) + (1\hpitch,0)$);
  147.     % Oscillator - uC
  148.     \draw [outc]
  149.         (osc)
  150.         -| ($(uc.north) + (2\hpitch,0)$);
  151.     % silicon switch - uC
  152.     \draw [ioc]
  153.         (swi)
  154.         -| node [above, near start] {\llabel{I/O 3.3V}}
  155.         ($(uc.north) + (3\hpitch,0)$);
  156.  
  157.     %% I2C bus
  158.     \draw [ioc]
  159.         (mux)
  160.         -- (uc.east);
  161.     \coordinate (i2c1) at ($(uc.east)!0.5!(mux.west)$);
  162.     \coordinate (i2c2) at (i2c1 |- 9dof);
  163.     \draw [outc] (i2c1)
  164.         -- (i2c2)
  165.         -- (9dof);
  166.     \draw [outc] (i2c2)
  167.         |- node [left, very near start] {\llabel{\IIC{} 3.3V}}
  168.         (press);
  169.  
  170.     %% SHT25 to mux/conv
  171.     \draw[inc]
  172.         ($(mux.east) - (0,\vpitch)$)
  173.         -- ($(mux.east) + (\hpitch,-\vpitch)$)
  174.         |- node [left, very near start] {\llabel{\IIC{} 3.3V}}
  175.        (temp);
  176.    \draw [inc]
  177.        ($(mux.east) + (0,\vpitch)$)
  178.        -- ($(mux.east) + (2\hpitch,\vpitch)$)
  179.        |- node [auto] {\llabel{\IIC{} 3.3V}}
  180.         (temp2);
  181.  
  182.     %% Serial port
  183.     \coordinate (serialend) at ($(xbee.east) + (1.5,-8mm)$);
  184.     \coordinate (xbeetmp) at ($(uc.north) - (\hpitch,0)$);
  185.     \coordinate (serialstart) at (xbeetmp |- serialend);
  186.     \draw ($(serialend) - (0.7mm,0)$) circle (0.7mm);
  187.     \draw[lin]
  188.         (serialstart)
  189.         -- node [above] {\llabel{SERIAL}}
  190.         (serialend);
  191.  
  192.     %%% Power supplies %%%
  193.     \foreach \dev in {ntx,xbee,flash,gps,cfg,inout,boost,uc}{
  194.        \vcc{\dev}{3.3V}
  195.    }
  196.    \vccalt{swi}{3.3V}
  197.    \foreach \dev in {swi,mux,9dof,temp,temp2,press}{
  198.        \vcc{\dev}{3.3V\_\IIC{}}
  199.    }
  200.  
  201.     %%% Antennas %%%
  202.     \coordinate (antoffset) at ($(ntx.west) + (-7mm,0)$);
  203.     \foreach \dev in {ntx,xbee,gps}{
  204.        \draw[thick]
  205.            (antoffset |- \dev.north)
  206.            -- (antoffset |- arrowpeak-\dev)
  207.            +(-1.5mm,0mm) -- +(0mm,-2.5mm)
  208.            +(1.5mm,0mm) -- +(0mm,-2.5mm)
  209.            -- (antoffset |- \dev)
  210.            -- (\dev.west);
  211.    }
  212.  
  213.     %%% Legend %%%
  214.     \filldraw[draw=green!50!black, fill=green!25, rounded corners]
  215.         ($(cfg.south east) + (5mm,0mm)$)
  216.         rectangle +(8mm,8mm)
  217.         ($(cfg.south east) + (15mm,4mm)$)
  218.         node [right, align=center] {externe \\ Komponenten};
  219. \end{tikzpicture}
  220.  
  221. \end{document}