| [b6aa0ba] | 1 | * Template für EFM32JG1B / ADC Example
|
|---|
| 2 |
|
|---|
| 3 | Beispiel zum konfigurieren des ADC im EFM32JG mit vielen Eingängen.
|
|---|
| 4 |
|
|---|
| 5 | 14 Pins werden über den Multiplexer automatisch alle 1ms gemessen und die
|
|---|
| 6 | Messwerte werden über LDMA (low power DMA) ins RAM geschrieben. Der LETIMER0
|
|---|
| 7 | triggert automatisch alle 1ms über PRS (Pheripheral Reflex System)
|
|---|
| 8 | den ADC scan Zyklus. Alles läuft im Hintergrund ohne CPU Intervention ab.
|
|---|
| 9 | Ausgenommen der 1ms IRQ des LETIMERs. Für den ADC wird der AUXHFRCO verwendet,
|
|---|
| 10 | welcher auch im stromsparenden EM2 Mode automatisch de-/aktiviert wird, sobald
|
|---|
| 11 | der ADC diesen benötigt (ohne CPU overhead).
|
|---|
| 12 |
|
|---|
| 13 | Mit minimalen Stromverbrauch und minimalem CPU overhead werden 14 ADC channels
|
|---|
| 14 | jede ms upgedatet und die Werte können jederzeit asynchron from RAM Buffer
|
|---|
| 15 | ausgelesen werden.
|
|---|
| 16 |
|
|---|
| 17 | Da die Beschreibung für die ADC channel selection, scan groups und APORTS nicht
|
|---|
| 18 | unbedingt einfach verständlich ist und gravierend von den Vorgänger EFM32 Chips
|
|---|
| 19 | abweicht, musste dieses Testprogramm geschrieben werden. Damit konnte
|
|---|
| 20 | verifiziert werden, dass die Anzahl der ADC Kanäle und die Zuordnung zu den
|
|---|
| 21 | externen Pins so funktioniert wie erhofft. Weiters muss die Channel-Übersprache
|
|---|
| 22 | und ADC Genauigkeit damit gemessen werden und die Samplerate, Aquisitiontime
|
|---|
| 23 | usw. passend zu den externen HW-Beschaltungen der VC+ Ersatzbaugruppen
|
|---|
| 24 | abgestimmt werden.
|
|---|
| 25 |
|
|---|
| 26 | Dazu werden mein Standard main task scheduler und background TRACE Routinen
|
|---|
| 27 | zur Steuerung über eine serielle Schnittstelle verwendet. Siehe readme.txt.
|
|---|
| 28 |
|
|---|
| 29 | Auch ein ARM Cortex-M3 Hard Fault Handler ist beispielhaft implementiert.
|
|---|
| 30 |
|
|---|
| 31 | 20200116
|
|---|