mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Microansteuerung


Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ICh habe ein Verständnisproblem:

Da hier viele Profis schreiben...bitte helft mir.

ICh habe folgenden Schaltplan gefunden...es geht um die Schaltung vom
Micro bis zum Operationsverstärker...

http://www.icplan.de/gisch.gif

Also das Micro wird über einen Spannungsteiler an VCC angeschlossen...
- zwischen diesen Widerständen geht ein Kondensator (C6) gegen
  Masse...WARUM, was bewirkt dieser???

- dann kommt ein Hochpass (C5 & R6) um Gleichanteil wegzufiltern (???)
 das ganze wird dann über R5 nochmal mit VCC verbunden...das verstehe
 ich überhaupt nicht.

Für Hilfe bin ich sehr Dankbar

mfg Rolf

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist eine Stromversorgung für eine Electret-Mikrophonkapsel. In der
sitzt ein kleiner Verstärker, der mit Gleichspannung versorgt werden
will. Der Kondensator koppelt diese "Phantomspeisung" aus.

Wird ein dynamisches Mikrophon verwendet, muss diese Schaltung
tunlichst geändert werden.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tut mir leid...hab das nicht so richtig verstanden...

du meinsten den Kondensator zwischen R3 und R2, also C6?

der kommt doch schon "vor" dem Micro!??

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C5 koppelt aus, C6 unterdrückt Störungen auf der Versorgungsspannung des
Mikros

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht nicht der 7805 konstant 5V? warum sind dann noch Störungen?

UND WARUM ist nach dem HOCHPASS nochmal eine Verbindung zu VCC

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Verstärker im Mikro ist sehr empfindlich, er würde auch minimalste
Störungen mitverstärken.
C5 ist nicht als Hochpass gedacht sondern ist für die Nf-Auskopplung,
R2 ist dazu der Arbeitswiderstand.
R5 / R6 bilden einen Spannungsteiler für den OP etwa in der Mitte der
Betriebsspannung um eine Aussteuerung durch das Nf-Signal in beiden
Richtungen zu gewährleisten.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank...

ist das mit r5/ r6 wichtig?

Ich möchte dann das Signal in ein Rechteckimpuls umwandeln... von 0 bis
5V?

wie mach ich das...Verstärken OK und dann Schmitttrigger oder???

Ich brauch das ganze nochmal Invertiert...wie kann ich das machen?

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach der Schaltung nach sollte nach dem 2. OP ohnehin was
rechteckförmiges herauskommen, dann einen Schmittrigger und wenn noch
notwendig, den in invertierender Ausführung.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IC3B arbeitet als Komparator, obwohl der TL062 dafür ja eigentlich nicht
gebaut ist. Der macht dir ab einer bestimmten Lautstärke am Mikrofon
hinten Rechteckimpulse, die deiner Eingangsfrequenz entsprechen und
(fast) über die gesamte Betriebsspannung reichen. So ca.0-5V. Wird
sicher kein toller rechteck sein (wegens dem TL062), aber für den
Controller, der in dieser Schaltung hinten drann hängt, geht das i.O.
Wenn Du es invertiert brauchst, musst Du nur PIN5 und PIN6 vom IC3B
tauschen.
AxelR.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte ja ein Stimmgerät bauen...

und somit muss ich die Frequenz des Signals messen...wollte das über
die bestimmung der Periodendauer machen...

wenn das Rechteck nicht gut ist, kann ich da auch nicht gut messen??

ich habe einen LM324 und 4050 Schmitttrigger...aber das invertierte
bekomme ich nicht hin... wie kann ich das anstellen...es darf ja auch
kein Laufzeitunterschied entstehen!?

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wofür musste das denn dann nochaml invertieren?
Häng das da drann und gut. Sollte auf Anhieb gehen, der Atmel hat doch
auch schmitt trigger Eingänge.
Axel

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will die Periodendauer messen... der Atmel zählt über Timer wenn
H-Pegel anliegt. Um also den LOW Pegel zu messen muss ich das Signal
invertieren.

Welche Eingänge sind Schmitttrigger eingänge?

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du das Signal schon mal mit einem Oszi angeschaut? Es ist fast
symetrisch und wird sich mit invertieren nicht ändern. Wenn du ein
Stimmgerät bauen willst werden da noch andere Probleme auf dich
zukommen wie harmonische Oberwellen, schwebungen usw.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schreibst du das Programm eben so um, dass der Atmel zählt, wenn
L-Pegel anliegt.
Ausserdem ist es so, wie Hubert sagt: das Signal ist symmetrisch, also
egal wie. Zur Not kannste ja noch einen Transistor hinterschaltn.
Emitter an Masse, basis über 10K an den Ausgang und Kollektor über 1K
nach VCC. Am Kollektor greifst Du das Signal wieder ab.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das signal ist nicht symmetrisch...nur wenn es laut genug ist...ich habs
mit Oszi angeschaut...
  ---       ---                          --| |-------| |----
  | |       | |                            | |       | |
