Elektronik-Labor
Projekte
Mikrocontroller
Raspberry
Aus RPi Pico Schaltungen und Projekte Kap. 23
Der AD-Wandler des Rpi Pico erreicht eine Abtastrate bis zu 500 kHz. Wenn man diese Geschwindigkeit voll ausnutzen will, muss man Direct Memory Access (DMA) einsetzen, was relativ kompliziert ist. Mit sehr einfachen Mitteln werden hier immerhin 200 kHz erreicht. Eine Schleife mit 500 Messpunkten läuft im Core1 und wird über den Mikrosekunden-Timer in einen Takt von 200 kHz gebracht. Die Zeitspanne zwischen zwei Messpunkten beträgt also 5 µs. Nach der Erfassung der Messwerte werden sie an den PC geschickt. Im seriellen Plotter erhält man Oszillogramme mit einer Zeitachse von 500 µs pro Skalenteil. Die höchste messbare Frequenz ist 100 kHz.
//Pico_Scope2
#include
"pico/stdlib.h"
#include
"hardware/adc.h
#include
"hardware/pwm.h"
#include
"pico/multicore.h"
void
setup() {
Serial.begin(115200);
}
void
loop() {
}
void
setup1() {
unsigned int scope[1000];
gpio_set_function(0, GPIO_FUNC_PWM);
pwm_set_wrap(0, 62499); //PWM 2 kHz, 50%
pwm_set_gpio_level(0, 31250);
pwm_set_enabled(0, true);
adc_init();
adc_gpio_init(26);
adc_select_input(0);
while (true) {
uint32_t t = time_us_32();
for (int n = 0; n < 500; n++){
scope[n]=adc_read();
t+=5; while (t>time_us_32()); //200 kHz
}
for (int n = 0; n < 500; n++){
Serial.println ((int) scope[n]*3300/4095);
}
sleep_ms(1000);
}
}
void loop1() {
}
Das Oszilloskop enthält einen
Testausgang mit einem Rechtecksignal von 2 kHz. Der analoge Eingang sollte mit
einem Widerstand von 1 kΩ geschützt werden. Zusammen mit dem parallelen
Kondensator von 10 nF erhält man ein Tiefpassfilter mit einer Grenzfrequenz von
16 kHz, das insbesondere bei Untersuchungen im NF-Bereich sinnvoll ist. Für
höhere Signalfrequenzen sollte man den Kondensator weglassen.
Das Beispiel zeigt das 2-kHz-Testsignal am Ausgang des RC-Tiefpassfilters. Eine Schwingung passt genau in ein Skalenteil mit 100 Messpunkten. Das bestätigt die genaue Abtastrate von 200 kHz. Man sieht die typische Abrundung der Flanken durch das Tiefpassfilter. Das zweite Beispiel zeigt ein Sinussignal mit rund 5 kHz.