Taktsignal erzeugen für externen AD Wandler

Gast #302785
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
Gast #302786
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
Gast #302787
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...
Gast #302790
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren