some cleaning

master
Ondřej Hruška 6 years ago
parent fd5684ad86
commit 8b496a5c0c
Signed by: MightyPork
GPG Key ID: 2C5FD5035250423D
  1. 3
      ch.discussion.tex
  2. 2
      ch.hw_functions.tex
  3. 2
      ch.introduction.tex
  4. 2
      ch.summary.tex
  5. 18
      ch.unit.adc.tex
  6. 2
      ch.usb.tex
  7. 3
      document_config.tex
  8. 66
      thesis.acronyms.tex
  9. 3
      thesis.bib
  10. BIN
      thesis.pdf
  11. 4
      thesis.tex

@ -0,0 +1,3 @@
\chapter{Discussion}
\todo[inline]{TODO}

@ -4,7 +4,7 @@ In addition to communication buses, described in \cref{ch:hw_buses}, GEX impleme
\section{Frequency Measurement} \label{sec:theory_fcap}
Applications like motor speed measurement and the reading of a \gls{VCO} or \gls{VCO}-based sensor's output demand a tool capable of measuring frequency. This can be done using a laboratory instrument such as the Agilent 53131A. A low-cost solution can be realized using a timer/counter peripheral of a microcontroller.
Applications like motor speed measurement or the use of sensors with \gls{PWM} output demand a tool capable of measuring frequency (and the duty cycle) of a signal. This can be done using laboratory instruments such as the Agilent 53131A. A low-cost solution can be realized using a timer/counter microcontroller peripheral.
\noindent
Two basic methods to measure frequency exist~\cite{fcap-twotypes}, each with its advantages and drawbacks:

@ -30,7 +30,7 @@ Our project is not meant to end with a tinkering tool that will be produced in a
\end{figure}
\fi
Building on the experience with earlier embedded projects, an STM32 microcontroller shall be used. Those are \armcm devices with a wide range of hardware peripherals that appear be a good fit for the project. Low-cost evaluation boards are widely available that could be used as a hardware platform instead of developing a custom \gls{PCB}. STM32 microcontrollers are relatively cheap and already popular in the embedded hardware community; there is a real possibility of the project gathering a community around it and growing beyond what will be presented in this paper.
Building on the experience with earlier embedded projects, an STM32 microcontroller will be used. Those are \armcm devices with a wide range of hardware peripherals that appear be a good fit for the project. Low-cost evaluation boards are widely available that could be used as a hardware platform instead of developing a custom \gls{PCB}. STM32 microcontrollers are relatively cheap and already popular in the embedded hardware community; there is a real possibility of the project gathering a community around it and growing beyond what will be presented in this paper.
\iffalse
Besides the use of existing development boards, custom \glspl{PCB} will be developed in different form factors. The possibilities of wireless connection should be evaluated. This feature should make GEX useful for instance in mobile robotics or when installed in poorly accessible locations.

@ -1,4 +1,4 @@
\chapter{Conclusion}
\chapter{Summary}
We developed an open source software and hardware platform providing access to low-level hardware buses and circuitry from user applications running on a \gls{PC}. The platform consists of an embedded firmware for the STM32F072 microcontroller, three hardware prototypes (two models of a \gls{GPIO} module, and a wireless gateway), and software libraries in programming languages C and Python. The Python library can be used in MATLAB scripts through the MATLAB/Python integration, or directly in Python, with the SciPy scientific calculations library. The firmware may be used with STM32 Discovery development boards, and can be relatively easily ported to other STM32 \gls{MCU} models.

@ -89,16 +89,16 @@ avg_factor=500
\\
2 & \cname{READ\_CAL\_CONSTANTS}
Read factory calibration constants from the \gls{MCU}'s \gls{ROM}
Read factory calibration constants from the \gls{MCU}'s \gls{ROM}. These are used to calculate real voltage or temperature from the ADC output word. The formulas can be found in Section 13.9 of the STM32F0~reference manual~\cite{f072-rm}.
&
\begin{cmdresp}
\cfield{u16} V$_\mathrm{REF\_INT}$ voltage (raw ADC word)
\cfield{u16} ADC reference voltage (mV) during V$_\mathrm{REF\_INT}$ measurement
\cfield{u16} Temperature sensor voltage in point 1 (raw ADC word)
\cfield{u16} Temperature sensor voltage in point 2 (raw ADC word)
\cfield{u16} Temperature in point 1 (°C)
\cfield{u16} Temperature in point 2 (°C)
\cfield{u16} ADC reference voltage (mV) during temp. sensor calibration
\cfield{u16} VREFINT\_CAL (word)
\cfield{u16}~VREFINT\_CAL\_VDD~(mV)
\cfield{u16} TS\_CAL1 (word)
\cfield{u16} TS\_CAL2 (word)
\cfield{u16} TS\_CAL1\_T (°C)
\cfield{u16} TS\_CAL2\_T (°C)
\cfield{u16} TS\_CAL\_VDD (mV)
\end{cmdresp}
\\
@ -165,7 +165,7 @@ avg_factor=500
\\
26 & \cname{STREAM\_START}
Start a real-time stream of samples
Start a continuous stream of samples
& \\
27 & \cname{STREAM\_STOP}

