Ich möchte gerne mit einem µC ein TTL-Signal eines Inkrementalgebers auslesen. Das Signal hat eine Frequenz von etwa 10kHz. Kann ich die Leitungen direkt an die Pins des µC anschliessen oder benötige ich eine zusätzliche Schaltung damit das ganze störunemfpindlich wird? Wie sieht es aus wenn ich statt eines TTL-Signals ein sinusförmiges Analogsignal (1VSS) sehr genau analysieren will. Werte ich das Signal direkt an den Analogeingängen aus oder kommt erst eine Verstärkungsschaltung oder ähnliches? Danke für eure Unterstützung.
Hi, den Inkrementalgeber kannst du eingendlich direkt an den uC anschließen. Ein Inkrementalgeber dürfte eigendlich kaum Prellen, ansonsten kannst du ihn per Software entprellen. Ggf. sind noch Pull-Up widerstände notwending, dafür kannst du aber die internen Pull-Ups des uC verwenden, musst du aber mal im Datenblat des Inkrenetalgeber nachschauen. Die Frage ist was du mit sehr genau meinst. Die genauigkeit ist von der Auflösung des ADC anhängig. Außerdem sollte man versuchen den Eingangbereich des ADC möglichst ganz auszunutzen, dh. ggf ist ein Spannungteiler bzw. eine Verstärkerschaltung notwendig, die jedoch auch wieder messfehler verusachen kann. Das muss man dann abwägen
@ Martin (Gast) >Ich möchte gerne mit einem µC ein TTL-Signal eines Inkrementalgebers >auslesen. Das Signal hat eine Frequenz von etwa 10kHz. Also soch recht schnell. >Kann ich die >Leitungen direkt an die Pins des µC anschliessen Meistens ja. Siehe Drehgeber. > oder benötige ich eine > zusätzliche Schaltung damit das ganze störunemfpindlich wird? ggf. wird ein RC-Tiefpass verwendet, um HF-Störungen rauszufiltern. >Wie sieht es aus wenn ich statt eines TTL-Signals ein sinusförmiges >Analogsignal (1VSS) sehr genau analysieren will. Werte ich das Signal >direkt an den Analogeingängen aus Kann man machen. > oder kommt erst eine Verstärkungsschaltung oder ähnliches? Kommt drauf an, was man wie genau auswerten will. MfG Falk
@ astroscout (Gast)
>Ein Inkrementalgeber dürfte eigendlich kaum Prellen,
Das sehen andere Leute anders.
> Kommt drauf an, was man wie genau auswerten will. Ich will das sinusförmige Signal des Drehgebers so genau wie es nur geht auswerten. Also pro Periode etwa 1000 mal abtasten. >> Ein Inkrementalgeber dürfte eigendlich kaum Prellen, > Das sehen andere Leute anders. Was bedeutet das für meine Schaltung?
TTL-Signale kannst du direkt anschliessen, die Entprellung übernimmt der uC durch Abtastung in Zeitabständen die länger sind als die Prellzeit, und kürzer sind als die Strichzahl, bei Sinussignalen verwendet man normalerweise zunächst einen Komparator mit leichter Hysterese, und steckt dann dessen Ausgangssignal in den uC. http://www.elektrik-trick.de/sminterf.htm (weiter hinten) > Ich will das sinusförmige Signal des Drehgebers so genau > wie es nur geht auswerten. > Also pro Periode etwa 1000 mal abtasten. Dann allerdings musst du analog abtasten. Bei 10kHz und 1000 mal pro Periode muss dieser Analog/Digitalwandler allerdings 10Msps liefern, dun der uC diese 10Msps verarbeiten können. Mir erscheint, du spinnst.
>Ich will das sinusförmige Signal des Drehgebers so genau wie es nur geht >auswerten. "sinusförmige Signal?" -> Was hasten da fürn Drehgeber? Gruß Jonas
Martin schrieb: > Ich will das sinusförmige Signal des Drehgebers so genau wie es nur geht > auswerten. Also pro Periode etwa 1000 mal abtasten. Als Anregung zeige ich Dir meine Schaltung dafür: http://www.mino-elektronik.de/mt12_iic/mt12_iic.htm Bei höheren Ansprüchen kann man vor die ADC-Eingänge noch SH-Stufen einfügen. Welchen Drehgeber verwendest Du?
Jonas Biensack schrieb: > "sinusförmige Signal?" -> Was hasten da fürn Drehgeber? Das wäre ein Resolver... Passt aber nicht zu dem, was Martin schrieb: >>>> Ich möchte gerne mit einem µC ein TTL-Signal eines Inkrementalgebers >>>> auslesen. > Was hasten da fürn Drehgeber? Das wäre jetzt tatsächlich interessant...
Martin schrieb: >> Kommt drauf an, was man wie genau auswerten will. > Ich will das sinusförmige Signal des Drehgebers so genau wie es nur geht > auswerten. Also pro Periode etwa 1000 mal abtasten. Oben hast Du von TTL-Signalen gesprochen. Du hast also keinen normalen Drehgeber, sondern einen Präzisionsdrehgeber zur Winkelmessung? In den Teilschaltungen zur Präzisionswinkelmessung steckt sehr viel jahrzehntealtes Knowhow der Hersteller (z.B. Heidenhain); da würde ich an Deiner Stelle eher ein Fertiggerät kaufen. Gruss Harald
astroscout schrieb: > Die genauigkeit ist von der > Auflösung des ADC anhängig. Naja, zwischen Auflösung und Genauigkeit besteht aber ein ziemlich grosser Unterschied! Gruss Harald
Ok nochmal kurz das habe ich nicht richtig herausgestellt: Bei Drehgeber mit TTL-Signal: 10 kHz (dreht sich schnell) Bei Drehgeber mit Sinussignal 10 Hz und 1000 mal pro Periode abtasten (dreht sich langsam) Es handelt also um 2 Schaltungen an die 2 unterschiedliche Inkrementalgeber angeschlossen werden
> Bei Drehgeber mit TTL-Signal: 10 kHz (dreht sich schnell) > Bei Drehgeber mit Sinussignal 10 Hz und 1000 mal pro Periode > abtasten (dreht sich langsam) Falls du mit diesen analog abgeststeten Drehgeber aber die Position auf 1/1000 der Periode genau bestimmen willst, müsstest du dessen Analogwert mit 16 bit A/D wandeln, denn die Auflösung sinkt durch die Sinuswerte deutlich. Erstens stellt sich die Frage, ob das Analogsignal überhaupt die dazu nötige Linearität von 0.01% hat, dann die Frage, welcher präzise A/D-Wandler 16 bit mit 10ksps schafft. Beim Digitalencoder sind 10kHz weniger als die Prellzeit mechanischer Kontakte, es kann sich also nur um einen berührungslos abgetasteten Encoder handeln, und dabei sollte man bedenken, daß Lichtschranken, die besser als 10kHz schaffen, mit nicht zu geringem Strom betrieben werden müssen, sonst sind sie zu langsam, auch Hallschalter haben eine Grenze.
MaWin schrieb: > Falls du mit diesen analog abgeststeten Drehgeber aber > die Position auf 1/1000 der Periode genau bestimmen willst, > müsstest du dessen Analogwert mit 16 bit A/D wandeln, > denn die Auflösung sinkt durch die Sinuswerte deutlich. > > Erstens stellt sich die Frage, ob das Analogsignal überhaupt > die dazu nötige Linearität von 0.01% hat, dann die Frage, > welcher präzise A/D-Wandler 16 bit mit 10ksps schafft. Bei all diesen Fragen und Problemen erkennt man doch recht schnell, dass es sich um eine weltweit unlösbare Aufgabe handelt. Vor kurzer Zeit war in der Glotze ein Psychiater für burn-out Geschädigte zu sehen. Er bemerkte, dass es eine speziell deutsche Eigenschaft sei, vorhandene Probleme sehrweit zu übersteigern und sie damit unlösbar zu machen. Gut, die Amis machen es genau umgekehrt. Nehmen wir doch den goldenen Mittelweg.
Gehen wir es anders herum an: - Drehgeber mit 4096 Strichen und 1VSS - Drehgeschwindigkeit 1Hz - Annahme: Ideales Signal des Drehgebers -> mir geht es nur darum was der µC und die Schaltung leisten kann nicht was der Drehgeber tatsächlich anbietet. Fragen: Welche Abtastraten sind mit einem 8Bit µC bei 20 Mhz realistisch bei maximal 50% Auslastung? Welche Abtastraten sind mit einem 32Bit µC bei 100 Mhz realistisch bei maximal 50% Auslastung? Wie sollte eine Schaltung aussehen um die Werte möglichst genau auszuwerten?
Martin schrieb: > - Annahme: Ideales Signal des Drehgebers -> mir geht es nur darum was > der µC und die Schaltung leisten kann nicht was der Drehgeber > tatsächlich anbietet. Die Frage müßtest Du genau andersherum formulieren :-) Die Antwort nach der Winkelauflösung bleibst Du schuldig. > Welche Abtastraten sind mit einem 32Bit µC bei 100 Mhz realistisch bei > maximal 50% Auslastung? Geschätzt 1MS/s; da wird eher die anschließende Verarbeitung die Bremse sein.
@ Martin (Gast) >Welche Abtastraten sind mit einem 8Bit µC bei 20 Mhz realistisch bei >maximal 50% Auslastung? Beim AVR vielleicht 100kHz, wenn man mal grob 100 Takte für die ISR spendiert. >Wie sollte eine Schaltung aussehen um die Werte möglichst genau >auszuwerten? Digital ist es einfach. Analog wird aufwändiger. Man braucht halt einen Zweikanal ADC. MFG Falk
> Annahme: Ideales Signal des Drehgebers Märchen. > Welche Abtastraten Unwichtig. Dich interessiert erst die Abtastrate, wenn du die erreichbare Winkelauflösung kennst, und die hängt nun mal vom nicht-linearen Signal und der A/D-Auflösung ab. Es macht keinen Sinn zu fragen, was wäre, wenn du reiten könntest, ohne Pferd.
Vielleicht kaufe ich mir irgendwann ein Pferd, und wenn ich mir nur ein Pony kaufe kann ich das dann auch reiten... Eine 1000 fache Interpolation pro Perdiode ist mit dem Drehgeber möglich. Jetzt möchte ich doch nur berechnen wie schnell darf sich mein Drehgeber drehen damit ich mit dieser Abtastrate noch auswerten kann. Dafür möchte ich wissen wie lange mein µC bzw. meine Schaltung für die AD-Wandlung braucht und was für eine Auflösung mein AD-Wandler haben sollte. Zusätzlich würde ich gerne wissen wie ich eine Schaltung für so eine Auswertung aufbauen sollte.
Vor grob 30 Jahren hatte meine Diplomarbeit genau damit zu tun. Die Arbeit war im Endeffekt für Heidenhain. Z80-System mit AD-Wandler. Da gibt es irre Effekte in diesem "Sinus-Signal", was gar keins ist. Von Alterung und Langzeitkonstanz ganz zu schweigen. Die einige Möglichkeit eine sinnvolle Genauigkeit zu erreichen waren LUT, Eichung des Gebers und Erstellen einer solchen LUT. Vergiss 16 Bit und 1/1000 Genauigkeit ganz schnell, wenn Du an einer seriösen Lösung Interesse hast. Viel Spaß dabei.
m.n. schrieb: > Die Antwort nach der Winkelauflösung bleibst Du schuldig. Ich habe mal 0,3 Winkelsekunden aus Martins Angaben errechnet. Ich glaube, derart präzise Drehgeber gibts noch nicht einmal bei Heidenhain. :-( Gruss Harald
@ Harald Wilhelms (wilhelms) >> Die Antwort nach der Winkelauflösung bleibst Du schuldig. >Ich habe mal 0,3 Winkelsekunden aus Martins Angaben errechnet. 1000 Messwerte / 360° macht eher 0,3 Winkelminuten, Fakto 60 größer, wenn gleich auch nicht gerade Peanuts. >Ich glaube, derart präzise Drehgeber gibts noch nicht einmal >bei Heidenhain. :-( Ach was, AUFLÖSUNG ist im Zeitalter des digitalen Selbstbetrugs doch einfach ;-) Ich hab mal einen mit 25 Bit Auflösung in der Hand gehabt, physikalisch hatte der angeblich 19 Bit, der Rest interpoliert, bin mir aber nicht sicher. An den Messwerten hat man gesehen, dass da viel "Schmuh" dabei war, denn erstens dauerte es einige hunder Millisekunden, ehe auf den LSBs halbwegs Ruhe war und auch dann hat es noch ganz ordentlich gezappelt. Und da lag das Ding auf dem Tisch.
Falk Brunner schrieb: >>Ich habe mal 0,3 Winkelsekunden aus Martins Angaben errechnet. > > 1000 Messwerte / 360° macht eher 0,3 Winkelminuten, Fakto 60 größer, > wenn gleich auch nicht gerade Peanuts. Er schreibt von 4096 Strichen mit 1000facher Unterteilung sind 4096000 Messpunkte pro Umdrehung. Gruss Harald
@ Harald Wilhelms (wilhelms) >> 1000 Messwerte / 360° macht eher 0,3 Winkelminuten, Fakto 60 größer, >> wenn gleich auch nicht gerade Peanuts. >Er schreibt von 4096 Strichen mit 1000facher Unterteilung sind >4096000 Messpunkte pro Umdrehung. Er schreib vor allem konfus ;-) Beitrag "Re: TTL-Signal von Drehgeber auslesen" >Bei Drehgeber mit TTL-Signal: 10 kHz (dreht sich schnell) >Bei Drehgeber mit Sinussignal 10 Hz und 1000 mal pro Periode abtasten >(dreht sich langsam) >Es handelt also um 2 Schaltungen an die 2 unterschiedliche >Inkrementalgeber angeschlossen werden Beitrag "Re: TTL-Signal von Drehgeber auslesen" >- Drehgeber mit 4096 Strichen und 1VSS >- Drehgeschwindigkeit 1Hz >- Annahme: Ideales Signal des Drehgebers -> mir geht es nur darum was >der µC und die Schaltung leisten kann nicht was der Drehgeber >tatsächlich anbietet. Also was nun? 10Hz Sinus mit 1000 Abtastungen/Periode?
Harald Wilhelms schrieb: > Er schreibt von 4096 Strichen mit 1000facher Unterteilung sind > 4096000 Messpunkte pro Umdrehung. Das hatte ich auch errechnet und daher keine Empfehlung gegeben, wie für die diffuse Fragestellung eine 'einfache' Nachbauschaltung aussehen könnte. An anderer Stelle (heute 10:41) hatte ich eine Schaltung mit ATmega48 gezeigt, die durchaus die Drehbewegung auswerten kann - allerdings mit 'nur' 100-facher Sinusauswertung. Für lineare Heidenhain-Taster ist das ausreichend (0,1µm Auflösung bei MT25); deren sin/cos-Signale sind damit (vorsichtig formuliert) voll ausgereizt.
Die Frequenzangaben 10 bzw. 1 Hz sollten nur Richtwerte sein um mal eine Aussage zu bekommen wie schnell ich ein analoges sinusförmiges Signal abtasten kann. Das TTL Signal kann ich auch mit 50kHz noch abtasten und jetzt will ich eigentlich nur wissen wie schnell ich das bei dem analogen Signal mit einem AD Wandler 12bit? hinbekomme? Und wenn dann rauskommt der Geber darf sich nur mit 0,0001 Hz drehen reicht mir das vielleicht ja auch. Ich weiß nur leider nicht was für eine Schaltung ich aufbauen soll um ein solchen Signal abzutasten. Einfach nur ein externer DA Wandler? Wie schnell ist ein solcher DA Wandler 12bit, wie schnell ein 10bit DA Wandler?
Außerdem habe ich die 4096 Striche nicht im Zusammenhang mit 1000 Abtastungen pro Periode erwähnt sondern nur den fiktiven Wert von 4096 Strichen gewählt und die Frage dazu gestellt welche Teilungsperioden für die Abtastung erreichbar sind.
Ups, am fremden Rechner sollte man auch den Benutzernamen wechseln...
Martin schrieb: Oder Roland? > Und wenn dann > rauskommt der Geber darf sich nur mit 0,0001 Hz drehen reicht mir das > vielleicht ja auch. Vielleicht reicht Dir ja auch eine Tüte Gummibärchen? Für mich bitte eine Vollmilch-Nuß-Schokolade - die beruhigt das Gemüt.
Möglich ist das. Schon erstaunlich dass anstatt die Antwort auf die mehrfach gestellte Frage nach der Geschwindigkeit einer AD Wandlung immer nur dumme Sprüchen zu der geplanten Anwendungen kommen obwohl eh keiner weiß wie sie aussieht weil es unerheblich für die Frage ist.
Harald Wilhelms schrieb: > astroscout schrieb: > >> Die genauigkeit ist von der >> Auflösung des ADC anhängig. > > Naja, zwischen Auflösung und Genauigkeit besteht aber ein ziemlich > grosser Unterschied! > Gruss > Harald ja, da geb ich dir recht, aber wenn die Auflösung schlecht ist, kann man keine große Genauigkeit erreichen, es hängt also schon alles irgendwie zusammen
Martin schrieb: > Schon erstaunlich dass anstatt die Antwort auf die mehrfach gestellte > Frage nach der Geschwindigkeit einer AD Wandlung immer nur dumme > Sprüchen zu der geplanten Anwendungen kommen obwohl eh keiner weiß wie > sie aussieht weil es unerheblich für die Frage ist. Deine Frage läßt erkennen, dass du dich noch nie intensiver mit AD-Wandlern beschäftigt hast. Sonst wüßtest du, dass die Wandlungszeit anhängig vom eingesetzen Wandlerprinzip sehr unterschiedlich ist und auch eine Kostenfrage ist. Guck doch einfach mal ein paar Datenblätter z.B. bei Maxim durch. http://www.maxim-ic.com/products/data_converters/adcs/
Das stimmt wohl deshalb dachte ich das Forum ist eine gute Anlaufstelle um damit anzufangen. Bei den externen AD Wandlern gibt es ja die sampling rate, aber wie sieht es mit der Datenübertragung aus, kostet die nicht die meiste Zeit wenn ich zB. mit 10 kHz abtasten möchte. Wie ist es wenn ich zwei Signale gleichzeitig abfragen will und beide IC ihre Daten über SPI übertragen? Dann habe ich doch immer einen Versatz zwischen den beiden Werten?
@ Martin (Gast) >Bei den externen AD Wandlern gibt es ja die sampling rate, Auch bei internen. > aber wie >sieht es mit der Datenübertragung aus, kostet die nicht die meiste Zeit >wenn ich zB. mit 10 kHz abtasten möchte. Nö. Die Leute haben sich meistens schon was gedacht, wenn sie ADC gebaut haben. Die Datenübertragung ist so gestaltet, dass die Wandlungszeit bzw. Rate voll nutzbar ist. >Wie ist es wenn ich zwei Signale gleichzeitig abfragen will und beide IC >ihre Daten über SPI übertragen? Dann habe ich doch immer einen Versatz >zwischen den beiden Werten? Man muss unterscheiden zwischen der Erfassung (Sample), der AD-Wandlung (Conversion) und dem Datentransfer. Viele AD-Wandler, wie auch der im AVR, haben nur eine Sample&Hold Stufe, können also immer nur einen Kanal gleichzeitig erfassen. Dazwischen wird per MUX umgeschaltet. Bessere externe AD-Wandler haben mehrere Sample&Hold Stufen, erfassen also mehrere Kanäle echt gleichzeitig. Einige Typen haben dann nur einen echten AD-Wandler, der nach und nach die gespeicherten Spannungen konvertiert. Bessere Typen haben für jeden Kanal einen eigenen AD-Wandler und schaffen somit mehr Datendurchsatz. MfG Falk
Danke das hilft mir weiter! Werde mir den IC und vielleicht einige Alternativen morgen mal genauer anschauen.
Ok vielleicht könnt ihr mir doch bei der Suche helfen. Also ich bräuchte einen IC, der 2 Eingänge gleichzeitig lesen kann. Die Auswertung kann nacheinander erfolgen. Also Schnittstelle SPI und eine Sample-Rate von mindestens 100ksps. 12bit wäre gut ansonsten tut es auch erstmal 10bit. Danke
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.