--| |-------| |--------.... ich will nun   ---       ---

die Oberschwigungen werden doch mit einem Tiefpass herausgefiltert?

Ich kann das Programm nicht umschreiben... der Timer 0 ist so
programmiert, dass er bei H Pegel zählt!

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann musst du den Umschaltpunkt des Komparators etwas runtersetzen, bzw.
dir das veratärkte Signal vor dem Komparator mal ansehen und mit dem
Spannungsteiler, welcher am Eingang dieses auf halbe Betriebsspannung
zieht, experimentieren.
kannst aber auch einfach den Transistor hernehmen, wie ich oben
beschrieb.Dann sieht das Signal genau so aus. Du musst aber sowieso
beide Halbwellen zählen, oder bei steigender Flanke den Timer starten
und bei der nächsten steigenden Flanke den Timer auslesen. Dann ist es
egal. Siehe obige Skizze aus deinem Post.
Die Oberschwingungen werden mit einem Tiefpass herausgefiltert? Deine
Rechteckimpulse am Timer0 <->Oberwellenhaltig[Rechteck].
Wie sieht denn die Software aus?
Zum Messen der Periodendauer muss dein Timer nunmal bei steigender oder
fallender Flanke gestartet werden und beim nächsten mal gestoppt
werden.
Die intern vergangenen/aufgelaufenen Ticks ergeben nun deine
PeriodenDauer. 1/Ticks=Frequenz. Sollte ja klar sein.
Du kannst annnersum auch das TCCR0 Register auf externClock stellen und
genau eine Sekunde warten und zählst dann die aufgelaufenen Impulse.
Wäre dann die andere Variante. Kann ich aber nichts zu sagen, weil ich
deine Software nicht kenne. Wollte nur deine Aussage "Ich kann das
Programm nicht umschreiben... der Timer 0 ist so
programmiert, dass er bei H Pegel zählt!" etwas relativieren, bzw.
aufzeigen, dass es sehr wohl möglich ist, die Software den eigenen
Bedürfnissen anzupassen.
AxelR.

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tausche mal die Eingänge PB0 und PB1. Eventuell auch noch R10 / R11
tauschen, mit denen wird der Schaltpegel festgelegt. Damit würde die
Pegelauswertung im Kontroller invertiert. Ich habe zwar mit dem
Analog-Komparator noch nicht gearbeitet, aber nach meinem Verständnis
sollte es das sein. Zumindest nach dem Datenblatt.

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es müsste aber auch über die Software gehen, nach beschreibung kann man
den Interrupt einstellen. The user can select interrupt triggering on
comparator output rise, fall or toggle.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe diesen Schaltplan nicht nachgebaut...meine ist halt anders und
ich wusste nicht was nun besser ist. ich werde diese aber
nachbauen...jedenfalls bis vor den OP.

hab auch nen anderen Mikrokontroller AT98S8252...

ich wollte hat beide Pegel einer Periode auslesen...scheint aber
schwierig zu sein.

Ich werde das jetzt probieren von fallender nach fallender Flanke zu
messen.

mal sehn.

Vielen Dank aber für eure Hilfe... bis bald :-)

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich was verpasst? Ach ist ja ein 2313... ICh war aufn Mega8 aus.
Nun, wie es beim 90S2313 beschaltet ist, muss ich erst nachlesen. Das
ist zu lange her.
Scheint sich tatsächlich um den Analog Comparator zu handeln. Warum
baust Du die Schaltung nicht so auf, wie sie publiziert wurde???
Naja, geht mich ja nischt an.
R5/R6 und R8/R9 kannst Du zum Einstellen der Symmetrie deines
Mikrofonsignals heranziehen, falls Du die Schaltung in einer eigenen
Schaltung verwenden willst. Sonst, wie Hubert richtig sagte, mit
R10/R11 lässt sich die Ansprechschwelle des Analogkomparators im 2313
einstellen, wobei mir dann die Verwendung des Diskreten Komparators
IC3B widersinnig erscheint. Ich frag' nochmals, wofür du ein
Symmetrisches Signal brauchst. Um die Frequenz auszurechen, brauchst Du
die Periodendauer. Die ist die Summe aus T_on+T_off. Musst also sowieso
etweder beide Zustände messen, oder NUR bei einer (z.B. steigender)
Flanke. Dann isses doch ziemlich egal, ob dein Signal symmetrisch ist,
oder nicht.

