From 30a5e29e4d65bbb764cc8a11156a7c2c460dda39 Mon Sep 17 00:00:00 2001
From: Pacien TRAN-GIRARD
Date: Tue, 17 Jun 2014 01:34:50 +0200
Subject: Update report

---
 report/project.tex | 356 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 342 insertions(+), 14 deletions(-)

(limited to 'report/project.tex')

diff --git a/report/project.tex b/report/project.tex
index e7673b4..99e4c31 100644
--- a/report/project.tex
+++ b/report/project.tex
@@ -65,11 +65,13 @@ Le module de commande prendra en compte les entrées des paramètres
 utilisateurs, via les interrupteurs, et des paramètres environnementaux, via les
 capteurs de bruit et de température connectés aux ports GPIO.
 
-\begin{figure}[h]
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/commande-interrupteurs-legende}
 	\caption{Actions des interrupteurs de la carte DE2}
+\end{figure}
 
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-commande-io}
 	\caption{Entrées/sorties du sous-système \og{}commande\fg{}}
@@ -79,7 +81,7 @@ Ce module a été décomposé en deux sous-modules semi-indépendants, l'un dest
 contrôler l'alarme, et l'autre le ventilateur, ce dernier étant désactivé
 lorsque l'alarme est déclenchée.
 
-\begin{figure}[h]
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-commande-logic}
 	\caption{Schéma bloc du sous-système \og{}commande\fg{}}
@@ -147,7 +149,7 @@ Le circuit correspondant est ainsi celui de la figure ~\ref{fig:alarm-logic}.
 	\caption{Entrées/sorties du sous-sous-système \og{}ventilation\fg{}}
 
 	\centering
-		\includegraphics{resources/schema-fan-logic}
+		\includegraphics[width=\textwidth]{resources/schema-fan-logic}
 	\caption{Schéma du sous-sous-système \og{}ventilation\fg{}}
 	\label{fig:fan-logic}
 \end{figure}
@@ -189,7 +191,7 @@ caractères.
 
 \subsection{Afficheurs 7-segments}
 
-\begin{figure}[h]
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-display-io}
 	\caption{Entrées/sorties du sous-sous-système \og{}display\fg{}}
@@ -227,7 +229,7 @@ constante binaire 00 a été concaténée en LSB. Le résultat de la conversion
 valeur est ensuite directement affichée sur HEX4.
 Le schéma associé est le ~\ref{fig:speed-indicator-logic}.
 
-\begin{figure}[h]
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-display-speed}
 	\caption{Schéma d'affichage de la vitesse du ventilateur}
@@ -248,7 +250,7 @@ segments en bordure), \og{}ralentit\fg{} à l'aide d'un module clock\_divider.
 Les segments du milieu ont été désactivés.
 Le schéma associé est le ~\ref{fig:speed-useless-logic}.
 
-\begin{figure}[h]
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-display-useless}
 	\caption{Schéma du chenillard}
@@ -272,42 +274,257 @@ message.
 	\caption{Découpage du sous-système \og{}alarme\fg{} en sous-sous-systèmes}
 \end{figure}
 
+\newpage
+
 \section{Detection du niveau sonore}
 
-\subsection{Câblage du microphone}
+\subsection{Câblage du microphone et amplification}
+
+En générant une sinusoïde depuis un téléphone nous observons un signal crête
+crête de $18.8mV$ (figure ~\ref{fig:ampmicsin}).
+Pour amplifier de manière cohérente se micro il aurait fallu mettre une
+résistance variable, permettant de jouer sur la \og{}sensibilité\fg{} du micro.
+
+Apres avoir, calculé un gain théorique sur papier de $-26$, nous nous sommes
+rendu compte que c’était bien trop faible. Afin de trouver la résistance idéale
+nous avons parcourue un jeu de résistance allant de $22k\Omega$ à $560k\Omega$,
+et retenue une résistance de $120k\Omega$ à $1.5k\Omega$ en entrée nous avons
+donc un gain de $-80$.
+ 
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-amplimic}
+	\caption{Schéma de câblage de l'amplificateur du microphone}
+\end{figure}
+
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/amplification-mic}
+	\caption{Amplification d’un signal sinusoïdal}
+	\label{fig:ampmicsin}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/amplification-mic-saturation}
+	\caption{Amplification d’un signal sinusoïdal, en saturation}
+\end{figure}
 
