Hallo Gebe auf einen Analog- Eingang eines ATTINY 13 eine Sinusspannung Ue < 2,5 Vss, Offset: 2,5 VDC und schalte einen Ausgang beim Über-/ Unterschreiten eines festen Grenzwertes Ug. Das geht sauber bis 100 Hz. Bei ca. 1 kHz sind die Ausgangs- Flanken (Last 1 kOhm)schon ziemlich rund und darüber unbrauchbar. Im Datenblatt steht was von 250kHz?
Schaltung und Code? Und vor allem: Taktquelle? Wenn dein Tiny mit interner Taktquelle von iwie 32kHz läuft dann wird das nichts.
Henry schrieb: > Das geht sauber bis 100 Hz. Bei ca. 1 kHz sind die Ausgangs- Flanken > (Last 1 kOhm)schon ziemlich rund und darüber unbrauchbar. Im Datenblatt > steht was von 250kHz? warum sollte sie die Flanke abhänig von der Frequenz ändern? die Flankensteiheit ist doch immer gleich, auch wenn du 1mal pro Stunde schaltest.
Henry schrieb: > Bei ca. 1 kHz sind die Ausgangs- Flanken > (Last 1 kOhm)schon ziemlich rund und darüber unbrauchbar. Die Flanken am Ausgang des AVRs sind natürlich irgendwo in der Flankensteilheit begrenzt. Aber 1kHz sollte locker drin sein! Ingo
Da er mit 20MHz getaktet werden kann, muß eine Flanke <50ns sein. Das Datenblatt schweigt sich leider aus. Mit dem ADC hat das überhaupt nichts zu tun.
Peter Dannegger schrieb: > Mit dem ADC hat das überhaupt nichts zu tun. Wenn seine Auswerteroutine für den ADC schlecht ist kann das auch Schwingen sein, das er mit dem Oszi einfach nicht stark genug auflöst!
Auch ein digitaler Komparator sollte ne kleine Hysterese haben!
Ausgangspin auch als Ausgang definiert? DDRx = ...
Ingo schrieb: > Schwingen sein, das er mit dem Oszi einfach nicht stark genug auflöst! Unterabtastung erkennt man ganze leicht daran, daß ein Signal scheinbar nicht triggert.
Verwende internen Takt. Beigefügt mal 2 Screen- Shoots.
Henry schrieb: > Verwende internen Takt. > Beigefügt mal 2 Screen- Shoots. prüfen mal wie schon Falk Brunner geschrieben hat, ob der pin wirklich aus ausgang gesetzt ist. Am besten gleich mal den quellcode posten.
Peter II schrieb: > prüfen mal wie schon Falk Brunner geschrieben hat, ob der pin wirklich > aus ausgang gesetzt ist. Wenn er das nicht wäre, dann würde kein Vss von 5V auf dem Oszibild zu sehen sein, dann wären das noch um die 0,3-0,4V. Henry schrieb: > Last 1 kOhm)schon ziemlich rund Sieht wie 'ne dicke kapazitive Last aus.
Henry schrieb: > Gebe auf einen Analog- Eingang eines ATTINY 13 eine Sinusspannung Ue < > 2,5 Vss, Offset: 2,5 VDC und schalte einen Ausgang beim Über-/ > Unterschreiten eines festen Grenzwertes Ug. Ein bisschen detaillierter hätte die Beschreibung schon sein dürfen. Also laß mich raten, was du tust. 1. du konfigurierst den ADC für den free running mode und läßt ihn so permanent die Spannung an deinem Eingangspin messen 2. dein Hauptprogramm ist eine Endlosschleife: a) warten daß der ADC eine Wandlung fertig hat b) ADC-Wert lesen c) wenn ADC-Wert > X, dann Ausgangspin=H, sonst Ausgangspin=L Richtig so? Dann wäre zuerst mal zu sagen, daß das kein Schmitt-Trigger ist, weil der nämlich zwei Schaltschranken hätte. Aber das nur am Rande. > Das geht sauber bis 100 Hz. Bei ca. 1 kHz sind die Ausgangs- Flanken > (Last 1 kOhm)schon ziemlich rund und darüber unbrauchbar. Im Datenblatt > steht was von 250kHz? Keine Ahnung, was du mit 250kHz meinst. Vielleicht den ADC-Takt? Dazu sagt mein Datenblatt zwar 200kHz, aber sicher sagen beide Datenblätter übereinstimmend, daß der ADC minimal 13 solche Takte für eine Messung benötigt. Bei 200kHz ADC-Takt kommt also alle 65µs (resp mit ~15kHz) ein neuer Wert. Und weil du 2 Schleifendurchläufe brauchst, um das Ausgangssignal einmal auf H und wieder zurück auf L zu setzen, kannst du so auf maximal ~7.6kHz am Ausgang kommen. Was du mit "runden Flanken" meinst, ist unklar. Die Flankensteilheit an einem Ausgang des tiny13 hängt im wesentlichen von der angeschlossenen Kapazität ab. Mit einigen 10pF, die man sich mit der Verdrahtung einhandelt, dürfte die Flankensteilheit im Bereich einiger ns liegen. Selbst wenn wir ganz großzügig mal 65ns annehmen, dann ist die Flanke immer noch 1000-mal kürzer als die kürzeste L- oder H-Zeit des Ausgangssignals (das ja nur alle 65µs überhaupt umschalten kann). Da kann nix rund sein. Es sei denn, du hast da einen 1000µF Elko an den Ausgang des tiny13 gehängt. Naja. Auf jeden Fall ist ein solcher "Schmitt-Trigger" unter Verwendung des ADC völliger Humbug, weil viel zu langsam. XL
Alter Schwede, füg' einfach den Code hier ein und dein Problem ist in 10min Geschichte.
MWS schrieb: >> prüfen mal wie schon Falk Brunner geschrieben hat, ob der pin wirklich >> aus ausgang gesetzt ist. > > Wenn er das nicht wäre, dann würde kein Vss von 5V auf dem Oszibild zu > sehen sein, dann wären das noch um die 0,3-0,4V. wenn es ein Eingang ist, gibt es auch noch den Pullup mit dem man schon die Betriebsspannung erreicht (nach einiger Zeit)
Axel Schwenke schrieb: > Naja. Auf jeden Fall ist ein solcher "Schmitt-Trigger" unter Verwendung > des ADC völliger Humbug, weil viel zu langsam. Ich dachte auch immer, das gerade für solche Fälle der Analog Comparator des Tiny13 gedacht ist. Eine wählbare Triggerschwelle könnte man dann immer noch mit PWM und einem RC Glied bauen. Aber ich möchte sehen, mit was der TE den Ausgang belastet.
Walter S. schrieb: > wenn es ein Eingang ist, gibt es auch noch den Pullup mit dem man schon > die Betriebsspannung erreicht (nach einiger Zeit) Das müsstest Du jetzt erklären... Ist der Pin auf Eingang High und geht der Lastwiderstand gegen GND, so bildet er mit dem internen Pullup einen Spannungsteiler, ist der Pin Eingang Low, so zieht allein der Widerstand gegen VCC. Ein Hub von 5V laut Oszibild ist damit ausgeschlossen. Das wird auch mit sehr langem Warten nix. Aber das ist nur deshalb so ein dummes Rumgerate, weil der TE keine ausreichende Info liefert.
Ist wohl top secret ;) Nächste Marssonde oder so.
Du misst Mist. Lös doch mal den Rechteck von dem 100 Hz Signal auch mal mit 250 µs/div auf, du wirst die gleichen verschliffenen Flanken sehen! Welche Ausgangsimpedanz hast du? Welche Lastkapazität? Lass 1:1-Tastkopf?
Ist bei dem Oszi irgendeine Bandbreitenbegrenzung eigeschaltet? Oder ist der Tastkopf defekt? Nach dem Bild zu schätzen hat das Signal grob 50us Anstiegszeit, so schlecht ist nicht mal ein 1:1 Tastkopf.
O.k. hier bitte mal das Programm in (hüstel) BASCOM: $regfile = "Attiny13.dat" $crystal = 1200000 $hwstack = 8 $swstack = 2 $framesize = 5 Dim Uist As Word Config Adc = Single , Prescaler = Auto Start Adc Config Portb.1 = Output Led Alias Portb.1 Do Uist = Getadc(2) If Uist < 300 Then Led = 0 End If If Uist > 300 Then Led = 1 End If Loop End Dieser Schmitt-Trigger ist nur als Versuch gedacht, um ein Gefühl für die Verarbeitungsgeschwindigkeit des ATTINY zu bekommen. Später soll ein Messwert überwacht werden. Oszi- Tastköpfe sind o.k. Funktionieren direkt am Funktionsgenerator einwandfrei.
@ Henry (Gast) >O.k. hier bitte mal das Programm in (hüstel) BASCOM: Das sieht OK aus, aber das Signal auf deinem Oszi ist komisch. Egal welche Frequenz, die Ausgänge vom AVR schaltne in 5 (FÜNF) Nanosekunden, das muss man auch ansatzweise sehen, keinesfalls 50us.
Henry schrieb: > Dieser Schmitt-Trigger Und wo ist da jetzt "Schmitt-Trigger"? Du hast eine konstante Schaltschwelle, die nicht vom vorherigen Zustand abhängt.
Bau mal ne Hysterese ein:
1 | If Uist < 250 Then |
2 | Led = 0 |
3 | End If |
4 | |
5 | If Uist > 350 Then |
6 | Led = 1 |
7 | End If |
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.