Ich kann mich jetzt nicht in den 2313 reindenken, muss ich erst mal ein
Datenblatt ziehen. Poste mal die Quelle, dann können wir das ummodeln.

AxelR.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
war ich zu langsam

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
....
hab auch nen anderen Mikrokontroller AT98S8252...
....
Da muss ich mich ausklinken, habe ich noch nie was mit gemacht.
AxelR.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab einen AT89S8252... !!!!!!!!!!!

brauch kein Periodisches Signal! will ja nur die Periodendauer (wie du
sagst Toff + Ton) Ton hab ich... nur Toff nicht!

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube du hast da wirklich ein Verständnisproblem. Du hast um 10:40
aufgezeichnet wie dein Signal aussieht. Die kurze Zeit ist Zeit1 die
lange Zeit2. Die Frequenz des Tons ist aber Zeit1 + Zeit2 und die
ändert sich nicht auch wenn du das Signal invertierst und ob du von
steigender zu steigender Flanke oder von fallender zu fallender Flanke
misst ist auch egal.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Problem ist das ich die Zeit, wo 0 Pegel anliegt nicht messen
kann...weil der Mikrokontroller nur bei H Pegel die Zeit misst.

Ich wollt jetzt von fallender zu fallender Flanke messen...

Meine Gedanken:
  - Bei fallender Flanke -> Interrupt wird ausgelöst
  - in der Interrupt Service Routine muss ich den Timer-Wert auslesen
    und den Timer zurückstzen. der Timer soll aber schon die nächste
    Zeit Messen...

--> Das auslesen und zurücksetzen braucht Zeit und verfälscht doch
somit das Ergebnis... ODER?????

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist so minimal das der Quarzfehler warscheinlich grösser ist, wenn
du willst und überhaupt möglich ist kannst du einen Korrekturwert
berücksichtigen.
Ich würde aber mal schaun das es grundsätzlich funktioniert und dann
erst so kleine Details korrigieren.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, nicht ganz.
Fallende Flanke ->int
timer auf Null
Fallende Flanke ->int
int sperren
Timer auslesen,
umrechnen,
Frequenz aus der Tabelle der Note zuordnen,
Note anzeigen
int zurücksetzen
Fallende Flanke ->int
timer auf NULL
weiter wie oben.
Du darfst schon nach jeder Periode erst mal in Ruhe den Kram erledigen,
den Du zu erledigen hast.
Erst wenn Du fertig bist, fängst Du wieder an, die Periodendauer zu
berechnen. Deine GitarrenSaite wird ja wohl länger schwingen, als eine
Priodenmessung + Datenberarbeitung dauert. Wenn Du nun nur alle 10
Schwingungen messen kannst, weil Du zwischendurch deinen
administrativen Kram erledigst, ändert das ja nichts an deinem
Messwert.
Musst nur das Int Flag löschen, bevor Du den Interrupt wieder
freigibts, damit evtl. aufgelaufene Interrupts nicht sofort ausgeführt
werden. Du musst ja synchron bleiben mit deiner Messung.

Ich habe sowas schon mal für PC-Lüfter programmiert. Da habe ich auch
die Periodendauer des Tachosignals verwendet und angezeigt. Das sogar
für acht Signale gleichzeitig. Die Werte habe ich dann auf einem
Display anzeigen lassen und auf der UART ausgegeben.

Autor: edgar p (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf,

oft ist es schwierig sich vorzustellen,wie schnell ein MC ist.
....auslesen ruecksetzen...in einem husch.
Mach dir keine Sorge darum.

Autor: Rolf Blacer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal mein Programm...misst erstmal nur die Periodendauer... werd es
heut abend mal testen... ob es auch stimmt!

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
haste schon probieren können, ich kenn mich mit dem Assembler nicht so
gut aus, schade
AxelR.

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennt sich denn jemand anders mit Assembler aus??

und kann sich das mal anschauen mein Programm?

Danke!

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jetzt ist mir noch eine Merkwürdigkeit aufgefallen...

Ich hab das Programm mit 1kHz ausprobiert...

Funktioniert eigentlich super...es gibt mir 1000 µs aus...

...aber ab und zu 1007...vieleicht aller 10 Messungen manchmal auch
häufiger ...aber immer nur 1007... hab dann ein bischen rumgespielt...
z.B. clr ex0 mal weggelassen ... dann hat es 993 ausgegeben...also ab
und zu...

wie kann das kommen? Wie beseitige ich den Fehler?

Autor: Rolf Blacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir denn mal jemand helfen???

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.