Forum: Mikrocontroller und Digitale Elektronik Taktsignal erzeugen für externen AD Wandler


von George (Gast)


Lesenswert?

Hi...

Ich möchte mit meinem ATmega16 ein Taktsignal für einen externen AD
Wandler erzeugen. Dieses möchte ich in C/C++ programmieren.
Jetzt meine Frage. Kennt jemand von euch eine geeignete Funktion
(Header Datei) in C die mir helfen könnte... Ich möchte im Nanosekunden
bereich, Einstellungen treffen können... Ist das überhaupt möglich?

Danke schon mal

von johnny.m (Gast)


Lesenswert?

'Im Nanosekunden-Bereich' ist ziemlich vage ausgedrückt. ATMega16
läuft mit max. 16MHz, d.h. ne Zykluszeit von 62,5ns. Schneller kommste
damit nicht hin. Gehe davon aus, dass du 'Entscheidungen treffen'
meinst. Über nen Interrupt dauert's immer ein paar Zyklen. Für eine
'Entscheidung' musste da mit ein paar hundert ns rechnen. Wenns
wirklich Zeitkritisch ist, ist Assembler sinnvoll (u.U. eingebunden in
C-Code). Wesentlich schneller gehts dann nur im DSP-Bereich...

Gruß

Johnny

von George (Gast)


Lesenswert?

Es ist so das ich einen AD-Wandler über den µC ansteuern will. Der
AD-Wandler braucht einen Takt SCLK. Mit CS (Chipselect) geb ich
sozusagen ein Startsignal das der Takt losgeht. 16 Takte geht ein
Zyklus. In den ersten 3 Takten ist der AD-Wandler im Track mode. In den
restlichen 13 Takten schickt er das digitalisierte Signal zum µC raus.

Meine Taktfrequenz ist 8MHz. Jetzt mal abgesehen vom Nanosekunden
Bereich. Hättest du eine Idee wie ich das realisieren könnte. Ich bin
noch Anfänger in Sachen µC und C-Programmierung...

von Manos (Gast)


Lesenswert?

Ist denn der AD-Wandler so schnell von der Samplingrate bzw. wieviele
Samples schafft der? Denke mal nicht, dass der 1.000.000 Wandlungen/sek
schafft. Ist das eine SPI-Schnittstelle am Wandler?

von johnny.m (Gast)


Lesenswert?

Am besten mal posten, was das für'n ADC ist (Typ, Hersteller). Das
macht es einfacher:-)

von klaus bröntgen (Gast)


Lesenswert?

ich hab sowas mit einem tiny mal gemacht. also nur per assembler
(sbi/cbi fürs cs und ori zum clk-toggeln; befehle ohne
wartepausen/interrupts einfach nacheineinander ausgeführt in einer
mainloop).
geht, aber geht nur langsam (ein paar hundert-werte/min, jedenfalls
weit von der performance des wandlers entfernt).
zu testzwecken allemal tauglich, aber für ernsthaften transfer
warscheinlich zu lahm und wackelig.
nimm lieber etwas kombinatorische logik, also flip-flops und gatter.
egal, ob diskret (verdrahtungsaufwand) oder cpld. das geht allemal
sauberer und skalierbarer.

von peter dannegger (Gast)


Lesenswert?

"16 Takte geht ein Zyklus."

Klingt nach einem Fall fürs SPI (HW oder SW).

Die Takte müssen nur im angegebenen min/max-Bereich sein, der genaue
Wert ist unkritisch.


Peter

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
Noch kein Account? Hier anmelden.