+The AVR Butterfly offers easy access to four of the ATMega169's ADCs through PORTF. Each ADC is capable of measuring voltages of $0 < V_{\text{adc}} < V_{cc}$ with 10 Bit resolution. For measuring voltages outside this range, some circuitry is required between the input voltage and the ADC input. In addition, it is desirable to provide the ADC with some form of input protection against accidental overloading. Figure \ref{adc_normal.pdf} shows the input circuit which was used for three of the four available ADCs.
+
+\begin{center}
+ \includegraphics[scale=0.50]{figures/adc_normal.pdf}
+ \captionof{figure}{ADC4,6,7 Input} \label{adc_normal.pdf}
+\end{center}
+
+
+For making voltage measurements above $V_{cc}$, a voltage divider allows reduction of the voltage at the ADC. By constructing the voltage divider using a variable resistor, the range of measurable inputs could be manually adjusted.
+
+The diodes shown in Figure \ref{adc_normal.pdf} ensure that the ADC is protected from accidental exposure to voltages outside the acceptable range. In normal operation both diodes are off. If $V_{\text{adc}}$ were to become greater than the reference point $V_{cc}$, current would flow between the ADC input and the reference point, acting to reduce $V_{\text{adc}}$ until it reached $V_{cc}$. Similarly, if $V_{\text{adc}}$ fell below ground, current would flow from ground to the ADC input, acting to increase $V_{\text{adc}}$ until it reached ground.
+
+The voltage at the ADC input can be related to the input of the voltage divider using Kirchoff's Voltage Law and Ohm's Law:
+\begin{align*}
+ V_{\text{adc}} &= \frac{R_1}{R_1 + R_2} V_{\text{in}}
+\end{align*}
+Where $V_{\text{in}}$ is the voltage at the input of the circuit, $R_1$ is a fixed resistor, and $R_2$ is variable resistor.
+
+$V_{\text{in}}$ can be therefore be determined from the registered ADC counts by:
+\begin{align*}
+ V_{\text{in}} &= \left(\frac{\text{ADC counts}}{2^{10}}\right) \times \frac{R_1 + R_2}{R_1} V_{cc}
+\end{align*}
+
+\subsubsection*{Differential ADC Input}
+
+During the testing of the TCS experimental apparatus, it became desirable to measure the emission current of the electron gun. The electrometer used for this current measurement was capable of producing an analogue output in the range of $0-1V$. However, the negative terminal of this output was not at ground potential, but rather at the same terminal as the negative input terminal. Directly connecting the electrometer output to one of the ADC inputs discussed above would create a short circuit between the initial energy power supply, and ground (refer to Figures \ref{} and \ref{}). Therefore, it was decided to add a differential stage before the input of one of the ADCs.
+
+Figure \ref{adc5.pdf} shows the modification made to the input for ADC5 on the AVR Butterfly. The original voltage divider and input protection discussed above are still present. The modifications include the addition of an instrumentation amplifier, and low pass filters.
+
+\begin{center}
+ \includegraphics[scale=0.70]{figures/adc5}
+ \captionof{figure}{Differential Input stage for ADC5}
+ \label{adc5.pdf}
+\end{center}
+
+asdfa
+The instrumentation amplifier consists of two stages of operational amplifiers (op-amps); input buffers, and a difference amplifier.
+The difference amplifier can be shown using the ideal op-amp model to produce an output voltage proportional to the difference between its inputs:
+
+\begin{align*}
+ V_{out} &= \frac{R_2}{R_1} \left(V_{2} - V_{1}\right)
+\end{align*}
+
+The two op-amps at the inputs to the differential amplifier are unity gain buffers. Although the outputs of the op amps are equal to their inputs, current is prevented from flowing from the circuit under measurement, and is instead drawn from the op amp power supply.
+
+In principle, two ADC channels could be used to record the positive and negative outputs of the electrometer seperately, with differencing done in software. However this would require modification to the output cable of the electrometer, which may prove inconvenient for future uses.It was decided that the modification of the cable and added complexity of the software required would be more time consuming than differencing the two inputs using the hardware methods described above.
+
+The low pass filters were added to the inputs of ADC5 after it was found that an unacceptable level of AC noise was being output by the electrometer. The level of noise was too high to be filtered in software, for reasons that will be discussed in Appendix D.
+
+\subsection*{Temperature Measurement}
+
+The AVR Butterfly features an onboard thermistor connected to ADC0. Reading ADC0 and applying the formula given in the AVR Butterfly User's Guide \cite{} results in a temperature measurement. This was useful in establishing a link between the changing chamber pressure and the temperature of the laboratory (see Appendix C).
+
+\subsection*{Power Supplies}
+Due to the presence of both analogue and digital electronics in the DAC/ADC box, three seperate supply voltages were required:
+\begin{enumerate}
+ \item Digital logic in the range $3 \to 4.5$V
+ \item Positive op-amp supply in the range $10 \to 15$V
+ \item Negative op-amp supply in the range $-10 \to -15$V
+\end{enumerate}
+
+Circuitry was designed which allowed two seperate single pole power supplies to be used for Digital logic and the op-amps. A dual 0-30V DC power supply has been used for both digital and analogue circuitry.
+
+\subsubsection*{Logic Power Supply}
+The AVR Butterfly runs off $3V < V_{cc} < 4.5V$ DC. Since $V_{cc}$ was also used as the reference voltage for the ADCs and DAC output, it was desirable that $V_{cc}$ be kept constant, despite the absolute level of the power supply. A $3.3V$ voltage regulator has been used for this purpose. The capacitor further smooths the output by shorting high frequency fluctuations to ground.
+
+When the DAC/ADC box was first constructed $V_{cc}$ was supplied by three $1.5V$ batteries. However, due to higher than expected power usage, and the unreliability of the voltage regulator as the input voltage fell below $4V$, inputs for an external power supply were later added.
+
+\begin{center}
+ \includegraphics[scale=0.70]{figures/logic_ps}
+ \captionof{figure}{Logic Power Supply}
+ \label{logic_ps.pdf}
+\end{center}
+
+\subsubsection*{Op-amp Power Supply}
+The DAC/ADC box circuitry involves several operational amplifiers (LF356), which require dual $\pm 10-15V$ supplies. As there were no dual $\pm$ power supplies available, a single $30V$ power supply was used, with the circuit shown in figure \ref{} used to produce $\pm 15V$ relative to ground.
+
+The buffer amplifier ensures that negligable current can flow from the power supply into the logic and ADC circuits, whilst the capacitor removes high frequency fluctuations of the power supply relative to ground.
+
+\subsection*{DAC Output}
+A commercial DAC board was used to produce the DAC output. The Microchip MCP4922 ET-Mini DAC is controlled by the AVR Butterfly using Motorola's Serial Peripheral Interface (SPI) Bus. The software used to implement SPI between the MCP4922 and the AVR Butterfly is discussed in Appendix D.
+
+The ET-Mini DAC can only be powered off $3V$ to $5V$. Using $V_{cc} = 3.3V$ means that the DAC output cannot exceed $V_{cc} = 3.3V$. For TCS, energies of up to $15eV$ are required, so amplification of the DAC output was clearly necessary. A simple non-inverting amplifier with a manually adjustable gain was used to amplify the DAC output by a factor of three. This output was then used to control a laboratory power supply to produce the full range of initial energies.
+
+\subsection*{RS-232 Communications}
+
+The AVR Butterfly features an onboard USART, which can be used both for programming and communication with the ATMega169 processor. The RS-232 communications requires only three wires; Recieve (RX), Transmit (TX) and a common ground.
+
+The requirement that the AVR Butterfly share a common ground with the controlling computer lead to increased noise through ground loops. This is discussed in more detail in Appendix D.
+
+Although the RS-232 is relatively simple to implement, which makes it ideal for non-proprietry microprocessor applications, most modern computers no longer feature RS-232 COM ports. Although a computer with COM ports was available at CAMSP, due to the extreme unreliability of this computer, it was quickly replaced with a laptop that did not possess COM ports, and a commercial RS-232 to USB converter was used to interface with the laptop.
+
+
+
+\section*{Appendix C - Pressure Monitoring}
+
+The pressure in the chamber was monitored by a ion gauge at low pressure (below $10^{-3}$ mbar), and a pirani gauge at high pressure. The gauge included a flurescent Liquid Crystal Display (LCD). In order to automate monitoring of pressure, a USB webcam was placed in front of the gauge LCD. Software was written using the Python Imaging Library (PIL) to convert the image produced by the webcam into a pressure reading. In this way, the pressure could be recorded as a function of time, independent from other measurements performed using the ADC/DAC control box.
+
+Figures \ref{pressure_a.jpg} to \ref{pressure_c.jpg} show the process by which an image taken with the webcam was converted into a pressure reading. The software first identifies bounding rectangles for each individual digit. These are then further subdivided into 7 segments. If enough pixels in a given segment match the colour LCD segments, then the segment can be identified as activated. The software then creates a string corresponding to the activated segments, and looks up the digit in a dictionary.
+
+\begin{center}
+ \includegraphics[scale=0.50]{figures/pressure_a.jpg}
+ \captionof{figure}{An unprocessed image}
+ \label{pressure_a.jpg}
+\end{center}
+
+\begin{center}
+ \includegraphics[scale=0.50]{figures/pressure_c.jpg}
+ \captionof{figure}{Individual digits identified}
+ \label{pressure_b.jpg}
+\end{center}
+
+\begin{center}
+ \includegraphics[scale=0.50]{figures/pressure_d.jpg}
+ \captionof{figure}{Activated segments (green) for a single digit}
+ \label{pressure_c.jpg}
+\end{center}
+
+\section*{Appendix D - Sources of Error}
+
+GROUND LOOOOOOPS!