Compare commits

..

1 Commits

Author SHA1 Message Date
075c605778 Final submission 2026-01-22 21:35:49 +01:00
3 changed files with 10242 additions and 5 deletions

10224
main.pdf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,9 @@
date-format: "[day padding:zero].[month repr:short].[year repr:full]",
raw-text: (use-typst-defaults: true),
bibliography: bibliography("refs.bib"),
preface: [
Der Quelltext dieser Arbeit sowie Beispielcode und das vollständige Quellenverzeichnis sind unter #link-text([https://git.veltko.de/Weckyy702/uc-ausarbeitung-linux-treiber]) mit der GPL lizensiert aufzufinden.
]
)
#counter(page).update(1)
@@ -152,7 +155,11 @@ Dabei wird für jeden der ADC-Pins ein eigener Eintrag unter `/sys/bus/iio/devic
caption: [Sysfs-Einträge des ADC-Treibers]
)<tab-adc-syscalls>
Das Auslesen einer dieser Datein führt synchron eine ADC-Umwandlung durch. Das Format der gelesenen Daten ist nicht klar dokumentiert.
Das Auslesen einer dieser Datein führt synchron eine ADC-Umwandlung durch.
Aus der Dokumentation anderer ADC-Treiber@adc-microchip geht hervor, dass der `in_voltageX_raw`-Wert der unskalierte Bitwert des ADC ist. Die Datei `/sys/[...]/in_voltage_scale` beinhaltet den Umrechnungswert vom Rohwert zu Millivolt. Manche Treiber stellen zusätzlich die Datei `/sys/[...]/in_voltage_offset` bereit, die einen konstanten Fehlerwert enthält. Die vollständige Umrechnung ist dann:
$U_["mV"] = ("voltage_raw" dot "voltage_scale") + "voltage_offset"$
= Design einer Hardwareschnittstelle für AT91SAM7-Timer
@@ -161,7 +168,7 @@ Drei unabhängige 16-bit Zähler, Kanäle genannt, mit einstellbaren Taktgeschwi
== Features
Jeder Kanal kann in einem der folgenden Modi sein:
Jeder Kanal kann sich in einem der folgenden Modi befinden:
- _Capture_ zum Festhalten von Zeitpunkten, zu denen Eingänge geschaltet wurden
- _Waveform_ zum Erzeugen von einstellbaren Rechtecksignalen
@@ -198,7 +205,7 @@ Die daraus entstehenden Trigger-Signale können dann die Ausganspins `A/B` jewei
Die API ist an der Struktur der GPIO-API orientiert.
Jeder Kanal muss mit `REQ_CHANNEL` vom Kernel angefragt werden, damit ein Kanal von genau einem Prozess verwaltet wird.
Mithilfe der `SET_MODE_CAPUTE` und `SET_MODE_WAVE` `ioctl`s wird der Kanal in den jeweiligen Modus versetzt und konfiguriert.
Mithilfe der `SET_MODE_CAPTURE` und `SET_MODE_WAVE` `ioctl`s wird der Kanal in den jeweiligen Modus versetzt und konfiguriert.
Der `TIMER_START`-Befehl startet einen einzelnen Kanal.
Wenn der aufrufende Prozess alle Kanäle kontrolliert, kann `TIMER_START` auf dem Timer selbst aufgerufen werden, was das SYNC-Signal für alle Kanäle setzt.
@@ -288,5 +295,3 @@ Nachfolgend ist der Ablauf mit dem simplen _Round-Robin-Verfahren_@wiki-round-ro
alt: "A vertical scheduling diagram showing round robin scheduling",
)<fig-i2c-round-robin>
= Quelltext
Der Quelltext dieser Arbeit ist unter #link-text([https://git.veltko.de/Weckyy702/uc-ausarbeitung-linux-treiber]) mit der GPL lizensiert zu finden

View File

@@ -99,3 +99,11 @@
howpublished = {\url{https://www.kernel.org/doc/html/v6.12/iio/ep93xx_adc.html}},
note = {Zuletzt aufgerufen: 2026-01-22},
}
@manual{adc-microchip,
title = {How to Use the SAMA5D2 ADC Under Linux®},
organization = {Microchip Technology Inc},
address = {2355 West Chandler Blvd. Chandler, Arizona, USA},
edition = {AN3250},
year = {2019},
}