-\subsection{Amplification}
 
 \subsection{Detection de niveau sonore}
 
+\subsubsection{Détection de crête}
+
+En générant une sinusoïde depuis un téléphone nous observons un signal crête
+crête de $18.8mV$.
+Une fois notre signal amplifié nous devons récupérer une composante continue
+afin de pouvoir utiliser celle–ci dans notre Trigger, pour atteindre le basculement.
+Pour récupérer cette composante continue nous avons utilisé un détecteur de crête. 
+
+On nous avait imposé un condo de $330nF$ et un temps de décharge de $0.3s$.
+
+Le calcul effectué afin de trouver la résistance correspondante à l'aide du
+temps de décharge du condensateur est ~\ref{eq:crete}
+
+\begin{equation}
+\begin{split}
+	&\tau = R \cdot C\\
+	&\iff 0.3 = 330nF \cdot R\\
+	&\iff R = 909090\Omega\\
+	&\iff R = 1M\Omega
+\end{split}
+\end{equation}
+\label{eq:crete}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-cretemic}
+	\caption{Schéma de câblage du détecteur de crête du microphone}
+\end{figure}
+
+
+
+\subsubsection{Détection de niveau}
+
+Un comparateur à hystérésis a été utilisé pour la détection du niveau sonore.
+
+Le but était de détecter le niveau sonore suivant le principe suivant :
+
+\begin{itemize}
+  \item Entrée $ >2V \rightarrow $ Sortie $4V$ 
+  \item Entrée $ <1V \rightarrow $ Sortie $0V$
+\end{itemize}
+
+Il a fallu trouver Vref, il suffit juste de remplacer une de nos deux expression
+par le jeu de valeur correspondant on trouve ainsi $V_{ref}=1.6V$.
+Un simple pont diviseur de tension permet d’atteindre ce $V_{ref}$.
+
+\begin{equation}
+\begin{split}
+	V^+ &= \dfrac{ \dfrac{V_{in}}{R_3} + \dfrac{V_{out}}{R_4} }{ \dfrac{1}{R_3} +
+	\dfrac{1}{R_4} }\\
+	&= \dfrac{V_{in} \cdot R_4}{R_3+R_4} + \dfrac{V_{out} \cdot R_3}{R_3+R_4}\\
+	&= V_{ref}
+\end{split}
+\end{equation}
+
+Deux cas possibles de basculement à $1V$ et à $2V$.
+
+\begin{equation}
+	\begin{cases}
+		V_{ref} = \dfrac{1 \cdot R_4}{R_3+R_4} + \dfrac{4 \cdot R_3}{R_3+R_4}\\
+		V_{ref} = \dfrac{2 \cdot R_4}{R_3+R_4} + \dfrac{0 \cdot R_3}{R_3+R_4}
+	\end{cases}
+\end{equation}
+
+\begin{equation}
+	\begin{split}
+		\iff & \dfrac{2 \cdot R_4}{R_3 + R_4} = \dfrac{R_4 + 4 \cdot R_3}{R_3+R_4}\\
+		\iff & R_4=4 \cdot R_3
+	\end{split}
+\end{equation}
+
+
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/trigger-xy}
+	\caption{Visualisation XY du trigger}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/triggersortiehautparleur}
+	\caption{Visualisation du basculement sur un signal sinusoïdal (GBF)}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/trigger}
+	\caption{Visualisation du basculement sur un signal sinusoïdal (GBF) 2}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-trigmic}
+	\caption{Schéma de câblage du trigger du microphone}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5,angle=90]{resources/aschema-mic}
+	\caption{Schéma global de détection sonore}
+\end{figure}
+
+
+
+
+\newpage
 
 \section{Génération du son}
 
+Le son strident de l'alarme est généré numériquement sur le FPGA puis convertit
+en signal analogique via le CODEC.
+
 \subsection{Horloge du CODEC}
 
