Hallo Leute, ich kenne mich mit Microcontrollern leider nicht so gut aus. Mich würde interessieren, ob sowas überhaupt mit einem Microcontroller möglich ist, und wenn ja, welchen würdet ihr mir empfehlen? Ich habe folgendes vor: Der MC sollte 4 Eingänge haben. Alle 4 Eingänge werden von äußerem Einfluss fast gleichzeitig aktiviert. Die Zeitabstände der Aktivierung der einzelnen Eingänge liegt im micro-sekunden Bereich (1/1.000.000 Sec). Diese Zeit würde ich gerne mit dem MC erfassen. Ist das möglich? Ich habe bei einigen Microcontrollern in den Datenblättern gelesen dass die Timer nur im Millisekunden-Bereich liegen. Gibt es für soetwas spezielle Microcontroller? Danke im Vorraus! Gruss, Jonas.
welche Auflösung brauchst du, sonst kein Problem.
wie gesagt, im mikrosekunden-Bereich (1/1.000.000 Sek)
µS Bereich ist lahm, das geht mit jedem.
chris schrieb:
> µS Bereich ist lahm, das geht mit jedem.
Naja, das würde ich so nicht unterschreiben.
Bei 16MHz bleiben zwischen zwei Ereignissen gerade mal 16 Befehle
inklusive Interrupt-Sprung übrig.
Da muss man wahrscheinlich schon mit ASM programieren.
Die Frage ist auch mit welcher Genauigkeit die Abstände erfasste werden
sollen.
die Abstände sind wie gesagt im microsekunden Bereich. Wieviel Mhz braucht dann der µC? Könnt ihr mir einen empfehlen?
Naja, ohne ASM Programmierung kommt man da nicht rum, auch weil man mehrere Inputs gleichzeitig erfassen muß, wo man dann nicht weiß, welcher zuerst kommt.
In so einem Falle würde ich eher zu einem Pic tendieren, weil ich da mehr erfahrung habe, einen mit internem OSC, 8Mhz würde ich da vorschlagen, bei einem Avr, ein Tiny mit internem OSC sowie ev. PLL, um auf 8Mhz oder darüber zu kommen.
Nimm eine ATmega644 (AVR). Der laueft mit 20MHz und du kannst alle GPIOs als Interrupteingang verwenden. Damit geht es auf jeden Fall.
>Gibt es für soetwas spezielle Microcontroller? Mit einem TDC kommst Du auf Auflösungen von einigen 10 ps. http://www.acam.de/index.php?id=105
einen avr mit einem 16 bit timer der capture mode kann, atmega8515 zb., prescaler = 1, dann brauchst kein asm, sondern kannst alles gemütlich in C erledigen.
So wie ich es verstanden habe, sind mehrere Mikrofone im Einsatz, auf mehreren Eingangspins, und dann wird mittels Triangulation die Position der Geräuschquelle ermittelt. Mit Input Capture, sowie Interrupt bedient man max 2 Mikrofone. Wenn das nicht zuwenig ist, kann man es in Hochsprache machen.
jonas schrieb: > die Abstände sind wie gesagt im microsekunden Bereich. Du wiederholst Dich. Gefragt sind min, max, Auflösung, Genauigkeit. Die Auflösung kann beim AVR min 50ns betragen. Vom Min-Wert und vom "fast gleichzeitig" Wert hängt ab, ob man es in C oder Assembler machen muß. Peter
Bei einigen Controllern (z.B. Atmel Mega128 und einigen PICs) gibt es mehr als einen Input capture Kanal.
Ein TMS470 oder CortexM3 von TI mit dem Modul HET ( HighEndTimer) solte hierzu ideal sein. Der HET ist ein eigenständiger Timer der die Zeitmessungen unabhängog vom µC_Core erledigt. Auflösung je nach konfiguration bis in den ns Bereich. Taktfrequenzen ab 48 MHz. Damit sollte auch ASM Programmierung unnötig sein. Ansonsten ist wohl eher ein DSP als ein µC hierfür geeignet.
jonas schrieb: > die Abstände sind wie gesagt im microsekunden Bereich. > > Wieviel Mhz braucht dann der µC? Könnt ihr mir einen empfehlen? Wenn's im professionellen Bereich ist, dann würd ich vom Rumgefrickel mit einem AVR abraten. Es sei denn, man findet einen mit 4 Capture-Compare-Einheiten. Wenn's ein µC sein soll würde ich eher zu einem TriCore TC1796 (µC mit DSP-Funktionen) neigen. Zu PIC, ARM, reinen DSPs kann ich nix sagen. Johann
Nimm einen MSP430, einen etwas größeren mit Timer B, der hat 7 unabhängige Capture Eingänge, da kannst du in Hardware die Signale erfassen. Mit den neuen MSP430 mit 25MHz kannst du dann in 40ns auflösen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.