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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.