first week of revision

This commit is contained in:
Klagarge committed 2024-01-28 12:55:21 +01:00
1 parent 504472e7cc
commit 00b5dfea65
31 files changed
+579 -72

No files matched your search

+15 -15
View File
@@ -1,19 +1,19 @@
# [Bachelor in embedded system](/bachelor/)
<header>
<h1>Yggdrasil</h1>
</header>
Yggdrasil is a collections of notes around IT, OT and other geeks stuff
<br>
<br>
<br>
## [PTR](/bachelor/PTR/)
## [SDi](/bachelor/SDi/)
- [transmission_process.md](/bachelor/SDi/transmission_process.md)
## [Eln](/bachelor/Eln/)
- [AD/DA](/bachelor/Eln/ADDA.md)
## [SEm](/bachelor/SEm/)
- [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md)
- [ASM - Assembleur ARM](/bachelor/SEm/ASM.md)
# [Bachelor in embedded system](/infotro/)
Here notes I take during my bachelor in embedded systems
Mainly some topics:
- [PTR - Programmation Temps Réel](/infotro/PTR/)
- [SDi - Système Distribué](/infotro/SDi/)
- [Eln - Électronique](/infotro/Eln/)
- [SEm - Systèmes Embarqué](/infotro/SEm/)
# [STM32](/STM32/)
Here some note specific about STM32
+5 -8
View File
@@ -1,9 +1,6 @@
* [PTR](/bachelor/PTR)
* [SDi](/bachelor/SDi)
* [Transmission Process](/bachelor/SDi/transmission_process.md)
* [Eln](/bachelor/Eln/)
* [AD/DA](/bachelor/Eln/ADDA.md)
* [SEm](/bachelor/SEm/)
* [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md)
* [ASM - Assembleur ARM](/bachelor/SEm/ASM.md)
* [Bachelor Infotro](/infotro/)
* [PTR - Programmation Temps Réel](/infotro/PTR/)
* [SDi - Systèmes Distribués](/infotro/SDi)
* [Eln - Électronique](/infotro/Eln/)
* [SEm - Systèmes Embarqués](/infotro/SEm/)
* [STM32](/STM32/)
-3
View File
@@ -1,3 +0,0 @@
# Interfaces et convertisseur
- [AD/DA](/bachelor/Eln/ADDA.md)
-18
View File
@@ -1,18 +0,0 @@
# Bachelor in embedded system
## [PTR](/bachelor/PTR/)
## [SDi](/bachelor/SDi/)
- [transmission_process.md](/bachelor/SDi/transmission_process.md)
## [Eln](/bachelor/Eln/)
- [Interfaces et convertisseurs](/bachelor/Eln/README.md#Interfaces-et-convertisseur)
- [AD/DA](/bachelor/Eln/ADDA.md)
## [SEm](/bachelor/SEm/)
- [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md)
- [ASM - Assembleur ARM](/bachelor/SEm/ASM.md)
-4
View File
@@ -1,4 +0,0 @@
# Taille des paquets de bits
[PLA](/bachelor/arm/PLA.md)
[ASM(/bachelor/arm/ASM.md)
+2 -2
View File
@@ -3,7 +3,7 @@ $$
E=mc^2
$$
[transmission_process.md](../bachelor/SDi/transmission_process.md)
[transmission_process.md](../infotro/SDi/transmission_process.md)
## embedding it directly
```mermaid
@@ -26,7 +26,7 @@ Alice <-- Bob: another authentication Response
## load from external files
![kroki-excalidraw](../excalidraw.json)
![kroki-excalidraw](excalidraw.json)
## Wavedrom
```wavedrom
File renamed without changes.
+40 -16
View File
@@ -22,23 +22,11 @@
repo: 'https://git.kb28.ch/Klagarge/Yggdrasil.git',
maxLevel: 3,
coverpage: false,
autoHeader: true,
loadNavbar: true,
loadNavbar: true, // Nav bar on top - was true
subMaxLevel: 3,
auto2top: true,
mergeNavbar: true,
search: {
maxAge: 86400000, // Expiration time, the default one day
paths: [
'/',
'/bachelor',
'/STM32',
],
placeholder: 'Type to search',
noData: 'No Results!',
depth: 5,
hideOtherSidebarContent: false, // whether or not to hide other sidebar content
},
auto2top: true, // was true
mergeNavbar: true, // was true
//search: 'auto',
pagination: {
previousText: {
'/en/': 'PREV',
@@ -79,6 +67,42 @@
}
}
},
darklightTheme: {
siteFont : "Ubuntu",
defaultTheme : 'light',
codeFontFamily : 'Roboto Mono, Monaco, courier, monospace',
bodyFontSize : '17px',
dark: {
accent: '#42b983',
toogleBackground : '#ffffff',
background: '#091a28',
textColor: '#b4b4b4',
codeTextColor : '#ffffff',
codeBackgroundColor : '#0e2233',
borderColor : '#0d2538',
blockQuoteColor : '#858585',
highlightColor : '#d22778',
sidebarSublink : '#b4b4b4',
codeTypeColor : '#ffffff',
coverBackground : 'linear-gradient(to left bottom, hsl(118, 100%, 85%) 0%,hsl(181, 100%, 85%) 100%)',
toogleImage : 'url(https://cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/icons/sun.svg)'
},
light: {
accent: '#42b983',
toogleBackground : '#091a28',
background: '#ffffff',
textColor: '#34495e',
codeTextColor : '#525252',
codeBackgroundColor : '#f8f8f8',
borderColor : 'rgba(0, 0, 0, 0.07)',
blockQuoteColor : '#858585',
highlightColor : '#d22778',
sidebarSublink : '#b4b4b4',
codeTypeColor : '#091a28',
coverBackground : 'linear-gradient(to left bottom, hsl(118, 100%, 85%) 0%,hsl(181, 100%, 85%) 100%)',
toogleImage : 'url(https://cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/icons/moon.svg)'
}
},
};
</script>
<!-- Docsify v4 -->
@@ -1,13 +1,14 @@
# AD/DA
<header>
<h1>AD/DA</h1>
</header>
## AD
# AD
Il existe 4 méthodes principales pour une conversion Analogique vers Digital:
- Parallèle
- Par pesée
- Par comptage
- Sigma-delta
# Conversion D/A
| | + (Avantage) | - (Inconvénient) |
|-------------------------|------------------------|-----------------------------|
| **Parallèle<br>Unaire** | Simplicité<br>Monotone | Taille du circuit ~$2^{n}$ |
@@ -16,11 +17,11 @@ Il existe 4 méthodes principales pour une conversion Analogique vers Digital:
### Parallèle
## Parallèle
![AD Parallèle](parallele.png ':size=200')
### Par comptage
## Par comptage
Un seul switch mais avec une fréquence de commutation très rapide
$$
V_{a} = \frac{t_{on}}{T}\cdot V_{ref}
@@ -28,7 +29,7 @@ $$
![AD par comptage](comptage.png ':size=300')
![Graph AD par comptage](comptage-graph.png ':size=200')
### Par pesée
## Par pesée
Un switch par bit.
![AD par pesée](pesee.png ':size=300')
@@ -46,3 +47,15 @@ Pour un $V_{red} = 1[V]$ on a:
| 1 | 1 | 0 | 0,750 |
| 1 | 1 | 1 | 0,875 |
# DA
## Échantillonneur avec maintien
# Caractéristique de convertisseurs
## Digits et affichage
$$
nBits = Ceiling\left[log_2\cdot \frac{plage}{pas}\right]
$$
+7
View File
@@ -0,0 +1,7 @@
<header>
<h1>Électronique</h1>
</header>
# Convertisseurs
- [AD/DA](/infotro/Eln/ADDA)
- [Sigma / Delta](/infotro/Eln/Sigma-Delta)
+234
View File
@@ -0,0 +1,234 @@
<header>
<h1>Sigma / Delta</h1>
</header>
```drawio
<mxfile host="Electron" modified="2024-01-27T19:14:32.318Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.21 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="_JxO4yykJQa9LzsHiU7_" version="22.1.21" type="device">
<diagram name="Page-1" id="ScnFzgmv18Yx9ZM-e3TZ">
<mxGraphModel dx="450" dy="363" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="z0oqqv8cwlupup-oO1Ry-11" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="160" y="380" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-7" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" vertex="1">
<mxGeometry width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-8" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="15" y="30" as="sourcePoint" />
<mxPoint x="25" y="30" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-9" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="3" y="19.899999999999977" as="sourcePoint" />
<mxPoint x="13" y="19.899999999999977" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-10" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="8" y="25" as="sourcePoint" />
<mxPoint x="8" y="15" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-12" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-7" target="z0oqqv8cwlupup-oO1Ry-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-13" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="280" y="360" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-3" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-13" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-4" value="" style="curved=1;endArrow=none;html=1;rounded=0;endFill=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-13" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="7" y="53" as="sourcePoint" />
<mxPoint x="37" y="33" as="targetPoint" />
<Array as="points">
<mxPoint x="7" y="63" />
<mxPoint x="17" y="63" />
<mxPoint x="27" y="23" />
<mxPoint x="37" y="23" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-14" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="440" y="360" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-5" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-14" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-6" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-14" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="8" y="61" as="sourcePoint" />
<mxPoint x="28" y="21" as="targetPoint" />
<Array as="points">
<mxPoint x="18" y="61" />
<mxPoint x="18" y="41" />
<mxPoint x="18" y="21" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-3" target="z0oqqv8cwlupup-oO1Ry-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-16" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#808080;" parent="1" target="z0oqqv8cwlupup-oO1Ry-7" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="120" y="400" as="sourcePoint" />
<mxPoint x="150.00000000000003" y="395" as="targetPoint" />
<Array as="points">
<mxPoint x="130" y="400" />
<mxPoint x="130" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-5" target="z0oqqv8cwlupup-oO1Ry-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-27" value="" style="group;strokeColor=none;fontColor=#808080;" parent="1" vertex="1" connectable="0">
<mxGeometry x="600" y="480" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-23" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-24" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" source="z0oqqv8cwlupup-oO1Ry-23" target="z0oqqv8cwlupup-oO1Ry-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="60" y="-120" as="sourcePoint" />
<mxPoint x="110" y="-170" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-25" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;A&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-26" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;D&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry x="40" y="40" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-28" value="" style="group;strokeColor=#808080;fontColor=#808080;" parent="1" vertex="1" connectable="0">
<mxGeometry x="600" y="380" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-17" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.804;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.004;entryY=0.68;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" source="z0oqqv8cwlupup-oO1Ry-17" target="z0oqqv8cwlupup-oO1Ry-17" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-10" y="70" as="sourcePoint" />
<mxPoint x="40" y="20" as="targetPoint" />
<Array as="points">
<mxPoint x="10" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-20" value="D" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry y="10" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-22" value="Q" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry x="60" y="10" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-29" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-22" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="660" y="370" as="sourcePoint" />
<mxPoint x="760" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-30" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;startArrow=oval;startFill=1;strokeColor=#808080;" parent="1" target="z0oqqv8cwlupup-oO1Ry-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="720" y="400" as="sourcePoint" />
<mxPoint x="710" y="320" as="targetPoint" />
<Array as="points">
<mxPoint x="720" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-31" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-25" target="z0oqqv8cwlupup-oO1Ry-7" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="330" y="450" as="sourcePoint" />
<mxPoint x="380" y="400" as="targetPoint" />
<Array as="points">
<mxPoint x="180" y="500" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
```
# Principe
Un convertisseur analogique-numérique (AD) ou numérique-analogique (DA) delta-sigma se compose toujours d'un modulateur
delta-sigma produisant un "flux binaire" ou "signal binaire séquentiel" et d'un filtre passe-bas.
Le modulateur peut être mis en œuvre comme un circuit numérique pour un signal numérique ou comme un circuit analogique
pour un signal analogique. De même, le filtre passe-bas peut être analogique pour générer un signal de sortie
analogique ou numérique, réalisé soit par un circuit numérique soit par un algorithme dans un processeur de signal.
Cette structure permet d'explorer le flux binaire et le filtre passe-bas avant d'approfondir l'étude du
modulateur delta-sigma.
## Le flux binaire
Le flux binaire peut être interprété comme un signal digital ou analogique.
Il s'agit d'un signal séquentiel à un bit avec une fréquence d'horloge significativement plus élevée que le débit des
données numériques de l'ADC ou du DAC. Sa caractéristique essentielle est que sa moyenne correspond à la moyenne du
signal d'entrée. Un niveau logique "haut" représente la valeur maximale de sortie, tandis qu'un niveau logique "bas"
représente la valeur minimale de sortie.
- **Sortie analogique:** Le flux binaire est converti par un DA à un bit en un signal analogique.
Les valeurs d'entrée "bas" et "haut" se traduisent respectivement par deux tensions analogiques précises, par exemple,
1V et +1V.
- **Sortie digitale:** Dans le cas d'une sortie digitale, un niveau "haut" (ou "bas") dans le flux binaire représente
la valeur maximale (ou minimale) de la plage de valeurs digitales. Par exemple, dans un système à 8 bits, un niveau
"haut" pourrait correspondre à FF en hexadécimal, tandis qu'un niveau "bas" pourrait correspondre à 00 en hexadécimal.
Un flux binaire similaire existe dans un signal modulé en largeur d‘impulsions (PWM), mais il présente quelques
désavantages par rapport au flux binaire d'un convertisseur delta-sigma, également appelé signal modulé en rapport
d’impulsions (PPM). La transmission en série d'une valeur numérique, telle que la sortie en série d'un ADC conventionnel
par pesée, est quant à elle appelée modulation par codage d'impulsions (PCM).
#
Un convertisseur sigma-delta est un type de convertisseur
analogique-numérique (CAN) qui utilise une boucle de contre-réaction pour
échantillonner et quantifier un signal analogique en un signal numérique.
Le principe de fonctionnement d'un convertisseur sigma-delta peut être
expliqué en plusieurs étapes :
1. Échantillonnage : Tout d'abord, le signal analogique est échantillonné
à une fréquence d'échantillonnage beaucoup plus élevée que la bande
passante du signal. Cette haute fréquence d'échantillonnage permet de
réduire considérablement les effets des distorsions et du bruit dans le
domaine fréquentiel.
2. Quantification : Le signal échantillonné est ensuite quantifié en un
signal numérique à l'aide d'un comparateur qui compare le signal avec une
référence de tension fixe. La sortie du comparateur est une suite de bits
représentant la valeur du signal analogique à chaque instant.
3. Contre-réaction : Le signal quantifié est ensuite utilisé pour régler
un oscillateur numérique qui produit un signal d'erreur. Ce signal
d'erreur est ajouté au signal d'entrée dans la boucle de contre-réaction,
ce qui permet de compenser les erreurs de quantification et de réduire le
bruit dans le signal quantifié.
4. Suréchantillonnage : Le signal numérique produit par le convertisseur
sigma-delta est suréchantillonné à une fréquence beaucoup plus élevée que
la fréquence d'échantillonnage initiale, ce qui permet de réduire encore
davantage les effets du bruit dans le signal.
5. Décimation : Enfin, le signal suréchantillonné est décimé à la
fréquence d'échantillonnage désirée en utilisant un filtre passe-bas
numérique qui élimine les composantes de hautes fréquences indésirables.
Le résultat final est un signal numérique représentant fidèlement le
signal analogique d'origine, avec une faible distorsion et un faible
bruit. La boucle de contre-réaction permet au convertisseur sigma-delta
d'atteindre des performances supérieures à celles des autres types de
convertisseurs analogique-numérique en termes de résolution et de
précision.
$$
SNR = 6,02n + 1,76[dB]
$$
![img.png](snr_by_osr.png)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+151
View File
@@ -0,0 +1,151 @@
<mxfile host="Electron" modified="2024-01-27T19:14:32.318Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.21 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="_JxO4yykJQa9LzsHiU7_" version="22.1.21" type="device">
<diagram name="Page-1" id="ScnFzgmv18Yx9ZM-e3TZ">
<mxGraphModel dx="450" dy="363" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="z0oqqv8cwlupup-oO1Ry-11" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="160" y="380" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-7" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" vertex="1">
<mxGeometry width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-8" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="15" y="30" as="sourcePoint" />
<mxPoint x="25" y="30" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-9" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="3" y="19.899999999999977" as="sourcePoint" />
<mxPoint x="13" y="19.899999999999977" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-10" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="8" y="25" as="sourcePoint" />
<mxPoint x="8" y="15" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-12" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-7" target="z0oqqv8cwlupup-oO1Ry-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-13" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="280" y="360" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-3" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-13" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-4" value="" style="curved=1;endArrow=none;html=1;rounded=0;endFill=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-13" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="7" y="53" as="sourcePoint" />
<mxPoint x="37" y="33" as="targetPoint" />
<Array as="points">
<mxPoint x="7" y="63" />
<mxPoint x="17" y="63" />
<mxPoint x="27" y="23" />
<mxPoint x="37" y="23" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-14" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="440" y="360" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-5" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-14" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-6" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-14" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="8" y="61" as="sourcePoint" />
<mxPoint x="28" y="21" as="targetPoint" />
<Array as="points">
<mxPoint x="18" y="61" />
<mxPoint x="18" y="41" />
<mxPoint x="18" y="21" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-3" target="z0oqqv8cwlupup-oO1Ry-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-16" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#808080;" parent="1" target="z0oqqv8cwlupup-oO1Ry-7" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="120" y="400" as="sourcePoint" />
<mxPoint x="150.00000000000003" y="395" as="targetPoint" />
<Array as="points">
<mxPoint x="130" y="400" />
<mxPoint x="130" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-5" target="z0oqqv8cwlupup-oO1Ry-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-27" value="" style="group;strokeColor=none;fontColor=#808080;" parent="1" vertex="1" connectable="0">
<mxGeometry x="600" y="480" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-23" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-24" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" source="z0oqqv8cwlupup-oO1Ry-23" target="z0oqqv8cwlupup-oO1Ry-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="60" y="-120" as="sourcePoint" />
<mxPoint x="110" y="-170" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-25" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;A&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-26" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;D&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry x="40" y="40" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-28" value="" style="group;strokeColor=#808080;fontColor=#808080;" parent="1" vertex="1" connectable="0">
<mxGeometry x="600" y="380" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-17" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.804;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.004;entryY=0.68;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" source="z0oqqv8cwlupup-oO1Ry-17" target="z0oqqv8cwlupup-oO1Ry-17" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-10" y="70" as="sourcePoint" />
<mxPoint x="40" y="20" as="targetPoint" />
<Array as="points">
<mxPoint x="10" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-20" value="D" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry y="10" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-22" value="Q" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry x="60" y="10" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-29" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-22" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="660" y="370" as="sourcePoint" />
<mxPoint x="760" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-30" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;startArrow=oval;startFill=1;strokeColor=#808080;" parent="1" target="z0oqqv8cwlupup-oO1Ry-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="720" y="400" as="sourcePoint" />
<mxPoint x="710" y="320" as="targetPoint" />
<Array as="points">
<mxPoint x="720" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-31" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-25" target="z0oqqv8cwlupup-oO1Ry-7" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="330" y="450" as="sourcePoint" />
<mxPoint x="380" y="400" as="targetPoint" />
<Array as="points">
<mxPoint x="180" y="500" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

