www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR 8515 und externer Interrupts


Autor: Sebastian Angerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe gerade folgendes Problem mit meinem ATMEGA8515 (Problem hatte ich
auch mit AT90S8515 in der gleichen Schaltung). Zum Aufbau der
Schaltung:
- Entwicklungsboard STK200+
- externe Schaltung mit einem Komparator (LM339N)
  Dieser vergleicht eine Spannung, die an einem Widerstand abfällt mit
  einer, durch einen Spannungsteiler generierten, Referenzspannung
- der Ausgang des Komparators (Open Collector) ist mit dem INT0 des
  AVR verbunden (externer Pull up oder interner Pull up --> gleiches
  Ergebnis)
- Spannungsversorgung und Masse ist mit STK200+ verbunden
- INT0 ist auf Flankensteuerung eingestellt (fallend oder steigend -->

  gleiches Ergebnis)
- AVR durch externen Quarz (4MHz) getaktet. (Kann auf STK200+ den
  Quarz nicht "abklemmen")

So, nun zum Problem. Solange ich mit dem internen Takt (1 MHz)
gearbeitet hatte, funktionierte der Interrupt einwandfrei, leider die
serielle Schnittstelle (USART) aber nicht. (Bd war richtig eingestellt.
Kann das evtl daran liegen, dass der ext. Quarz zwar abgeschaltet aber
trotzdem noch angeschlossen ist?)
Verwende ich hingegen den externen Takt, funktioniert der USART
einwandfrei, der INT0 wird aber bei Highpegel sehr häufig und
unregelmäßig ausgelöst!! Am Oszi (altes "analoges" Hameg) kann ich
jedoch keine Spannungsänderung messen.... Auch das zwischenschalten
eines TTL ODER-Gatters (zwischen Komparator und µC) brachte keinen
Erfolg...
Kennt evtl. jemand ein ähnliches Problem, bzw. kann mir einen Tip
geben, was ich noch versuchen sollte??
Bin für jede Anregung dankbar.

Sebastian

Autor: --- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal abgesehen von deinem Problem benutzt du keinenfalls einen AT90S8515
da dieser keinen internen Quarz besitzt geschweige denn ein USART.

Autor: Stefan_h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@---: genau lesen: "habe gerade folgendes Problem mit meinem
ATMEGA8515"

Was passiert mit der USART wenn er mit internem Takt läuft. Häng mal
das Oszi drauf und schau ob überhaupt was rauskommt oder ob bei der
Kommunikation was net passt.

lg,

Stefan

Autor: --- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan_h:
Ich muss mich für meinen sinnlosen Kommentar entschuldigen und Du hast
recht, ich sollte genauer lesen.

Autor: Sebastian Angerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für den Tip,
habe schonmal das Oszi draufgehalten und kann auch erkennen, dass es
kurz flackert. Leider habe ich privat kein digitales Oszi zur
Verfügung, das bei entsprechendem Trigger das Bild speichert, sonst
könnte ich das Signal ja mal genauer analysieren. Kann es sein, dass
der interne Takt nicht genau 4 MHz entspricht wenn man es so einstellt,
der externe Quarz jedoch noch angeschlossen ist? (Kann ihn halt leider
wie schon gesagt bei dem Board nicht abklemmen...)

Danke,
Sebastian

P.S.: @---: Nix für ungut. Wollte mit der Bemerkung lediglich sagen,
dass ich das Interruptproblem auch schon bei einem AT90S8515 (externer
Takt) beobachtet hatte

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast dun den internen Takt calibriert? (osccal)

...

Autor: Sebastian Angerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, hab ich nicht....
muss man das?
anhand welcher kriterien muss ich denn den takt kalibrieren?
was muss ich dazu tun?
hab sowas im Datenblatt gesehen, aber dann erstmal übergangen...

Sebastian

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann lies nochmal...

Das für den gewünschten Takt richtige Calibrationsbyte mittels
Programmersoftware aus dem Signature-Bereich des AVRs auslesen und per
eigener Software in das Register osccal schreiben.

...

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss jetzt nochmal ganz dumm fragen?

Liegen am Interuppt-Eingang die Signale an?

Werden beim UART Ausgangssignale bereitgestellt?

Hast Du den internen
Oszillator(1MHz) aktiviert? => wenn ja, dann sind 9600 Bd nicht
möglich, nur 4800 und 2400 und 1200.

Gruß

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er sprach von 4MHz intern.

...

Autor: Sebastian Angerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, werde es morgen gleich mit dem Calibration Byte
probieren...
(Hab beim überfliegen des Datenblatts gedacht, des sei nur für
irgendwelche Sonderfälle, wenn man mit seinem Prog. irgendwas über die
Taktgeschichten auslesen will.)

@bernhard: Habe 4 MHz intern eingestellt.
           Am Interrupt liegt der "hochgepullte" Ausgang des
Komparators

Sebastian

Autor: Sebastian Angerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt eine Lösung gefunden:
Problem mit den Interrupts kam von einem Poti, dass ich zur Erzeugung
der Referenzspannung am Komparator benutzte. Poti gegen 2 Widerstände
ausgetauscht --> läuft perfekt!!
Nun kann ich getrost wieder den externen Quarz verwenden. (Soll ja eh
viel besser sein...)

Danke nochmal an alle.

Sebastian

b.t.w.: Mit dem internen Takt habe ich trotz OSCCAL keine serielle
Verbindung zu Stande bringen können....aber ist ja jetzt auch egal.

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.