-\begin{figure}[h]
+Pour fonctionner, le CODEC de la carte nécessite un signal de référence
+$xti\_mclk\_a$, auquel s'appliquent plusieurs contraintes temporelles : un état
+bas ou haut doit avoir une durée d'au minimum 18 ns, et un cycle d'horloge 54 ns.
+Ainsi, un module $codec\_clock$ a été créé afin de générer ce signal.
+
+Celui-ci utilise un composant clock\_divider afin de générer un signal d'horloge
+de période 60 ns, soit une fréquence de 16.6 MHz avec un état haut et un état
+bas de 30 ns, répondant aux critères.
+
+Une seconde horloge de référence $xti\_mclk\_b$ avec une fréquence de 10 MHz a
+été aussi créée pour la génération d'un second son strident.
+
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-codecclock-io}
 	\caption{Entrées/sorties du module \og{}codec\_clock\fg{}}
 \end{figure}
 
-\begin{figure}[h]
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/schema-codecclock-logic}
 	\caption{Schéma du module \og{}codec\_clock\fg{}}
 \end{figure}
 
-\begin{figure}[h]
+Le premier signal de référence $xti\_mclk\_a$ a été visualisé à l'oscilloscope
+pour validation (figure ~\ref{fig:capture-xtimclk-valid}). Il a été constaté que
+le signal correspondait aux attentes (fréquences et durée des états hauts et
+bas).
+
+\begin{figure}[p]
 	\centering
 		\includegraphics{resources/capture-xtimclk}
-	\caption{ \og{}codec\_clock\fg{}}
+	\caption{Observation du signal d'horloge généré xti\_mclk\_a}
+	\label{fig:capture-xtimclk-valid}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-soundgene-config}
+	\caption{Schéma de configuration du codec dans \og{}sound\_gene\fg{}}
+\end{figure}
+
+\subsection{Génération du son strident}
+
+La génération du son strident s'effectue numériquement à l'aide d'une fonction
+tabulée dans le sous-système $sound\_gene$.
+
+Pour ce faire, un module $dds\_sinus$ a été utilisé en conjonction avec un
+diviseur d'horloge afin de produire un signal ayant une fréquence audible.
+
+Sur ce projet, les horloges de référence $xti\_mclk\_a$ et $xti\_mclk\_b$ sont
+utilisées alternativement grâce à un multiplexeur, une bascule et un diviseur
+d'horloge, visibles sur la figure ~\ref{fig:schema-soundgene-gen}.
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-soundgene-io}
+	\caption{Entrées/sorties du module \og{}sound\_gene\fg{}}
 \end{figure}
 
-\subsection{Génération du son}
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-soundgene-gen}
+	\caption{Schéma de génération du son strident}
+	\label{fig:schema-soundgene-gen}
+\end{figure}
 
+\newpage
 
 \section{Sortie vers le haut-parleur}
 
+Calcul de la puissance nécessaire pour que le haut parleur fonctionne.
+
+\begin{equation}
+\begin{split}
+	& P = U \cdot I\\
+	\iff & 0.5 = 8\Omega \cdot I^2\\
+	\iff & I = 250mA
+\end{split}
+\end{equation}
+
+Ce courant est trop grand pour être délivrer par la carte, de plus celle-ci
+délivre une tension de $3.3V_{cc}$ alors que nous désirons limiter le haut
+parleur à $1V{cc}$.
+Nous allons donc utiliser des transistors afin de pouvoir fournir le courant
+nécessaire.
+
+Nous avons utilisé un AOP de gain $1/3$ afin d’atteindre les $1V_{cc}$ que nous
+désirons.
+
+\begin{figure}[h]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-shp}
+	\caption{Schéma de câblage de sortie vers le H-P}
+\end{figure}
+
 
 
 \chapter{Sous-système \og{}ventilation\fg{}}
@@ -319,18 +536,129 @@ message.
 	sous-sous-systèmes}
 \end{figure}
 
+\newpage
 
 \section{Détection de la température}
 
-\subsection{Câblage du détecteur}
+\subsection{Câblage du détecteur et amplification}
+
+Dans un premier temps nous avons dus amplifier le signal en sortie du capteur
+analogique LM35 (capteur température), afin de rendre celui-ci
+exploitable. C’est un ampli non inverseur car les températures sont uniquement
+positives et c’est avec des tensions positives que nous avons désiré travailler.
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-amplitemp}
+	\caption{Schéma de câblage du capteur de température}
+\end{figure}
+
+Une fois notre signal amplifié nous pouvons désormais travailler dessus. 
 
 \subsection{Detection de niveau de température}
 
