[ATMega128] komische USART1

OP Persönliche Seite #232732
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
OP Persönliche Seite #232736
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
OP Persönliche Seite #232738
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren