tag zusammen ich habe folgendes problem: ich muss einen takt für ein bauteil erzeugen der maximal 500 khz betragen darf. mit jeder steigenden flanke des taktes wird über eine periode lang ein analoger wert von dem bauteil ausgegeben. insgesamt sind es ca 16000 analoge werte die nacheinander ausgegeben werden bevor eine neue ausgabe startet. die auflösung der gemessenen analogen werte ist nich so kritisch und kann von 2-bis 8bit reichen (je mehr is natürlich besser). diese werte sollen noch an den pc gesendet werden. Controller: atmega8 methode 1: takt mittels timer im ctc-modus erzeugen. adc im freerun-modus laufen lassen. bei jedem timer-interrupt und high signal am taktausgang den adc wert einlesen und mit uart sofort ausgeben. methode2: takt mittels timer im ctc-modus erzeugen. adc im freerun-modus laufen lassen. bei jedem timer-interrupt und high signal am taktausgang den adc wert einlesen und im mc abspeichern. wenn alle 16000 werte abgespeichert sind das ganze datenpaket dann an den pc senden. da der flash ja nich gross ist (1k) sind so nur 2 oder 3 bit auflösung der analog werte möglich. der adc des mc kann ja durchaus mit 500 khz laufen und noch 7 oder 8 bit auflösung liefern soweit ich hier im forum gelesen habe. hat jemand noch eine idee wie mann das ganze angehen kann um auf eine möglichst schnelle übertragung der daten zu kommen? sind meine überlegungen überhaupt so machbar?
Was denn ist das für ein mysteriöses Bauteil? Außerdem ist der Zusammenhang zwischen dem timererzeugten Takt und den Analogwerten nicht unklar, ist der Takt so eine Art Read-Strobe (d.h. kommt das Signal auf eine bestimmte Flanke)? Aber du wirst ein anderes Problem haben: Der interne ADC kann sogar mit 1Mhz getaktet werden (bei ~7Bit Auflösung!) -- Das ergibt aber trotzdem nur 1000000 / 13.5 = ~75kSps (engl. Sps.: Samples per second (hier: dt. Messungen)), dadurch dass das ein "successive approximation"-Wandler ist. Und deine 16000 werte kannst du bei der Geschwindigkeit von 500 kByte/s nicht im Flash Speichern (die Programmierzeiten liegen bei einigen ms pro Page), vielleicht aber in externem (F)RAM. Also so wie du das ganz etwas spärlich beschrieben hast, ist es höchst wahrscheinlich nicht mit einem Mega8 machbar, eher mit einen Atmega mit Externem RAM interface (z.B. mega162) + Externem ADC. Vielleicht kann man dir besser helfen wenn du ein bisschen mehr Informationen rausgibst.
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.