Hardware PWM stört Hardware USART

Gast #4364104
Hallo Forum,

ich bin grade dabei auf einem ATmega2560 zu programmieren.
Dieser kommuniziert mittels USART über einen FTDI mit dem Rechner (kein 
eigenes USART programmiert, sondern eingebautes USART0 benutzt).
Gleichzeitig spreche ich per SPI mehrere Peripherie geräte an (wieder 
das eingebaute SPI benutzt, kein eigenes Programmiert).

Dies klappt wunderbar und funktioniert ohne Zwischenfall stundenlang.

Doch dann setze ich den fast-pwm auf Pin L5 ein (Hardware-PWM), der auch 
funktioniert (Periodendauer = 8s wie gewünscht), und wir haben das 
Problem: Nach unvorhersehbaren Zeitabständen zwischen 1s und 2min bricht 
die USART Kommunikation vorrübergehen zusammen, PuTTY sagt das Lesen am 
Port funktionierte nicht mehr, MATLAB sagt das gleiche.
Dabei ist das globale Interrupt bit deaktiviert.

Hatte jemand schonmal so ein Problem?
#4364108
@Niklas Rpunkt (hobbycoder)

>Doch dann setze ich den fast-pwm auf Pin L5 ein (Hardware-PWM), der auch
>funktioniert (Periodendauer = 8s wie gewünscht),

ACHT Sekunden Periodendauer? Das ist eher ein langsames Blinken als PWM.

> und wir haben das
>Problem: Nach unvorhersehbaren Zeitabständen zwischen 1s und 2min bricht
>die USART Kommunikation vorrübergehen zusammen, PuTTY sagt das Lesen am
>Port funktionierte nicht mehr, MATLAB sagt das gleiche.
>Dabei ist das globale Interrupt bit deaktiviert.

>Hatte jemand schonmal so ein Problem?

Nö, aber es ist mit hoher Wahrscheinlichkeit ein Programmierfehler und 
kein Hardwaredefekt. Poste vollständigen Code als Anhang.
Gast #4364117
Felix A. schrieb:
> Was soll "Dabei ist das globale Interrupt bit deaktiviert" bedeuten?
> Steuert ihr alles aus einem Hauptprogramm ohne Interrupts?

Das bedeutet im SREG ist das Interrupt bit auf 0 gesetzt. Die 
Kommunikation über USART und die Kommunikation erfolgt beide male via 
polling. Sprich wir fragen so lange ab, ob wie senden können, bis wir 
senden können. Beim Empfang das gleiche. Aber da die latenz zwischen 
Senden und Empfangen via SPI so gering ist, ist dies kein Nachteil. Und 
USART benutzen wir eh nur unidirektional.
Gast #4364181
"PuTTY sagt das Lesen am Port funktionierte nicht mehr"
Das hört sich eher danach an als ob der FTDI die Grätsche macht..
Ist das USB-Gerät in dem Zustand noch da? Kannst du die USB-Verbindung 
mal trennen und wieder herstellen? Geht es dann wieder?
Gast #4364187
Chris schrieb:
> "PuTTY sagt das Lesen am Port funktionierte nicht mehr"
> Das hört sich eher danach an als ob der FTDI die Grätsche macht..
> Ist das USB-Gerät in dem Zustand noch da? Kannst du die USB-Verbindung
> mal trennen und wieder herstellen? Geht es dann wieder?

Wenn ich PuTTY direkt wieder öffne, dann empfange ich auch wieder die zu 
erwartenden Daten. Das geht ein paar Sekunden gut und dann bricht sie 
wieder zusammen.
#4364266
Ohne das Layout rauszugeben, könntest du den Verlauf der Leitung 
kontrollieren. Läuft diese dicht am USART entlang oder an dessen 
Leitungen? Oder sehr dicht am FTDI? Was hängt an dieser PWM-Leitung?

Hintergrund ist, dass hier steile Flanken auftreten, die eventuell 
kapazitiv in den USART oder FTDI einkoppeln.
Gast #4364333
Die beiden USART Leitungen und die Leitung mit PWM laufen so weit 
auseinander wie irgend möglich auf dem Board :/

Am Ende der PWM Leitung liegt ein Relais das angeblich im worst case max 
9mA zieht.
#4364340
Niklas Rpunkt schrieb:
> Am Ende der PWM Leitung liegt ein Relais das angeblich im worst case max
> 9mA zieht.

Dann ersetze das Relais doch mal durch einen passenden Widerstand ud 
prüfe nochmals. Deine Fehlerbeschreibung deutet darauf hin, dass auf der 
seriellen Schnitte Störungen sind, die den Treiber im PC zum Absturz 
bringen. Und eine Relaisspule, passend beschaltet, kann da durchaus 
interessante Effekte bringen.
Gast #4364385
Bauteiltöter schrieb:
> Hast du den TEST-Pin am FTDI beschaltet? Bleibt der offen ergibt sich so
> ziemlich das gleiche Fehlerbild.

TEST ist auf GND

Felix A. schrieb:
> Gibt es eine Freilaufdiode am Relais? Wird dieses über einen Transistor
> betrieben oder wirklich direkt über den Pin?

Darüber weiß ich leider nichts, da das relais in einem weiteren Bauteil 
versteckt ist, über das ich keine großartigen Daten habe außer welchen 
Pin ich high bzw. low machen muss

Georg G. schrieb:
> Dann ersetze das Relais doch mal durch einen passenden Widerstand ud
> prüfe nochmals.

Das werde ich tun, sobald ich den Aufbau entsprechend umgebaut habe.
#4364397
Hallo,

es scheint ja so, als ob der FTDI kurz "verschwindet". Wie wird der 
betreiben? Bus-powered? Eigentlich sind die Teile nicht sehr 
empfindlich.
Welche Baudrate wird denn benutzt? Die UART-Leitungen mit Störungen auf 
dem Weg zum FTDI so zu versauen daß der FTDI sich abmeldet ist garnicht 
so einfach.

Wenn das Relais eine Rolle spielt müßte der Fehler ja zu provozieren 
sein, der Absturz käme dann beim Schalten des Relais, das sollte doch zu 
beobachten sein.

Wenn es nur bei Einsatz der fastPWM passiert würde ich eher ein 
Softwareproblem vermuten.

Gruß aus Berlin
Michael
Gast #4364420
Was ist denn jetzt mit dem Schaltplan?
Fällt der - genauso wie manchmal das Ohmsche Gesetz - unter "STRENG 
GEHEIM"?

Ein Relais mit 9mA kommt mir schon etwas exotisch vor. Handelt es sich 
vielleicht um ein SSR?
Gerne ist auch falsche Sparsamkeit bei Abblockkondensatoren der Grund 
für solche merkwürdigen Fehler.
Gast #4364537
Ich hab das mit dem Widerstand statt relais jetzt gemacht. Keine 
Ausfälle mehr. Ich nehme an dass das relais schuld ist und werde das so 
weitergeben. Vielen Dank füe eure Hilfe.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.