\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage{caption}
\usepackage{minted}
\usepackage[margin=2cm]{geometry}
\usepackage{circuitikz}
\author{Pierre-Antoine}
\date{\today}
\title{Étude des microcontrolleur}
\hypersetup{
 pdfauthor={Pierre-Antoine},
 pdftitle={Étude des microcontrolleur},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 25.2.2 (Org mode 9.1.13)},
 pdflang={English}}
\begin{document}

\maketitle
\section{Introduction}

\subsection{Prérequis et rappels}

\begin{itemize}
\item logique cablée
\begin{itemize}
\item Circuit séquentiels
\item circuit combinatoire
\end{itemize}
\item très rapide
\item econome en energie
\item complexe à définir
\item figé ou difficillement modifiable
\item inadapté aux taches complexes
\end{itemize}
\subsection{Autre approche : logique programmée}

\begin{itemize}
\item Le programme est stocké et mémoriser dans le systeme
\item Quantum d'information adopté en général : l'octet : 8bit.
\item stocké dans la mémoire morte (ROM) sous la forme d'une série de mots.
\item les données manipulées sont rangés en mémoire vive (RAM).
\end{itemize}

2 \textbf{espaces} sont nécessaires :
\begin{itemize}
\item Programme
\item Données
\end{itemize}
Ces espaces peuvent être disjoint (ex: PIC), ou commun (PC)
\subsection{Organisation interne de petit système}


\begin{itemize}
\item ROM
\item RAM
\item Processeur
\item Entree/Sortie
\end{itemize}
\subsubsection{interconnexion des élements:}

Utilisation des buffers 3 états : \textbf{images}
\begin{center}
\begin{tabular}{rrl}
\hline
ES & E & S\\
\hline
0 & 0 & 0\\
0 & 1 & 1\\
1 & 0 & Z\\
1 & 0 & Z\\
\hline
\end{tabular}
\end{center}
avec \textbf{Z} état à haute impédance.
on a alors une structure de Bus.
\begin{center}
\includegraphics[width=0.7\textwidth]{./systeme.png}
\end{center}

La structure de bus est composé deux trois type de bus:
\begin{itemize}
\item bus d'adresse : désigne une case menu
\item bus de donnée : circuit des données
\item bus de commande (contrôle) , pour séquencer les opération d'échange
\end{itemize}
\subsection{Analyse d'un exemple}

\begin{itemize}
\item identification des éléments
\begin{itemize}
\item U1 : processeur Z80 (CPU) boitier 40 broches
\item U2 : RAM 32 kB
\item U3 : EPROM : Enable Programmable Read Only Memory
\item U4 : PIO :Parallel Input Output
\end{itemize}
\end{itemize}
\section{Le timer et les séries}

Les timers sont nécessaires pour pouvoir mesurer le temps, sans monopoliser le processeur pour ca
\subsection{Fonction des timers:}

\begin{itemize}
\item mesurer la durée d'une impulsion
\item compter des évènements (exemple codeur)
\item Générer une PWM
\item Lancer une fonction périodique
\end{itemize}
\subsection{fonctionnement du timer}

Voir slide du poly
\subsection{Timers du LPC804}

\section{Programmation des machines à états (FSM)}

\subsection{principe général pour \(\mu\) C}

\begin{center}
\includegraphics[width=0.7\textwidth]{./etat.png}
\end{center}


L'enjeu est de conserver et de mettre à jour facilement l'état de la machine en fonction des différentes taches.
\section{Appel de sous-programme, interruption et utilisation de la pile par le micro controlleur.}


-> faire cohabiter des taches différentes:
\begin{itemize}
\item Longue peux prioritaire (affichage LCD ..)
\item Courte péridique et prioritaire ( échantillonage )
\item Rares (liaison série ..)
\end{itemize}

\subsection{Fonctionnement des processeur: le cas du Cortex M0+}

\begin{itemize}
\item faible consommation électrique
\item 56 instructions , 16 registre internes
\item Controlleur d'interruption NVIC
\item Systick timer
\end{itemize}

\url{http://www.infocenter.arm.com}

\subsection{fonctionnement de la CPU : schéma interne.}

\begin{center}
\includegraphics[width=.9\linewidth]{./arm.png}
\end{center}
\subsection{les exceptions}

\begin{itemize}
\item met en pause le programme pour exécuter un programme annexe,
\item Exception matérielle : interruption
\item 32 exception externe possible pour le cortex M0+ .
\end{itemize}
*


\section{I2C et LPC804}

3 protocoles classiques :
\begin{itemize}
\item Serial
\item I2C
\item SPI
\end{itemize}
\begin{longtable}{|l|l|l|}
Serial & SPI & I2C\\
\hline
\endfirsthead
\multicolumn{3}{l}{Continued from previous page} \\
\hline

Serial & SPI & I2C \\

\hline
\endhead
\hline\multicolumn{3}{r}{Continued on next page} \\
\endfoot
\endlastfoot
\hline
Asynchrone & Synchrone & \\
\hline
Pas d'émulation soft \footnotemark & emulation soft & emulation soft\\
point à point & point à point & BUS (adresse pour chaque périphérique I2C)\\
 &  & \\
 &  & \\
\end{longtable}
\footnotetext[1]{nécessité d'une aide physique (timer \ldots{})}

\begin{center}
\includegraphics[width=.9\linewidth]{./i2c.png}
\end{center}}

\subsection{Technologie utilisé pour les bus :}

Les sorties doivent etre à collecteur ouvert (pas de court circuit). La vitesse du bu est limité par la commutation de la résistance,
moins efficace mais plus imple qu'un circuit à état/haute impédance

\subsection{Trame I2C}

cf le poly distribué en cours
\section{CAN et CNA}


\emph{Objectif: interfacer des dispositifs analogique et numérique}

\subsection{Signal analogique / signal numérique}


La numérisation d'un  signal fait intervenir:
\begin{itemize}
\item Un echantilonnage
\item Une quantification
\end{itemize}

attention au théorème de shannon.

Différents formats numérique audio (codage des données avec ou sans pertes sur plus ou moins de bits)

\subsection{Convertisseur Numérique analogique}


\begin{circuitikz}
\draw (0,0) to[R,l=\(R\)] ++(2,0) node(A)\{\(\bullet\)\} (A)node[above]\{\(V_3\)\};
\end{circuitikz}
(A) to[R,l=\(R\)] ++(2,0) node(B)\{\(\bullet\)\} node[above]\{\(V_2\)\}
 (B) to[R,l=\(R\)] ++(2,0) node(C)\{\(\bullet\)\} node[above]\{\(V_1\)\}
 (C) to[R,l=\(R\)] ++(2,0) node(D)\{\(\bullet\)\} node[above]\{\(V_0\)\}
\end{document}