@ -92,7 +92,7 @@ The \gls{MSC} specification~\cite{usbif-msco} defines multiple \textit{transport
For the mass storage device to be recognized by the host operating system, it must also implement a \textit{command set}. Most mass storage devices use the \textit{\gls{SCSI} Transparent command set}
\footnote{To confirm this assertion, the descriptors of five thumb drives and an external hard disk were analyzed using \verb|lsusb|. All but one device used the SCSI command set, one (the oldest thumb drive) used \textit{SFF-8070i}. A list of possible command sets can be found in~\cite{usbif-msco}}.
Unfortunately, the \gls{SCSI} Transparent command set appears to have been deliberately left unspecified for license or copyright reasons (see discussion in~\cite{usb-tscsi-wtf} and the surrounding thread) and the protocol now used under this name is an industry standard without a clear definition. Some pointers may be found in~\cite{usb-tscsi} and by examining the source code of the USB Device driver library provided by ST Microelectronics.
Unfortunately, the \gls{SCSI} Transparent command set appears to have been deliberately left unspecified for license or copyright reasons (see discussion in~\cite{usb-tscsi-wtf} and the surrounding thread) and the protocol presently used under this name is an industry standard without a clear definition. Some pointers may be found in~\cite{usb-tscsi} and by examining the source code of the USB Device driver library provided by ST Microelectronics.
This command set lets the host read information about the attached storage device, such as its capacity, and check for media presence and readiness to write or detach. This is used, e.g., for the ``Safely Remove'' function, which ensures that all internal buffers have been written to the flash memory.

@ -44,7 +44,8 @@
\usepackage[
style=numeric,
backend=biber
backend=biber,
sorting=none
]{biblatex}
% Uvozovky v češtině

@ -1,6 +1,7 @@
% Buses and peripherals
\newacronym{ADC}{ADC}{Analog/Digital Converter}
\newacronym{DAC}{DAC}{Digital/Analog Converter}
\newacronym{ADC}{ADC}{analog/digital converter}
\newacronym{DAC}{DAC}{digital/analog converter}
\newacronym{DDS}{DDS}{Direct Digital Synthesis}
\newacronym{SPI}{SPI}{Serial Peripheral Interconnect}
\newacronym{USART}{USART}{Universal Synchronous/Asynchronous Receiver/Transmitter}
@ -12,10 +13,8 @@
\newacronym{HART}{HART}{Highway Addressable Remote Transducer}
\newacronym{LIN}{LIN}{Local Interconnect Network}
\newacronym{DALI}{DALI}{Digital Addressable Lighting Interface}
\newacronym{DMA}{DMA}{Direct Memory Access} % ???
\newacronym{mbus}{M-Bus}{Meter Bus}
\newacronym{STEM}{STEM}{Science, Technology, Engineering and Mathematics}
\newacronym{SSH}{SSH}{Secure Shell}
\newacronym{NRZI}{NRZI}{Non Return to Zero Inverted}
\newacronym{MSC}{MSC}{Mass Storage Class}
@ -26,10 +25,8 @@
\newacronym{SCSI}{SCSI}{Small Computer System Interface}
\newacronym{IAD}{IAD}{Interface Association Descriptor}
\newacronym{FAT}{FAT}{File Allocation Table}
\newacronym{FS}{FS}{file system}
\newacronym{IDE}{IDE}{integrated development environment}
\newacronym{LFN}{LFN}{Long File Name}
\newacronym{MBR}{MBR}{master boot record}
\newacronym{MBR}{MBR}{Master Boot Record}
\newacronym{NVIC}{NVIC}{Nested Vectored Interrupt Controller}
\newacronym{GPS}{GPS}{Global Positioning System}
\newacronym{TWI}{TWI}{Two-Wire Interface}
@ -37,10 +34,13 @@
\newacronym{PMBus}{PMBus}{Power Management Bus}
\newacronym{DFU}{DFU}{Device Firmware Update}
\newacronym{CPOL}{CPOL}{clock polarity}
\newacronym{CPHA}{CPHA}{clock phase}
\newacronym{CPOL}{CPOL}{Clock Polarity}
\newacronym{CPHA}{CPHA}{Clock Phase}
% Common names
\newacronym{IDE}{IDE}{integrated development environment}
\newacronym{FS}{FS}{file system}
\newacronym{STEM}{STEM}{science, technology, engineering and mathematics}
\newacronym{RMS}{RMS}{root mean square}
\newacronym{PC}{PC}{personal computer}
\newacronym{PCB}{PCB}{printed circuit board}
@ -53,12 +53,10 @@
\newacronym{OS}{OS}{operating system}
\newacronym{API}{API}{application programming interface}
\newacronym{LED}{LED}{light emitting diode}
\newacronym{MCU}{MCU}{microcontroller unit}
\newacronym{MCO}{MCO}{Microcontroller Clock Output}
\newacronym{RAM}{RAM}{random-access memory}
\newacronym{ROM}{ROM}{read-only memory}
\newacronym{NFC}{NFC}{Near-Field Communication}
\newacronym{TTL}{TTL}{transistor-transistor logic}
% Pin / Config Option names
\newacronym{RTS}{RTS}{Ready To Send}
\newacronym{CTS}{CTS}{Clear To Send}
\newacronym{SCK}{SCK}{Serial Clock}
@ -66,26 +64,33 @@
\newacronym{MISO}{MISO}{Master In, Slave Out}
\newacronym{NSS}{NSS}{Negated Slave Select}
\newacronym{DE}{DE}{Driver Enable}
\newacronym{CSB}{CSB}{Chip Select Bar}
\newacronym{CSB}{CSB}{Chip Select with Bar}
\newacronym{SS}{SS}{Slave Select}
\newacronym{SDA}{SDA}{Serial Data Line}
\newacronym{SCL}{SCL}{Serial Clock Line}
\newacronym{DTR}{DTR}{Data Terminal Ready}
\newacronym{NDIR}{NDIR}{nondispersive infrared}
\newacronym{NFC}{NFC}{near-field communication}
\newacronym{RTC}{RTC}{real-time clock}
\newacronym{GND}{GND}{ground}
\newacronym{TTL}{TTL}{Transistor-Transistor Logic}
\newacronym{NDIR}{NDIR}{nondispersive infrared}
\newacronym{CRC}{CRC}{cyclic redundancy check}
\newacronym{RTC}{RTC}{Real-Time Clock}
\newacronym{TSC}{TSC}{Touch Sensing Controller}
\newacronym{DMA}{DMA}{Direct Memory Access} % ???
\newacronym{VCO}{VCO}{voltage-controlled oscillator}
\newacronym{TCO}{TCO}{temperature-compensated oscillator}
\newacronym{NCO}{NCO}{numerically controlled oscillator}
\newacronym{DC}{DC}{direct current}
\newacronym{SAR}{SAR}{successive approximation register}
\newacronym{AC}{AC}{alternating current}
\newacronym{TSC}{TSC}{Touch Sensing Controller}
\newacronym{ISR}{ISR}{interrupt service routine}
\newacronym{IRQ}{IRQ}{interrupt request}
\newacronym{MCU}{MCU}{microcontroller unit}
\newacronym{RAM}{RAM}{random-access memory}
\newacronym{ROM}{ROM}{read-only memory}
\newacronym{OOK}{OOK}{on-off keying}
\newacronym{FSK}{FSK}{frequency-shift keying}
@ -93,9 +98,30 @@
\newacronym{MSK}{MSK}{minimum-shift keying}
\newacronym{GMSK}{GMSK}{Gaussian minimum-shift keying}
\newacronym{BFSK}{BFSK}{binary frequency-shift keying}
\newacronym{GSM}{GSM}{Global System for Mobile communications}
\newacronym{SCCB}{SCCB}{Serial Camera Control Bus}
\glsunset{UART}
\newacronym{GSM}{GSM}{Global System for Mobile communications}
% --- pre-defined (not in text) ---
\glsunset{UART} % introduced together with USART
% those are used after introducing CDC/ACM, so their meaning is already clear
\glsunset{CDC}
\glsunset{ACM}
\glsunset{SCSI} % used only in one place and looks wrong
% obvious
\glsunset{AC}
%\glsunset{TTL}
%\glsunset{GND}
%\glsunset{API}
%\glsunset{LED}
\glsunset{DC}
%\glsunset{PC}
%\glsunset{OS}
%\glsunset{GPS}
\glsunset{GSM} % mentioned only once
%\glsunset{RAM}
%\glsunset{ROM}

@ -529,8 +529,7 @@
year={2008},
pages={1-70},
keywords={IEEE standards;floating point arithmetic;programming;IEEE standard;arithmetic formats;computer programming;decimal floating-point arithmetic;754-2008;NaN;arithmetic;binary;computer;decimal;exponent;floating-point;format;interchange;number;rounding;significand;subnormal},
doi={10.1109/IEEESTD.2008.4610935},
month={Aug},
doi={10.1109/IEEESTD.2008.4610935}
}

Binary file not shown.

@ -46,8 +46,10 @@
\input{ch.pc_software}
\part{Results}
\input{ch.conclusion}
\input{ch.discussion}
\input{ch.summary}
\newpage
\printbibliography
\input{thesis.appendices}

Loading…
Cancel
Save