Forum: Mikrocontroller und Digitale Elektronik [ATMega128] komische USART1


von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Hi

Ich hab bis jetzt ja schon einige Projekte mit den ATMega128
Controllern abgewickelt, aber jetzt steh ich vor einem sehr seltsamen
Problem.
Und zwar... ich hab auf PortE (PE5) eine Interrupt Leitung von einem
Peripheriechip (5-Ton Auswerter) drauf. Diese Leitung wird relativ
selten ausgelöst und in meinem Programm wird die Leitung in einer
while-Schleife gepollt. Nachdem das Statusregister des Auswerters
ausgelesen wurde, geht die Interrupt Leitung wieder auf High!

Soweit ist das alles ok und funktioniert (für sich gesehen). Jetzt
benutze ich noch die zweite serielle Schnittstelle (USART1) zur
Übertragung einiger Einstellungen (polle ebenfalls in der selben
while-Schleife).

Das Problem das nun auftritt ist folgendes: irgendwie bekomm ich durch
den Zugriff auf die Register - egal welche - der USART1 Störungen auf
die Interrupt-Leitung (Pin PE5). Wenn die Störungen nur im mV Bereich
wären, dann würde mich das weniger stören, aber bei etwa 1-2V ist das
schon ein Problem. Lass ich die Register der USART1 in Ruhe, dann hab
ich keine Störungen drauf.

Vielleicht hat jemand einen Tipp für mich, wsa ich ausporbieren
könnte!? Vielleicht hats auch was mit dem Kompatiblitätsmodus zu tun
(Mega103)!?

mfg
Andreas

von lordludwig (Gast)


Lesenswert?

was hälst du von einem pullup-widerstand???

von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Hab ich schon drinnen!
10k gegen +5V

von Jörn G. aus H. (Gast)


Lesenswert?

Hört sich nach Programmfehler an!?
Wie sieht denn dein Code aus?
jörn

von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Programm sieht etwa so aus:
1
int main()
2
{
3
...
4
...
5
6
  while(1)
7
  {
8
    status = UDR1;
9
10
    if(!fx803Int())
11
    {
12
      ...
13
      // paar Aktionen, damit das Statement genommen wird
14
    }
15
  }
16
}

Übrigens ist es so, dass das Problem immer auftritt, wenn ich in dem
Bereich zwischen 0x60 und 0xFF (also in dem extended IO Reg. Bereich)
zugreife. Sobald ich also diesen Bereich lese oder schreibe, hab ich
Störungen auf dem PE5 Pin. Ab 0x100 gibts kein Problem mehr.
Ist doch sehr seltsam, oder??

mfg
Andreas

von mmerten (Gast)


Lesenswert?

Alle Vcc und GND Anschlüsse verbunden und korrekt abgeblockt ?
Oder ggf. probleme bei der richtigen Umsetzung von Port- auf
Memory-Mapped I/O Operationen?

von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Ja, hätte eigentlich alle VCC und GND Anschlüsse richtig verbunden und
auch dementsprechend Kondensatoren hinzugefügt.
Ich hab in dem Programmbeispiel oben nur einfache Port Operationen
laufen... nichts großartiges...
Hab jetzt auch mal eine Mail an Atmel geschrieben. Vielleicht kennen
die ja das Problem!
Danke erstmal für eure Hilfe... bin für weitere Tipps dankbar.

mfg
Andreas

von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Hab jetzt auch versucht, dass ich 5 der 8 Leitungen von dem Chip
abhänge. Ergebnis ist das selbe. Sobald ich auf die besagten Adressen
zugreife, hab ich Störungen am Port.

mfg
Andreas

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
Noch kein Account? Hier anmelden.