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?
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!
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.
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
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.
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.