+Pour éviter les oscillations lorsque notre température ne varie que très peu nous avons utilisé un trigger à hystérésis.
+
+
+\begin{equation}
+\begin{split}
+	V^+ &= \dfrac{ \dfrac{V_{in}}{R_3} + \dfrac{V_{out}}{R_4} }{ \dfrac{1}{R_3} +
+	\dfrac{1}{R_4} }\\
+	&= \dfrac{V_{in} \cdot R_4}{R_3+R_4} + \dfrac{V_{out} \cdot R_3}{R_3+R_4}\\
+	&= V_{ref}
+\end{split}
+\end{equation}
+
+Deux cas possibles de basculement à $28.4\,^{\circ}{C}$ et $32\,^{\circ}{C}$,
+soit $2.9V$ et à $3.3V$, avec comme sorties possibles $0V$ et $4V$.
+
+\begin{equation}
+	\begin{cases}
+		V_{ref} = \dfrac{2.9 \cdot R_4}{R_3+R_4} + \dfrac{4 \cdot R_3}{R_3+R_4}\\
+		V_{ref} = \dfrac{3.3 \cdot R_4}{R_3+R_4} + \dfrac{0 \cdot R_3}{R_3+R_4}
+	\end{cases}
+\end{equation}
+
+\begin{align*}
+	2.9 \cdot R_4 + 4 \cdot R_3 &= 3.3 \cdot R_4\\
+	4 \cdot R_3 &= 0.4 \cdot R_3\\
+	R_3 &= 0.1 \cdot R_4
+\end{align*}
+
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-temp}
+	\caption{Schéma global de câblage du capteur de température}
+\end{figure}
+
+
+
+\newpage
 
 \section{PWM (Pulse Width Modulation)}
 
+La commande numérique de la vitesse du ventilateur repose sur le principe de la
+PWM ou modulation de largeur d'impulsion, implémentée dans le sous-système
+\og{}pwm\fg{}.
+
+La vitesse du ventilateur dépend du rapport de la durée d'impulsion sur la durée
+d'une période fixe.
+
+Ainsi, pour créer les quatre vitesses du ventilateur (0\%, 25\%, 50\% et
+75\%), il suffit de créer quatre constantes ayant un rapport cyclique avec une
+période de révolution fixe associé.
+Alors qu'un multiplexeur permet le choix de la constante de rapport en fonction
+de la vitesse souhaitée, un comparateur combiné avec un compteur génère
+l'impulsion de sortie de rapport correspondant.
+
+\begin{figure}[p]
+	\centering
+		\includegraphics{resources/schema-pwm-io}
+	\caption{Entrées/sorties du module \og{}pwm\fg{}}
+\end{figure}
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[width=\textwidth]{resources/schema-pwm-logic}
+	\caption{Schéma du module \og{}pwm\fg{}}
+\end{figure}
+
+\newpage
 
 \section{Commande du ventilateur}
 
+Le ventilateur nécessite une autre alimentation que celle du FPGA qui génère que
+du $3V$ avec une intensité trop faible pour le ventilo nous utilisons donc un
+transistor.
+
+Calculons la résistance interne du ventilateur sachant qu’il dissipe $1W$ en
+$12V$.
+
+\begin{align*}
+	I &= 0.833333\\
+	P &= U \cdot I\\
+	I &= \dfrac{1}{12}\\
+	\newline
+	R &= \dfrac{P}{I^2}\\
+	R &= \dfrac{1}{\left(\dfrac{1}{12}\right)^2}\\
+	R &= 144\Omega
+\end{align*}
+
+Lorsque le transistor est passant :
 
+\begin{align*}
+	I_{bsat} &= 6.96 \cdot 10^{-4} A\\
+	R &= \dfrac{3-0.6}{I_{bsat}}\\
+	R &= \dfrac{2.4}{6.96 \cdot 10^{-4}}\\
+	R &= 3448\Omega
+\end{align*}
+
+On mettra alors une résistance de $3.3k\Omega$.
+
+\begin{figure}[p]
+	\centering
+		\includegraphics[scale=0.5]{resources/aschema-vent}
+	\caption{Schéma de câblage du transistor de contrôle du ventilateur}
+\end{figure}
 
-- 
cgit v1.2.3