+73
View File
@@ -0,0 +1,73 @@
<header>
<h1>XF</h1>
</header>
# Services
## Reactive
``` plantuml
@startuml
participant MainLand as main
participant Queue as queue
participant Behavior as behavior
participant XF as xf
main -> behavior: push(event)
behavior -> queue: add(event)
xf -> xf: dispatchEvent()
activate xf
xf -> queue : getEvent()
queue --> xf
xf -> behavior: processEvent()
deactivate xf
@enduml
```
## Timeout
``` plantuml
@startuml
participant TimerQueue as tq #cyan
participant Timeout as t #LawnGreen
participant TimeoutManager as tm #cyan
participant EventQueue as eq #cyan
participant MainLand as main #cyan
participant Reactive as r #yellow
r ->> tm: scheduleTimeout(tmid, evid, duration)
activate r #magenta
deactivate r
create t
tm -->> t: <<create>>
tm ->> tq: add(tm) <<synchronized>>
tm ->> tq: tick()
tq ->> t: decrement()
tm ->> tq: tick()
tq ->> t: decrement()
tm ->> eq: pushEvent(tm) <<synchronized>>
tm ->> tq: remove(id) <<synchronized>>
main ->> eq: popEvent() <<synchronized>>
activate main #yellow
eq -->> main: ev
main ->> t: getTarget()
t -->> main: reactive
main ->> r: processEvent(ev)
activate r #magenta
r -->> main
deactivate r
main -->> t !!: <<destroy>>
@enduml
```
## Protection
- Mutex, sémaphore
- éviter les conflits mémoire
+19
View File
@@ -0,0 +1,19 @@
# Bachelor in embedded system
## [PTR - Programmation Temps Réel](/infotro/PTR/)
- [XF](/infotro/PTR/XF.md)
## [SDi - Système Distribué](/infotro/SDi/)
- [Transmission process](/infotro/SDi/transmission_process.md)
## [Eln - Électronique](/infotro/Eln/)
- [AD/DA](/infotro/Eln/ADDA)
- [Sigma / Delta](/infotro/Eln/Sigma-Delta)
## [SEm - Système Embarqué](/infotro/SEm/)
- [PLA - Programmation en langage assembleur](/infotro/SEm/PLA.md)
- [ASM - Assembleur ARM](/infotro/SEm/ASM.md)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+4
View File
@@ -0,0 +1,4 @@
# Taille des paquets de bits
[PLA](/infotro/arm/PLA.md)
[ASM](/infotro/arm/ASM.md)
+10
View File
@@ -0,0 +1,10 @@
* [PTR - Programmation Temps Réel](/infotro/PTR/)
* [XF](/infotro/PTR/XF)
* [SDi - Systèmes Distribués](/infotro/SDi)
* [Transmission process](/infotro/SDi/transmission_process.md)
* [Eln - Électronique](/infotro/Eln/)
* [AD/DA](/infotro/Eln/ADDA)
* [Sigma / Delta](/infotro/Eln/Sigma-Delta)
* [SEm - Systèmes Embarqués](/infotro/SEm/)
* [PLA - Programmation en langage assembleur](/infotro/SEm/PLA.md)
* [ASM - Assembleur ARM](/infotro/SEm/ASM.md)