Forum: Mikrocontroller und Digitale Elektronik Atmega 328: PWM-Ausgang streut auf andere Eingänge?!


von Volker U. (volkeru)


Angehängte Dateien:

Lesenswert?

Moin moin,

vielleicht hat der eine oder andere ja schon Erfahrungen damit gemacht 
und kann etwas dazu sagen:

Ich will beim Atmega328 einerseits Ausgang OC0B als PWM-Ausgang nutzen 
(Timer0) und gleichzeitig auch die Eingänge AIN0 und AIN1 als Analog 
Comparator. Das Problem dabei: Der PWM-ausgang OC0B streut ganz 
erheblich in den Eingang AIN0. Das jeweils am PWM-Ausgang anstehende 
Signal ist auch am Eingang AIN0 zu messen. Und zwar mit einer Spannung 
von ca. 600 mVss (siehe Oszillogramm). Der Comparator wird damit 
unbrauchbar.

Da der Eingang AIN0 auch als PWM-Ausgang am Timer0 fungieren kann 
(OC0A), könnte es vielleicht sein, dass da konstruktiv was faul ist und 
man den Timer0 nicht für PWM nutzen kann, wenn man auch den Analog 
Comparator nutzen will? Wenn es so wäre, wäre das ziemlich dämlich. ;-)

Gruß, Volker

von Joachim .. (joachim_01)


Lesenswert?

Kann gut sein. Ich hatte vor Jahren an nem PIC ein ähnliches Phänomen 
beobachtet; eine Änderung an einem Analogeingang brachte einen 
unbeschalteten danebenliegenden dazu, falsche Werte zu messen.

Zu dichte Strukturen und damit elektrostatische Einflüsse auf dem 
Substrat?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Messaufbau? Layout?

von spess53 (Gast)


Lesenswert?

Hi

>Ich hatte vor Jahren an nem PIC ein ähnliches Phänomen
>beobachtet; eine Änderung an einem Analogeingang brachte einen
>unbeschalteten danebenliegenden dazu, falsche Werte zu messen.

Was kann man an einem unbeschalteten Eingang für falsche Werte messen?

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Hab das mal schnell an einem ATMega48 getestet. Am offenen Eingang 
schlägt das PWM-Signal mit ca. 0,2V durch. Beim Anschalten eines 10k 
Potis (0/5V) an PD6(AIN0) ist davon nichts mehr da.

MfG Spess

von M. K. (avr-frickler) Benutzerseite


Lesenswert?

Hi.

Habe eine Schaltung mit Attiny84 wo mit dem Komperator gemessen wird und 
auf OC0B + OC0A eine PWM läuft. Dort schlägt nichts durch.

von Volker U. (volkeru)


Angehängte Dateien:

Lesenswert?

spess53 schrieb:
> Hab das mal schnell an einem ATMega48 getestet. Am offenen Eingang
> schlägt das PWM-Signal mit ca. 0,2V durch. Beim Anschalten eines 10k
> Potis (0/5V) an PD6(AIN0) ist davon nichts mehr da.

Oh, oh oh! :-(

Das ist richtig, die in meiner ersten Message dargestellten 600 mVss 
ergeben an einem Glättungskondensator 200 mVeff, da die durchschlagende 
Spannung sowohl im negativen, als auch im positiven Bereich liegt, was 
auch nicht sein dürfte! Setzt man das Output Compare Register des 
PWM-Ausgangs (OC0B) auf den Wert 255, senkt sich das durchschlagende 
Signal plötzlich auf 0V, was auf kapazitive Effekte hindeutet. Hängt man 
- wie du vorgeschlagen hast - einen Widerstand von 10k gegen Masse an 
den Eingang AIN0, so ergibt sich eine Folge von üblen Nadelimpulsen mit 
1 Vss, die eine Nutzung des Comparators weiterhin unmöglich machen (1. 
Oszillogramm: 100k gegen Masse, 2. Oszillogramm: 10k gegen Masse). Du 
konntest das mit deinem Messgerät vermutlich nur nicht messen. Die 
Oszillogramme sprechen dafür, dass kapazitive Effekte eine Rolle spielen 
und das nährt den Verdacht, dass die von Joachim geäußerte Vermutung 
elektrostatischer Einflüsse im Substrat richtig ist. Insbesondere, da 
das Problem beim Atmega48 ebenso wie beim 328er auftritt.

M. K. schrieb:
> Habe eine Schaltung mit Attiny84 wo mit dem Komperator gemessen wird und
> auf OC0B + OC0A eine PWM läuft. Dort schlägt nichts durch.

Diese Aussage bestätigt die Vermutung eines konstruktiven Fehlers, wenn 
es dort nicht auftritt. Man könnte den Attiny85 auch nochmal testen.

Wenn es so ist, sollte man das wohl mal an Atmel melden. Im derzeitigen 
Errata findet sich nämlich noch kein entsprechender Hinweis. Sehr 
schade, dass die AtmegaXX8-Reihe einen so deutlichen Konstruktionsfehler 
aufweist :-(.

Gruß, Volker

von Clyde H. (clyde)


Lesenswert?

Hallo zusammen,

das Problem habe ich wohl auch...
Ich nutz einen Mega168 mit PWM sowie 3 ADC Eingängen.
Wobei ich mit ADC 1+2 nur (Hohe)Spannung messe und somit der Fehler 
nicht auffiel.
Mit ADC3 hingegen messe ich nur ein Poti als Spannungsteiler mit 5V als 
Füllstandmesser und habe ebenfalls steigende Wert am ADC wenn die PWM im 
Betrieb ist.
Wenn die PWM bei mir über ca. 160 ist, geht die Spannung wieder zurück 
und bei PWM 255 ist alles wieder ok.
Da ich die PWM Temperaturabhängig in Stufen schalte, konnte ich das so 
grob fest machen.

von spess53 (Gast)


Lesenswert?

Hi

>Hängt man
>- wie du vorgeschlagen hast - einen Widerstand von 10k gegen Masse an
>den Eingang AIN0,

Ich habe keinen Widerstand nach Masse angeschlossen, sondern eine 
Spannung angelegt. Und damit ist das identisch mit der Aussage von M. 
K. (avr-frickler)

>Du konntest das mit deinem Messgerät vermutlich nur nicht messen.

Hältst du mich für blöd? Wurde zufällig auch mit einem UNI-T (UDT4152C) 
gemessen.

>Diese Aussage bestätigt die Vermutung eines konstruktiven Fehlers, wenn
>es dort nicht auftritt. Man könnte den Attiny85 auch nochmal testen.

Bestätigt nur, das du mal richtig messen solltest. Wie wäre es mal mit 
einem Bild von deinem Aufbau.

Du kannst getrost davon ausgehen das das nicht am AVR liegt.

MfG Spess

von Volker U. (volkeru)


Lesenswert?

Was ich noch zu sagen vergaß: Signale mit sehr niedriger Impedanz (ca. 1 
kOhm) kann man an AIN0 vermutlich halbwegs genau messen, weil sie die 
Störungen "wegsaugen", aber nicht alle Messsignale haben eine so 
niedrige Impedanz. Um nicht zu sagen die allerwenigsten... Und wenn ich 
erst einen Operationsverstärker vorschalten muss, um die Impedanz zu 
erniedrigen, kann ich auf den Komparator auch ganz verzichten und gleich 
einen Interrupt-Eingang nehmen.

von Falk B. (falk)


Lesenswert?

@Volker U. (volkeru)

>Das ist richtig, die in meiner ersten Message dargestellten 600 mVss
>ergeben an einem Glättungskondensator 200 mVeff,

Was für ein Glättiungskondensator und wo angeschlossen?

>da die durchschlagende
>Spannung sowohl im negativen, als auch im positiven Bereich liegt, was
>auch nicht sein dürfte! Setzt man das Output Compare Register des
>PWM-Ausgangs (OC0B) auf den Wert 255, senkt sich das durchschlagende
>Signal plötzlich auf 0V, was auf kapazitive Effekte hindeutet.

Nö, deine PWM steht still.

> Hängt man
>- wie du vorgeschlagen hast - einen Widerstand von 10k gegen Masse an
>den Eingang AIN0, so ergibt sich eine Folge von üblen Nadelimpulsen mit
>1 Vss,

Kaum zu glauben, dass das DERMASSEN durchschlägt.
Klingt eher nach Messfehler oder so.
Sind auch ALLE GND-Pins angeschlossen? Und ALLE VCC Pins?

>Oszillogramme sprechen dafür, dass kapazitive Effekte eine Rolle spielen
>und das nährt den Verdacht, dass die von Joachim geäußerte Vermutung
>elektrostatischer Einflüsse im Substrat richtig ist. Insbesondere, da
>das Problem beim Atmega48 ebenso wie beim 328er auftritt.

Da hab ich meine Zweifel.

>> Habe eine Schaltung mit Attiny84 wo mit dem Komperator gemessen wird und
>> auf OC0B + OC0A eine PWM läuft. Dort schlägt nichts durch.

>Diese Aussage bestätigt die Vermutung eines konstruktiven Fehlers, wenn
>es dort nicht auftritt.

Du bist ganz schön vorschnell mit deinen Schlüssen.

>Wenn es so ist, sollte man das wohl mal an Atmel melden. Im derzeitigen
>Errata findet sich nämlich noch kein entsprechender Hinweis. Sehr
>schade, dass die AtmegaXX8-Reihe einen so deutlichen Konstruktionsfehler
>aufweist :-(.

Das ist gar nicht erwiesen, nur eine Vermutung, die du zur Tatsache 
erklärst.

von Volker U. (volkeru)


Angehängte Dateien:

Lesenswert?

spess53 schrieb:
>>Du konntest das mit deinem Messgerät vermutlich nur nicht messen.
>
> Hältst du mich für blöd? Wurde zufällig auch mit einem UNI-T (UDT4152C)
> gemessen.

Da du über die Messmethode nichts gesagt hast, war ich davon 
ausgegangen, dass du mit einem Multimeter gemessen hast. Zumal du 200 mV 
geschrieben hast, was ein Effektivwert ist. Du hast die Effektivspannung 
also im "MEASURE"-Modus vom Oszilloskop bestimmen lassen? Dann kommen da 
etwa 220 mV raus. Aber dann hättest du eigentlich auch das in Bild 2 
dargestellte Nadelimpulsmuster auf deiner gemessenen Spannung sehen 
müssen! Dieses habe ich mit einem Spannungsteiler 2x4,7k erzeugt. Also 
das entspricht deinem Poti in Mittelstellung.

> Ich habe keinen Widerstand nach Masse angeschlossen, sondern eine
> Spannung angelegt. Und damit ist das identisch mit der Aussage von M.
> K. (avr-frickler)

Hättest du dein Oszi mal auf AC-Kopplung eingestellt, hättest du das 
Oszillogramm in Bild 1 erhalten. Hoffe ich doch mal :-).

> Bestätigt nur, das du mal richtig messen solltest. Wie wäre es mal mit
> einem Bild von deinem Aufbau.

Immer erstmal an die eigene Nase fassen! An dem Aufbau ist nicht viel zu 
erklären: Ein nackter Atmega328 mit einem Tastkopf (x10) am 
AIN0-Eingang. Und wahlweise deinem Vorschlag folgend einem 
Spannungsteiler zusätzlich am Eingang.

> Du kannst getrost davon ausgehen das das nicht am AVR liegt.

Und woher kommen dann deine 200 mV an einem unbelasteten Eingang? Zumal 
diese Spannung auch noch auf 0V absinkt, wenn man das Output Compare 
Register eines ganz anderen PWM-Ausgangs auf 255 setzt?!

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

Clyde H. schrieb:
> das Problem habe ich wohl auch...
> Ich nutz einen Mega168 mit PWM sowie 3 ADC Eingängen.
> Wobei ich mit ADC 1+2 nur (Hohe)Spannung messe und somit der Fehler
> nicht auffiel.
> Mit ADC3 hingegen messe ich nur ein Poti als Spannungsteiler mit 5V als
> Füllstandmesser und habe ebenfalls steigende Wert am ADC wenn die PWM im
> Betrieb ist.
> Wenn die PWM bei mir über ca. 160 ist, geht die Spannung wieder zurück
> und bei PWM 255 ist alles wieder ok.
> Da ich die PWM Temperaturabhängig in Stufen schalte, konnte ich das so
> grob fest machen.

Danke für diesen sachlichen Beitrag, der auf das Problem INHALTLICH 
eingeht und nicht - wie manch andere hier - nur um zu provozieren.

Dass bei PWM 255 alles okay ist, bestätigt erneut die Vermutung 
kapazitiv parasitärer Effekte, denn genau so ist es bei mir auch! Bei 
PWM 255 wird nämlich kein PWM-Signal mehr erzeugt, sondern der 
PWM-Ausgang liegt durchgehend auf Vcc. Und ohne Schwingung auch keine 
kapazitiven Effekte!

Danke!
Volker

von Uwe (Gast)


Lesenswert?

> Ein nackter Atmega328 mit einem Tastkopf
Na dann mach doch mal 100nF zwischen alle VCC und GND und AVCC und AGND.
Kannst auch noch 10nF zwischen AVCC und AGND packen.

von spess53 (Gast)


Lesenswert?

Hi

>Immer erstmal an die eigene Nase fassen! An dem Aufbau ist nicht viel zu
>erklären: Ein nackter Atmega328 mit einem Tastkopf (x10) am
>AIN0-Eingang.

Also ohne Abblockkondensatoren am AVR?

>Und woher kommen dann deine 200 mV an einem unbelasteten Eingang?

Meiner hat hat auf einem STK500 gesteckt. Dort sind solche Einstreuungen 
an einem offenen Eingang, zumal am Portheader gemessen, normal.

Und da der Effekt nach dem Anlegen einer Spannung erwartungsgemäß 
verschwindet sehe ich keinen Grund an der Funktionsfähigkeit des AVRs zu 
zweifeln.

MfG Spess

von Volker U. (volkeru)


Lesenswert?

Falk Brunner schrieb:
>>Das ist richtig, die in meiner ersten Message dargestellten 600 mVss
>>ergeben an einem Glättungskondensator 200 mVeff,
>
> Was für ein Glättiungskondensator und wo angeschlossen?

Ein Glättungskondensator parallel zur Last (auch RC-Glied als Tiefpass: 
http://de.wikipedia.org/wiki/Effektivwert) liegt bekanntlich gegen Masse 
und erzeugt somit einen Effektivwert. Den Wert, den man ja auch mit dem 
Multimeter oder mit dem Auswertungsmodus eines entsprechenden digitalen 
Oszilloskops messen kann. Und der wurde ja auch gemessen. Von mir und 
auch von spess53.

>>da die durchschlagende
>>Spannung sowohl im negativen, als auch im positiven Bereich liegt, was
>>auch nicht sein dürfte! Setzt man das Output Compare Register des
>>PWM-Ausgangs (OC0B) auf den Wert 255, senkt sich das durchschlagende
>>Signal plötzlich auf 0V, was auf kapazitive Effekte hindeutet.
>
> Nö, deine PWM steht still.

Habe ich was anderes gesagt? Darf die PWM eines anderen Ausgangs sich 
auf die Ruhespannung an einem völlig anderen Eingang auswirken?

>> Hängt man
>>- wie du vorgeschlagen hast - einen Widerstand von 10k gegen Masse an
>>den Eingang AIN0, so ergibt sich eine Folge von üblen Nadelimpulsen mit
>>1 Vss,
>
> Kaum zu glauben, dass das DERMASSEN durchschlägt.
> Klingt eher nach Messfehler oder so.
> Sind auch ALLE GND-Pins angeschlossen? Und ALLE VCC Pins?

Es handelt sich um die SMD-Version (Atmega328-AU), quarzgetaktet mit 4 
MHz. Alle GND-Pins sind mit Masse verbunden, alle Vcc Pins und AVCC mit 
+5V.

Ja, kaum zu glauben, aber wahr. Ich wollte es ja auch erst nicht 
glauben, sonst hätte ich kaum hier was geschrieben. Aber ich habe ja nun 
schon 2 Bestätigungen für meine Messung erhalten. Im übrigen arbeite ich 
schon seit Jahren mit dem Atmega328 und dies ist nicht mein erstes 
Gerät. Aber das erste in dieser Konstellation unter Nutzung des Analog 
Comparators.

>>> Habe eine Schaltung mit Attiny84 wo mit dem Komperator gemessen wird und
>>> auf OC0B + OC0A eine PWM läuft. Dort schlägt nichts durch.
>
>>Diese Aussage bestätigt die Vermutung eines konstruktiven Fehlers, wenn
>>es dort nicht auftritt.
>
> Du bist ganz schön vorschnell mit deinen Schlüssen.

Aber nur, weil ich nicht genau gelesen hatte. Wenn beide PWM-Ausgänge 
mit einer PWM beaufschlagt werden (wie avr-frickler schrieb), entspricht 
dies nicht meiner Schaltung, denn ich habe ja nur OC0B mit PWM 
beaufschlagt und OC0A ist disconnected und wird als AIN1 für den Analog 
Comparator genutzt. Diese Aussage ziehe ich mal zurück.

>>Wenn es so ist, sollte man das wohl mal an Atmel melden. Im derzeitigen
>>Errata findet sich nämlich noch kein entsprechender Hinweis. Sehr
>>schade, dass die AtmegaXX8-Reihe einen so deutlichen Konstruktionsfehler
>>aufweist :-(.
>
> Das ist gar nicht erwiesen, nur eine Vermutung, die du zur Tatsache
> erklärst.

"Wenn es so ist, sollte man" ist alles andere als die Erklärung einer 
Tatsache.

Wenn es so ist, wie clyde schreibt, ist sogar der ganze ADC-Bereich des 
Controllers für feine Messungen unbrauchbar, sofern man die PWM nutzt. 
Denn wie er das darstellt, schlägt die PWM auf sämtliche ADC-Eingänge 
durch. Das war mir bisher noch nicht aufgefallen.

Gruß, Volker

von Helmut L. (helmi1)


Lesenswert?

Volker U. schrieb:
> Ein Glättungskondensator parallel zur Last (auch RC-Glied als Tiefpass:
> http://de.wikipedia.org/wiki/Effektivwert) liegt bekanntlich gegen Masse
> und erzeugt somit einen Effektivwert.

Noe. Der erzeugt dir den arithmetischen Mittelwert nicht den 
Effektivwert.
Effektivwert ist was anders. Das ist der jenige Wert der dir an einen 
Widerstand die gleiche Leistung umsetzt wie eine Gleichspannung. Was du 
machst mit dem RC ist der arithmetische Mittelwert des Signales.

von Volker U. (volkeru)


Lesenswert?

Uwe schrieb:
>> Ein nackter Atmega328 mit einem Tastkopf
> Na dann mach doch mal 100nF zwischen alle VCC und GND und AVCC und AGND.
> Kannst auch noch 10nF zwischen AVCC und AGND packen.

Ja, das ist natürlich vorhanden. Hatte ich nur nicht geschrieben. 100 nF 
Folienkondensator zwischen AVCC und GND, zwischen VCC und GND. Und dann 
noch ein 100 uF Elko. Kondensatoren habe ich genug verteilt. Ich habe 
sogar Atmels Vorschlag folgend 10 uH Induktivität zwischen Vcc und AVCC 
gelegt. Alles völlig ohne Wirkung auf das Problem. Selbst wenn ich alle 
Kondensatoren und die Induktivität entferne, ändert sich an der 
durchschlagenden Spannung Null Komma nix!

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

Helmut Lenzen schrieb:
> Volker U. schrieb:
>> Ein Glättungskondensator parallel zur Last (auch RC-Glied als Tiefpass:
>> http://de.wikipedia.org/wiki/Effektivwert) liegt bekanntlich gegen Masse
>> und erzeugt somit einen Effektivwert.
>
> Noe. Der erzeugt dir den arithmetischen Mittelwert nicht den
> Effektivwert.
> Effektivwert ist was anders. Das ist der jenige Wert der dir an einen
> Widerstand die gleiche Leistung umsetzt wie eine Gleichspannung. Was du
> machst mit dem RC ist der arithmetische Mittelwert des Signales.

Ja, du hast Recht. Bei RMS geht ja die Quadratwurzel ein, weshalb sich 
der negative Spannungsanteil sich nicht subtrahiert, sondern addiert. 
Deshalb liegt der arithmetische Mittelwert ja auch bei 220 mV und der 
Effektivwert bei 320 mV. So habe ich es auch gemessen. Am Kondensator 
ca. 200 mV und das Oszilloskop sagte 320 mV Effektivspannung.

Das ändert aber alles nichts am Problem :-)

von Clyde H. (clyde)


Lesenswert?

> Wenn es so ist, wie clyde schreibt, ist sogar der ganze ADC-Bereich des
> Controllers

Äh, fast. Das mag falsch rüber gekommen sein.
Ich kann es nur an einem ADC nachvollziehen, weil der Wert fast Statisch 
ist(Füllhöhe Regentank). die Anderen ADC messen Akku und Solar-Spannung 
und dort sind immer Schwankungen(wenn Verbraucher grade Laufen o.ä.)

Aber es ist fakt, das der PWM meinen Tank voller macht als er ist.;-)
Ich habe allerdings ein Poti mit langem Kabel an den Mega aber dafür 
läuft die PWM über ein separates Kabel und ist auch von der Schaltung 
her(FET usw.) von dem ADC etwas entfernt(auf Lochraster) aufgebaut.

von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Immer erstmal an die eigene Nase fassen! An dem Aufbau ist nicht viel zu
>>erklären: Ein nackter Atmega328 mit einem Tastkopf (x10) am
>>AIN0-Eingang.
>
> Also ohne Abblockkondensatoren am AVR?

Nein, natürlich sind mehrere Abblockkondensatoren vorhanden (siehe 
meinen vorletzten Beitrag #2743806:)

>>Und woher kommen dann deine 200 mV an einem unbelasteten Eingang?
>
> Meiner hat hat auf einem STK500 gesteckt. Dort sind solche Einstreuungen
> an einem offenen Eingang, zumal am Portheader gemessen, normal.

Aber keine Einstreuungen, die sich durch Änderungen am Output Compare 
Register eines ganz anderen Ports mit verändern! Und nicht, wenn du den 
Eingang mit 10k belastest. Das ist eine recht ordentliche Last für einen 
CMOS-Baustein. Da sind parasitäre Effekte durch EMV eigentlich 
ausgeschlossen. Nadelimpulse von 1 Vss lassen sich damit keinesfalls 
mehr erklären.

Ich habe den AVR auf einem Steckbrett, das mitten auf dem Tisch liegt. 
Da sind Einstreuungen von außen minimal. Maximal 10 mV. Da ich das selbe 
messe wie du auf dem STK500, beharre ich darauf, dass es ein AVR-Fehler 
ist. Bisher hat keiner das Gegenteil bewiesen :).

> Und da der Effekt nach dem Anlegen einer Spannung erwartungsgemäß
> verschwindet sehe ich keinen Grund an der Funktionsfähigkeit des AVRs zu
> zweifeln.

D.h. du kannst bei Mittelstellung des Potis und bei AC-Kopplung deines 
Oszilloskops im 200 mV Messbereich keine Nadelimpulse auf der 2,5 V 
Spannung messen? Das würde mich aber SEHR wundern!

Außerdem empfehle ich, mal eine Spannungsquelle mit höherer Impedanz 
anzuschließen. Also z.B. 100 kOhm, wie es normalerweise bei Sensoren 
eher üblich ist. Dann sieht die Sache wieder noch ganz anders aus. Es 
wäre auch dann ein unbrauchbarer Comparator, wenn man damit nur 
Spannungsquellen niedriger Impedanz messen könnte.

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

Clyde H. schrieb:
>> Wenn es so ist, wie clyde schreibt, ist sogar der ganze ADC-Bereich des
>> Controllers
>
> Äh, fast. Das mag falsch rüber gekommen sein.
> Ich kann es nur an einem ADC nachvollziehen, weil der Wert fast Statisch
> ist(Füllhöhe Regentank). die Anderen ADC messen Akku und Solar-Spannung
> und dort sind immer Schwankungen(wenn Verbraucher grade Laufen o.ä.)
>
> Aber es ist fakt, das der PWM meinen Tank voller macht als er ist.;-)
> Ich habe allerdings ein Poti mit langem Kabel an den Mega aber dafür
> läuft die PWM über ein separates Kabel und ist auch von der Schaltung
> her(FET usw.) von dem ADC etwas entfernt(auf Lochraster) aufgebaut.

Okay. Ich war bisher nur davon ausgegangen, dass die PWM-Ports des 
gleichen Timers sich gegenseitig beeinflussen, wenn einer davon als 
PWM-Ausgang genutzt wird und der andere als Eingang (ADC oder AIN) 
beschaltet ist.

Das werde ich aber in Kürze prüfen, denn mir bleibt derzeit nichts 
anderes übrig, als den PWM-Ausgang auf den Timer2 zu verlegen und den 
Timer0 gar nicht mehr für PWM zu benutzen. Dann wird sich spätestens 
herausstellen, ob auch andere PWM-Ausgänge den Analog Comparator negativ 
beeinflussen.

von spess53 (Gast)


Lesenswert?

Hi

>Ich habe den AVR auf einem Steckbrett, das mitten auf dem Tisch liegt.

Na dann wundert mich nichts mehr. Die Teile haben eine kapazitive 
Kopplung zwischen den Kontakten das hier schon Leute geschafft haben den 
Quarz am AVR ohne die üblichen Kondensatoren zu betreiben. Dazu kommt 
noch dein SMD-Adapter. Außerdem ist die Masseführung eher suboptimal.

Erklärt übrigens auch weshalb deine Kondensatoren nicht sehr wirksam 
sind.

>Da ich das selbe
>messe wie du auf dem STK500, beharre ich darauf, dass es ein AVR-Fehler
>ist. Bisher hat keiner das Gegenteil bewiesen :).

Ich weiß das aber wo das herkommt. Du anscheinend nicht.

MfG Spess

von Volker U. (volkeru)


Lesenswert?

Clyde H. schrieb:
>> Wenn es so ist, wie clyde schreibt, ist sogar der ganze ADC-Bereich des
>> Controllers
>
> Äh, fast. Das mag falsch rüber gekommen sein.
> Ich kann es nur an einem ADC nachvollziehen, [..]

Okay, ich habs getestet. Das PWM-Signal an Ausgängen von Timer2 schlägt 
auch auf den Analog Comparator durch, aber nur mit ca. 20 mVss.

Wer also mit einer Messungenauigkeit von 20 mV am Comparator leben kann 
(also bezogen auf 5V ca. 0,4%), der kann den Comparator nutzen, aber nur 
wenn der zugehörige Timer für PWM unbenutzt bleibt.

Wer der Meinung ist, dass es sich hier um einen Messfehler oder einen 
falschen Aufbau handelt, ist herzlich dazu eingeladen, es selbst zu 
testen! Ich würde das Problem nämlich gerne anders beheben, als durch 
Verlegung der PWM-Ausgänge.

von spess53 (Gast)


Lesenswert?


von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> Na dann wundert mich nichts mehr. Die Teile haben eine kapazitive
> Kopplung zwischen den Kontakten das hier schon Leute geschafft haben den
> Quarz am AVR ohne die üblichen Kondensatoren zu betreiben.

Das Steckbrett ist unproblematisch. Das benutze ich seit 10 Jahren und 
damit habe ich schon ganz andere Aufbauten gemacht - ohne kapazitive 
Probleme und mit viel höheren Frequenzen.

> Dazu kommt noch dein SMD-Adapter.

Okay, der SMD-Adapter ist neu, aber ich würde es erstmal nicht darauf 
zurückführen.

>>Da ich das selbe
>>messe wie du auf dem STK500, beharre ich darauf, dass es ein AVR-Fehler
>>ist. Bisher hat keiner das Gegenteil bewiesen :).
>
> Ich weiß das aber wo das herkommt. Du anscheinend nicht.

Du hast dich zu den Nadelimpulsen bei AC-Kopplung des Oszis bisher nicht 
geäußert. Warum nicht? Kannst du sie nun bei Beschaltung mit einem 10 
kOhm Poti in Mittelstellung reproduzieren oder nicht? Weder die 
Nachteile eines Steckbretts, noch des STK500 können erklären, warum bei 
einer 10k Last noch Nadelimpulse mit 1 Vss auftreten. Das ist durch 
Einstreuung von Außen nicht zu erklären. Nicht bei Rechteckimpulsen von 
5 V. Da wären die Impulse schon bei einer wesentlich geringeren Last 
verschwunden.

von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> Beitrag "Re: Atmega 328: PWM-Ausgang streut auf andere Eingänge?!"

Du ignorierst auch die Beiträge von Clyde, der das selbe Problem hat - 
ohne Steckbrett oder STK-500.

von spess53 (Gast)


Lesenswert?

Hi

>Du hast dich zu den Nadelimpulsen bei AC-Kopplung des Oszis bisher nicht
>geäußert. Warum nicht?

Weil sich das Ganze im Moment 8km entfernt befindet.

>Das Steckbrett ist unproblematisch. Das benutze ich seit 10 Jahren und
>damit habe ich schon ganz andere Aufbauten gemacht - ohne kapazitive
>Probleme und mit viel höheren Frequenzen.

Die Flanken entscheiden, nicht die Frequenz.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

>Du ignorierst auch die Beiträge von Clyde, der das selbe Problem hat -
>ohne Steckbrett oder STK-500.

Ohne Clyde in irgend einer Weise nahe treten zu wollen, aber die Reihe 
der möglichen Fehler sind beim ADC recht hoch. Ich kann diese Aussage 
nur so hinnehmen, aber nicht bewerten. Genau so wenig wie du.

MfG Spess

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich wurde da gern mal einen Schaltplan sehen...

Zum Thema Impedanz: der ADC vom AVR stellt eine kapazitive Last dar. Da 
sollte aussen am Pin am besten ein 100n Kondensator angeschlossen 
werden.

von Patrick (Gast)


Lesenswert?

Volker U. schrieb:
> Das Steckbrett ist unproblematisch. Das benutze ich seit 10 Jahren und
> damit habe ich schon ganz andere Aufbauten gemacht - ohne kapazitive
> Probleme und mit viel höheren Frequenzen.

Na, dann sind wir ja beruhigt; dann kann es ja nicht am Aufbau liegen. 
Und Atmel fertigt ja nur schätzungsweise ein paar Millionen AVRs pro 
Jahr (habe auf die Schnelle keinen Geschäftsbericht gefunden, der 
tatsächliche Zahlen enthält) und ist auch erst seit über zehn Jahren mit 
der AVR-Familie auf dem Markt; da ist es schon verständlich, dass noch 
derartige "Fehler" im Design vorhanden sind - und auch, dass das noch 
keiner der Handvoll Anwender gemerkt hat.

Ernsthaft: Der "Fehler" findet sich mit 99%iger Wahrscheinlichkeit in 
Deinem Aufbau. spess53 hatte hierzu bereits alles gesagt; ein Steckbrett 
ist in jeder nur erdenklichen Weise absolut suboptimal.
Wir wissen außerdem immer noch nicht, WIE der Aufbau eigentlich aussieht 
(d. h. was am PWM-Ausgang dranhängt (Strom in der PWM-Leitung, 
Rückwirkungen auf die Spannungsversorgung, EMV, ...)
Es gibt so viele Variablen, dass eine sinnvolle Diagnose bzw. Aussage 
mit den gegebenen Informationen schlicht nicht möglich ist.

Auch das Thema "Eingangsimpedanz für den A/D-Wandler" wird lang und 
breit in der Literatur (Datenblatt bzw. App-Notes) behandelt; dort steht 
eindeutig, wie die Zuführung an den ADC idealerweise auszusehen hat.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alle "Fehler" im Zusammenhang mit dem ADC, die ich bisher gesehen habe, 
hatten mit hochohmigen Quellen ohne Pufferkondensator zu tun. Das gibt 
dann so lustige Verschleppungseffekte, wo der vorher gewandelte Kanal 
sei nachfolgende Messung beeinflusste...

Und: an einem offenen hochohmigen Portpin mit einem Oszii zu messen 
und in diese Messung auch noch was hineinzuinterpretieren, das ist 
gewagt...

von Volker U. (volkeru)


Lesenswert?

Lothar Miller schrieb:
> Ich wurde da gern mal einen Schaltplan sehen...

Kann ich demnächst mal machen. Aber daran ist nicht viel zu sehen.

> Zum Thema Impedanz: der ADC vom AVR stellt eine kapazitive Last dar. Da
> sollte aussen am Pin am besten ein 100n Kondensator angeschlossen
> werden.

Mit 100 nF am Eingang sind aber keine sich schnell ändernden Spannungen 
mehr messbar. Das würde den Comparator auf Gleichspannungen beschränken. 
Auch Atmel gibt nirgendwo derartige Empfehlungen. Es geht ja auch nicht 
um den ADC, sondern um den Analog Comparator! Der muss erheblich 
schneller reagieren, als ein ADC. Handbuch Atmel: Analog Comparator 
Propagation Delay: 500 ns. Wenn ich 500 ns (entsprechen 2 MHz) auflösen 
will, kann ich da keine 100 nF dranhängen! Dann darf da gar keine 
Kapazität dranhängen.

Lothar Miller schrieb:
> Und: an einem offenen hochohmigen Portpin mit einem Oszii zu messen
> und in diese Messung auch noch was hineinzuinterpretieren, das ist
> gewagt...

Ich habe - wie geschrieben - nicht nur am offenen Eingang gemessen, 
sondern an einem mit 100k bzw. 10k gegen Masse belasteten Eingang. Mit 
den oben erwähnten und auch in Oszillogrammen dargestellten Effekten.

Wenn das Steckbrett einen so negativen Einfluss hätte, müssten sich alle 
benachbarten Kontaktbahnen gegenseitig beeinflussen. Tun sie aber nicht. 
Da kann ich 16 kHz Rechteckimpulse mit 5V und 100 mA auf eine 
Kontaktbahn jagen und an der Bahn daneben messe ich gar nichts. 
Höchstens ein paar mV.

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> Weil sich das Ganze im Moment 8km entfernt befindet.

Okay, dann bin ich sehr gespannt, was du morgen zu berichten hast! Dass 
du unter ganz anderen Bedingungen ebenfalls 200 mV gemessen hast, finde 
ich ein sehr starkes Argument, das man nicht so einfach vom Tisch 
wischen kann. Es wäre schon ein seltsamer Zufall, wenn auf deinem STK500 
fast aufs Millivolt genau die selben eletromagnetischen 
Strahlungsbedingungen herrschen würden, wie auf meinem Steckbrett. Und 
selbst wenn es externe Streuung wäre (was ich für extrem 
unwahrscheinlich halte): Wie soll man seine Schaltung denn wohl 
aufbauen, wenn es nahezu unmöglich ist, diese Strahlung vom Comparator 
fernzuhalten? Das löst das praktische Problem letztlich auch nicht.

> Die Flanken entscheiden, nicht die Frequenz.

Ja, Dirac lässt grüßen. Ich meinte aber auch höhere Frequenzen mit 
Rechteckflanken (soweit man dabei überhaupt von Rechteck sprechen kann). 
Da hatte ich nie Probleme. Ich baue ja nicht erst seit gestern 
Schaltungen. Also ein klein wenig weiß ich schon von dem, was ich sage. 
Und bevor ich hier schreibe, habe ich mir schon selbst eine Menge 
Gedanken gemacht, experimentiert und versucht, andere Fehlerquellen 
auszuschließen.

von Volker U. (volkeru)


Lesenswert?

Ich habe noch einen Test in einer anderen Umgebung durchgeführt. Da das 
STK500 ja schon getestet wurde, habe ich es nicht mit meinem STK500 
probiert, sondern den Chip nun nochmal auf ein Atmel-Evaluationboard von 
Pollin gesteckt. Diesmal also nicht die SMD-Version, sondern DIP. Exakt 
das selbe: Bei 16 kHz PWM an PD5 (OC0B) misst man knapp 400 mVss 
sauberes Rechtecksignal an einem unbeschalteten Eingang (PD6 / AIN0) 
bzw. eine Nadelimpulsfolge von rund 1 Vss bei Beschaltung des Eingangs 
mit dem beliebten 10k Poti.

Es tut mir leid, aber egal woher diese Schmutz-Impulse nun kommen. Wenn 
es weder auf meinem Steckbrett, noch auf einem STK500 oder auf dem 
Pollin Evaluationsboard möglich ist, diesen Mist vom Analog Comparator 
wegzukriegen, dann ist es letztlich auch egal, woher er kommt. Analog 
Comparator und PWM sind offenbar einfach nicht zusammen nutzbar. Womit 
wir wieder ganz am Anfang bei meiner Eingangsfrage wären. :-(

Interessant ist übrigens, dass die Messungen in zwei völlig 
verschiedenen Umgebungen (Steckbrett und Evaluationsboard) und mit zwei 
verschiedenen Gehäuseformen (SMD und DIP) EXAKT die selben 
Messergebnisse liefern. Wer da noch von "Streuung" oder "Einstrahlung" 
spricht, der glaubt auch an den Weihnachtsmann :-). Beim Pollin-Board 
habe ich sogar direkt am Pin des IC mit dem Tastkopf gemessen. Da 
bleiben wenig Einstrahlungsmöglichkeiten.

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

>Du hast dich zu den Nadelimpulsen bei AC-Kopplung des Oszis bisher nicht
>geäußert. Warum nicht? Kannst du sie nun bei Beschaltung mit einem 10
>kOhm Poti in Mittelstellung reproduzieren oder nicht? Weder die
>Nachteile eines Steckbretts, noch des STK500 können erklären, warum bei
>einer 10k Last noch Nadelimpulse mit 1 Vss auftreten.

So, mal zwei Messungen von mir. SCR0002 ist das offene AIN0-Pin (Pin 
steckt nicht in der Fassung) bei einer 30kHz PWM an OCR0B. SCR0001 das 
gleiche mit ca.2,5V von einem 10k-Poti an AIN0.

Wie erwartet kann ich deine Störungen nicht nachvollziehen. Das was man 
da sieht ist in µC-Schaltungen, gerade bei benachbarten Pins, normal.

Also für mich besteht weiterhin kein Grund von einer signifikannten 
Beeinflussung des Analogkomparators durch eine PWM am benachbarten PIN 
auszugehen.

Thema (für mich) erledigt.

MfG Spess

von Peter D. (peda)


Lesenswert?

An einem offenen Eingang zu messen, ist hirnrissig. Man muß ihn schon 
mit der Quellimpedanz abschließen.

Für Präzisionsanwendungen habe ich den Komparator noch nie benutzt. Dazu 
dürfte er auch nicht geeignet sein. Ich habe nichtmal konkrete Angaben 
zu Gleichtakt-, Offset-, Bias-Spannung und -Strom gefunden.
Was willst Du denn damit machen?

Mit dem ADC hatte ich noch nie Schwierigkeiten, auch bei aktiven 
PWM-Ausgängen. Die Wandlungen sind immer glatt wie ein Babypopo.

Das STK500 kann man für solche Messungen nicht als Referenz ansehen. Es 
sind ja mehrere Sockel parallel geschaltet, d.h. die IO-Pins laufen 
einmal ums ganze Board. Wie soll man da kapazitive Einkopplungen 
verhindern?


Peter

von Clyde H. (clyde)


Angehängte Dateien:

Lesenswert?

Anbei mal meine Steuerung.
Aufgebaut auf Lochraster. An dem Eingang"Feuchtesensor" habe ich ein 25k 
Poti.
Links ist die PWM-Elektronik und rechts Rot gerahmt sind die 
ADC-Eingänge.

Mein Code zum Messen:
1
int MESSWERT (int kanal){
2
3
    int i=512,j=512;
4
    long int analogwert=0, analogwert1=0, analogwert2=0 ;
5
  
6
  while(j){
7
      
8
    while(i){
9
      ADCSRA=0x85;     // ADC eingeschaltet, 64 Prescale 
10
      ADMUX=kanal;      // ADC Ref auf Avcc, PC0 gewaehlt, normale Formatierung
11
      ADCSRA |=_BV(ADSC);   // single conversion mode ein
12
      while (ADCSRA & (1<<ADSC)) {;}  // auf Abschluss der Konvertierung warten 
13
      analogwert+=ADCW;
14
      i--;
15
    }
16
    
17
    analogwert1 = analogwert/512;
18
    analogwert2 += analogwert1;
19
    j--;
20
  }
21
  
22
  analogwert=(analogwert2/512);
23
24
  return (analogwert);
25
}

Mein Code für die PWM:
1
//----PWM Einstellung-------------------------------------------------------------------
2
3
// 8-Bit und invertierende PWM
4
5
TCCR2A = (1<<WGM10) | (1<<COM1A1);// | (1<<COM1A0); // nicht invertiert, daher -> glöscht| (1<<COM1A0)
6
7
//Standart CPU-Frequenz 16MHz (mit 8 Vorteiler)
8
9
TCCR2B = (1<<CS11);// | (1<<CS10);// | (1<<CS12);
10
11
//Vergleichswert, "Sollwert" (Register 24)
12
13
OCR2A = 0;

Sorry, das ich den Thread jetzt so beanspruche, aber er trifft mein 
Problem wo ich vorher schon länger nach gesucht habe.
Schaltungsfehler möcht ich natürlich nicht ausschliessen, aber evtl. 
kann mir je einer den Fehler zeigen, den ich nicht sehe.

Gruß
Clyde

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

>An einem offenen Eingang zu messen, ist hirnrissig. Man muß ihn schon
>mit der Quellimpedanz abschließen.

Ich weiß. Ändert aber nichts am Gesamtbild. Im Anhang noch mal mi 10k 
nach Masse.

MfG Spess

von Falk B. (falk)


Lesenswert?

@  Volker U. (volkeru)

>Propagation Delay: 500 ns. Wenn ich 500 ns (entsprechen 2 MHz) auflösen
>will, kann ich da keine 100 nF dranhängen! Dann darf da gar keine
>Kapazität dranhängen.

Richtig, aber eine niederohmiger Quelle, z.B. OPV.

>sondern an einem mit 100k bzw. 10k gegen Masse belasteten Eingang.

>Bei 16 kHz PWM an PD5 (OC0B) misst man knapp 400 mVss
>sauberes Rechtecksignal an einem unbeschalteten Eingang (PD6 / AIN0)
>bzw. eine Nadelimpulsfolge von rund 1 Vss bei Beschaltung des Eingangs
>mit dem beliebten 10k Poti.

Was aber vollkommen widersprüchlich ist, wenn du mit 10K MEHR Störimpuls 
hast als mit offenem Eingang!

von spess53 (Gast)


Lesenswert?

Hi

@Clyde H. (clyde)

>Sorry, das ich den Thread jetzt so beanspruche, aber er trifft mein
>Problem wo ich vorher schon länger nach gesucht habe.

Mach besser einen eigenen Thread auf. Es ist nicht das gleiche Problem. 
Hier geht es um den Analogkomparator und Timer0, bei dir um den ADC und 
Timer2.
Und bitte mit einer ausführlichen Fehlerbeschreibung.

Was mir auf die Schnelle aufgefallen ist:

Dein ADC-Takt von 250kHz (16MHz/Prescaler 64) liegt oberhalb der 
empfohlenen 50..200kHz. Das 25k Poti oberhalb der empfohlenen 10k 
Quellimpedanz. Allerdings sehe ich darin noch keinen Grund für größere 
Abweichungen.

MfG Spess

von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> So, mal zwei Messungen von mir. SCR0002 ist das offene AIN0-Pin (Pin
> steckt nicht in der Fassung) bei einer 30kHz PWM an OCR0B. SCR0001 das
> gleiche mit ca.2,5V von einem 10k-Poti an AIN0.
>
> Wie erwartet kann ich deine Störungen nicht nachvollziehen. Das was man
> da sieht ist in µC-Schaltungen, gerade bei benachbarten Pins, normal.

Wieso? Deine Störungen sind doch identisch mit meinen!? Wenn ich SCR0001 
richtig interpretiere, hast du da auch Nadelimpulse von ca. 400 mVss auf 
dem benachbarten Pin?!

> Also für mich besteht weiterhin kein Grund von einer signifikannten
> Beeinflussung des Analogkomparators durch eine PWM am benachbarten PIN
> auszugehen.

Ähm?! Wenn der Komparator 400 mV Störungen empfängt, die man nicht 
abstellen kann, ist das keine signifikante Beeinflussung der Messung???

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

Peter Dannegger schrieb:
> Für Präzisionsanwendungen habe ich den Komparator noch nie benutzt. Dazu
> dürfte er auch nicht geeignet sein.

Naja! Also 0,4 Volt Fehler bei 5 V Spannungsdifferenz sind 8%. 8% 
Ungenauigkeit bei einer Spannungsmessung ist für nahezu jeden Zweck 
unbrauchbar. Bei mir (16 kHz) sind es sogar 20% Ungenauigkeit.

> Ich habe nichtmal konkrete Angaben
> zu Gleichtakt-, Offset-, Bias-Spannung und -Strom gefunden.
> Was willst Du denn damit machen?

Das muss auch nicht sein. Ich wollte lediglich einen Impulszähler damit 
realisieren. Ich bekomme von einem Dosimeter Impulse mit einer Höhe von 
ca. 200 mV, die ich direkt zählen will. Ich wollte mir den Verstärker 
sparen und dafür den Komparator nehmen. Aber nun bin ich dazu 
übergegangen, doch einen LM358 zu spendieren. Oder ein Transistor täte 
es auch.

> Mit dem ADC hatte ich noch nie Schwierigkeiten, auch bei aktiven
> PWM-Ausgängen. Die Wandlungen sind immer glatt wie ein Babypopo.

Ja, damit hatte ich auch nie Probleme, aber ein ADC kann keinen 
Interrupt auslösen bei Überschreitung eines Schwellwertes. Pollen geht 
auch nicht, weil die Impulse sehr kurz sind und die ADC-Wandlung zu lang 
dafür dauert.

> Das STK500 kann man für solche Messungen nicht als Referenz ansehen. Es
> sind ja mehrere Sockel parallel geschaltet, d.h. die IO-Pins laufen
> einmal ums ganze Board. Wie soll man da kapazitive Einkopplungen
> verhindern?

Ja, aber das ist mehr Theorie bei einer Frequenz von 16 kHz. Und Dirac 
spielt bei dieser Flankensteilheit auch keine wesentliche Rolle. Das 
macht dann vielleicht die Differenz von 400 mV zu 800 mV aus. Für eine 
Impulsmessung schwacher Impulse nach wie vor ungeeignet.

von Volker U. (volkeru)


Lesenswert?

Clyde H. schrieb:
> Anbei mal meine Steuerung.

Dankeschön! Mal was zum Angucken :-)

Was mir spontan auffällt: Deinem Linearregler fehlt eine Freilaufdiode 
:-). Ich weiß nicht, wie schnell deine 12 V Versorgungsspannung absinken 
kann, aber wenn dies sehr schnell passieren kann, besteht die Gefahr, 
dass dein Regler in Mitleidenschaft gezogen wird. Das Problem: Der 470 
uF Pufferkondensator wird langsamer entladen, als die Spannung am 
Eingang des 7805 sinkt. Das heißt, dass der Regler mit einer 
Rückwärtsspannung von VO nach VI belastet wird. Das mögen die Dinger 
ganz und gar nicht und verabschieden sich dann sehr schnell. Einer der 
Hauptgründe, warum so manches Netzteil nach dem Ausschalten irgendwann 
seinen Geist aufgibt. Eine Diode 1N4001 o.ä. von VO nach VI löst das 
Problem.

Fällt mir nur so auf, weil unser Industrieelektronik-Prof da mindestens 
einmal im Monat drauf rumgeritten ist. lach

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

Falk Brunner schrieb:
>> Dann darf da gar keine Kapazität dranhängen.
> Richtig, aber eine niederohmiger Quelle, z.B. OPV.

Ja, aber wozu dann noch der Komparator? Dann kann ich den OP auch direkt 
an INT0 oder INT1 hängen (wie ich es ja nun auch mache - übrigens mit 
Erfolg). Wollte mir das zusätzliche Bauteil eigentlich sparen.

>>Bei 16 kHz PWM an PD5 (OC0B) misst man knapp 400 mVss
>>sauberes Rechtecksignal an einem unbeschalteten Eingang (PD6 / AIN0)
>>bzw. eine Nadelimpulsfolge von rund 1 Vss bei Beschaltung des Eingangs
>>mit dem beliebten 10k Poti.
>
> Was aber vollkommen widersprüchlich ist, wenn du mit 10K MEHR Störimpuls
> hast als mit offenem Eingang!

Das ist wahr. Lässt sich so spontan nicht erklären. Aber es wird dafür 
sicher eine Erklärung geben :-). Spess53 hat ja etwa das selbe gemessen: 
Unbelastet 200 mV, belastet etwa 350 mV.

von M. K. (avr-frickler) Benutzerseite


Angehängte Dateien:

Lesenswert?

Volker U. schrieb:
> Peter Dannegger schrieb:
>> Für Präzisionsanwendungen habe ich den Komparator noch nie benutzt. Dazu
>> dürfte er auch nicht geeignet sein.
>
> Naja! Also 0,4 Volt Fehler bei 5 V Spannungsdifferenz sind 8%. 8%
> Ungenauigkeit bei einer Spannungsmessung ist für nahezu jeden Zweck
> unbrauchbar. Bei mir (16 kHz) sind es sogar 20% Ungenauigkeit.

@Peter Danneger:
Definiere Präzisionsanwendungen ;-)

@Volker U.:
Also 0,4 Volt Fehler halte ich für sehr überzogen. Der Fehler wird wohl 
eher in deiner Schaltung/Layout zu suchen sein. Da du aber weder Bilder 
deiner Schaltung noch deines Aufbaus lieferst kann man da halt nur im 
dunklen stochern.

Ich habe mal ein paar Bilder meiner Schaltung angefügt um dir zu zeigen 
wozu der Comparator eines AVR in der Lage ist.

Das Bild Referenz.png zeigt die Spannung wie sie aus der Schaltung in 
Filter.sch.png kommt. Anmerkung: R22 ist mit 0Ohm bestückt und R23 nicht 
bestückt.
Sicherlich kein optimales Referenzsignal für einen Komparator aber für 
meine Anwendung reicht das.

In Bild Signal.png siehst du das Signal am 2. Eingang des Komparators 
wie es aus der Schaltung Receiver.sch.png.

Die Schaltung funktioniert ohne Probleme und das bei einem 
Signalausschlag von ca. 60mv und einem Rauschen von ca. 20mV auf beiden 
Eingängen des Komparators.

von Volker U. (volkeru)


Lesenswert?

M. K. schrieb:
> Also 0,4 Volt Fehler halte ich für sehr überzogen. Der Fehler wird wohl
> eher in deiner Schaltung/Layout zu suchen sein.

Also wenn du meinen Messungen nicht traust, hast du dir die 
Oszillogramme von spess53 angeschaut? Der hat mit seinem Hameg-Oszi auch 
ca. 350 mV Störungen gemessen an einem ansonsten unbeschalteten und mit 
ca. 5 kOhm belasteten Eingang. Er misst also das selbe wie ich. Und ich 
habe in zwei verschiedenen Schaltungen auch genau das selbe gemessen. 
Einmal auf einem Steckbrett (von dem komplexen Aufbau habe ich derzeit 
noch keinen Schaltplan gemacht) und einmal auf dem Pollin 
Evaluationsboard ohne jegliche zusätzliche Beschaltung. Also schau dir 
das Pollin-Board an und du hast meinen Testaufbau.

> Ich habe mal ein paar Bilder meiner Schaltung angefügt um dir zu zeigen
> wozu der Comparator eines AVR in der Lage ist.

Das glaube ich dir gerne, aber benutzt du am selben Timer, an dem der 
Komparator hängt, auch die PWM? Das war ja das Problem. Wenn deine PWM 
woanders her kommt, steht deine Schaltung nicht im Widerspruch zu meiner 
Analyse.

Schöne Grüße, Volker

von Volker U. (volkeru)


Angehängte Dateien:

Lesenswert?

M. K. schrieb:
> Da du aber weder Bilder
> deiner Schaltung noch deines Aufbaus lieferst kann man da halt nur im
> dunklen stochern.

Damit Du glücklich bist, habe ich mal zwei Bilder meines Aufbaus 
gemacht. Aber bitte keine Bemerkungen wie: "Ja, bei dem Drahtverhau 
ist es ja kein Wunder...". Ein Steckbrett in der Testphase sieht nunmal 
so aus und außerdem habe ich auf dem Pollin-Evaluationsboard ohne 
weitere Beschaltung exakt das selbe gemessen: 
http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html

Ich benutze jetzt nicht mehr den Komparator des uC, sondern einen LM358 
(auf dem Bild IMG_0370k.jpg oben rechts zu sehen), einen NAND 
Schmitt-Trigger und den Interrupt-Eingang des uC. Das ganze auf dem 
selben Steckbrett wie zuvor und das Ergebnis ist absolut sauber. Maximal 
10 mV Störungen am OpAmp. Wenn das Steckbrett so saumäßig wäre, hätte 
ich dieses Ergebnis mit einem LM358 nicht erreichen können.

Gruß, Volker

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Volker U. schrieb:
> gemacht. Aber bitte keine Bemerkungen wie: "Ja, bei dem Drahtverhau
> ist es ja kein Wunder...".

Oh doch!

> Ein Steckbrett in der Testphase sieht nunmal so aus

Stimmt schon...

> und außerdem habe ich auf dem Pollin-Evaluationsboard ohne
> weitere Beschaltung exakt das selbe gemessen:

Glaubst du nicht, dass die Flachbandkabel ein Übersprechen begünstigen?

von holger (Gast)


Lesenswert?

>Receiver.sch.png.

Als was arbeitet IC1C da eigentlich? Das sieht irgendwie falsch aus;)

von spess53 (Gast)


Lesenswert?

Hi

>Er misst also das selbe wie ich.

Irgendwie fallen mir zu deinen 'Messeungen'

Beitrag "Re: Atmega 328: PWM-Ausgang streut auf andere Eingänge?!"

Unterschiede auf. Oder brauche ich eine neue Brille?

Belastet sieht das so aus:

Beitrag "Re: Atmega 328: PWM-Ausgang streut auf andere Eingänge?!"

Die Schwingungen bei SCR00001 resultieren aus den relativ langen 
Zuleitungen zum Poti. Du solltest nicht alles für deine krude Theorie 
zurecht interpretieren.
Störungen bei PWM an Timer0 sind übrigens auch an allen andern Ports 
vorhanden. Mach dir mal einen Reim drauf.

>Was mir spontan auffällt: Deinem Linearregler fehlt eine Freilaufdiode
>...
>Eine Diode 1N4001 o.ä. von VO nach VI löst das
>Problem.

>Fällt mir nur so auf, weil unser Industrieelektronik-Prof da mindestens
>einmal im Monat drauf rumgeritten ist. lach

Diese 'Angstdiode' ist in 90% oder mehr Anwendungen unnötig. Das dir 
aber in Clydes Schaltung der unsinnig große Elko nach dem Regler nicht 
aufgefallen ist lässt schon gewisse Rückschlüsse zu.

MfG Spess

von Peter D. (peda)


Lesenswert?

Volker U. schrieb:
> Ich bekomme von einem Dosimeter Impulse mit einer Höhe von
> ca. 200 mV, die ich direkt zählen will. Ich wollte mir den Verstärker
> sparen und dafür den Komparator nehmen.

Und hast Du es mal ausprobiert oder vermutest Du nur, daß es nicht geht?

200mV sollte kein Problem sein. Ein Störsignal muß ja einen CPU-Zyklus 
lang sein, damit ein Interrupt ausgelöst wird.
Man kann aber auch den Input-Capture Interrupt nehmen und dann den 
Noise-Canceler einschalten.

Oder man nimmt den ADC-Multiplexer, damit nicht der Nachbarpin der PWM 
sondern ein anderer an den Komparator geht.
Der Hauptteil der Störungen wird nämlich einfach durch die kapazitive 
Kopplung auf Deiner Platine kommen. Es könnte daher schon helfen, um den 
Eingang einen Guard-Ring an GND zu legen.

Lösungsmöglichkeiten gibt es also viele, ohne einen zusätzlichen 
Komparator.


Peter

von Volker U. (volkeru)


Lesenswert?

Magnus Müller schrieb:
>> gemacht. Aber bitte keine Bemerkungen wie: "Ja, bei dem Drahtverhau
>> ist es ja kein Wunder...".
>
> Oh doch!

Neee, weil ich in wesentlich weniger "verwurstelter" Umgebung die selbe 
Messung gemacht habe. Und spess53 ebenfalls das selbe gemessen hat in 
seiner Umgebung.

>> und außerdem habe ich auf dem Pollin-Evaluationsboard ohne
>> weitere Beschaltung exakt das selbe gemessen:
>
> Glaubst du nicht, dass die Flachbandkabel ein Übersprechen begünstigen?

Beim Pollin-Board gibt es keine Flachbandkabel! Und in der Intensität 
wäre das auch gar nicht möglich, sonst könnte man mit zwei 10 cm langen, 
gerade nebeneinander liegenden Kabeln bei 16 kHz Frequenz und 1V 
Spannung locker eine Leistung von 1 mW übertragen. Das wäre schön, wenn 
das ginge! (Oder auch nicht - je nach Aufgabenstellung ;)

Tschö, Volker

von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> Beitrag "Re: Atmega 328: PWM-Ausgang streut auf andere Eingänge?!"
> Unterschiede auf. Oder brauche ich eine neue Brille?

Unterschiede gibt es. Allerdings nur geringfügige beim belasteten 
Eingang. Seltsam ist nur, dass wir immer die selben Spannungen messen, 
in verschiedenen Testaufbauten. Und das auch ohne eine lange Zuleitung 
zum Poti. Kannst du das erklären?

> Störungen bei PWM an Timer0 sind übrigens auch an allen andern Ports
> vorhanden. Mach dir mal einen Reim drauf.

Ja, aber da sind die Störungen nur etwa 1/10 so stark. Wie erklärst du 
das?

> Diese 'Angstdiode' ist in 90% oder mehr Anwendungen unnötig.

Wenn du meinen Beitrag gelesen hast, wirst du festgestellt haben, dass 
ich schrieb, dass es davon abhängt, wie schnell die Eingangsspannung 
sinken kann. Dass in 90% der Fälle ein großer Ladekondensator vorm 
Eingang liegt heißt nicht, dass die restlichen 10% irrelevant wären.

> Das dir
> aber in Clydes Schaltung der unsinnig große Elko nach dem Regler nicht
> aufgefallen ist lässt schon gewisse Rückschlüsse zu.

Unsinnig heißt nicht, dass es falsch oder störend ist. Zitat: "Ein 
großer C4 verbessert das Verhalten bei Lastwechseln oder fängt kurze 
Lastspitzen ab und reduziert die Restwelligkeit auf der 
Ausgangsspannung. Nachteilig ist der verlangsamte Spannungsanstieg beim 
Einschalten." (http://de.wikipedia.org/wiki/Spannungsregler). Dem würde 
ich zustimmen.

Wegen dieses relativ großen Elkos war ich auch überhaupt auf die Idee 
mit der Schutzdiode gekommen :-p

von Helmut L. (helmi1)


Lesenswert?

Volker U. schrieb:
> Nachteilig ist der verlangsamte Spannungsanstieg beim
> Einschalten." (ttp://de.wikipedia.org/wiki/Spannungsregler).

Ach, und Wikipedia wo jeder was reinschreiben darf ist jetzt die 
Referenz fuer Spannungsregler und nicht mehr die Datenblaetter der 
Hersteller?

von Volker U. (volkeru)


Lesenswert?

Peter Dannegger schrieb:
> Volker U. schrieb:
>> Ich bekomme von einem Dosimeter Impulse mit einer Höhe von
>> ca. 200 mV, die ich direkt zählen will. Ich wollte mir den Verstärker
>> sparen und dafür den Komparator nehmen.
>
> Und hast Du es mal ausprobiert oder vermutest Du nur, daß es nicht geht?

Natürlich habe ich es ausprobiert! Da der uC 3000 Impulse pro Sekunde 
zählte, habe ich mich geringfügig gewundert und festgestellt, dass auf 
dem Komparator-Eingang eine fröhliche 16 kHz-Schwingung mit etwa 1 Vss 
vom PWM-Ausgang liegt. Und dann erst habe ich die weiteren Messungen in 
einer anderen Testumgebung gemacht. Da kamen dann ca. 400 mVss raus.

> 200mV sollte kein Problem sein. Ein Störsignal muß ja einen CPU-Zyklus
> lang sein, damit ein Interrupt ausgelöst wird.

Leider ist es das.

> Oder man nimmt den ADC-Multiplexer, damit nicht der Nachbarpin der PWM
> sondern ein anderer an den Komparator geht.

Das geht nicht, weil ich am ADC eine Dauermessung mache und den nicht 
immer an den Komparator umschalten kann.

> Der Hauptteil der Störungen wird nämlich einfach durch die kapazitive
> Kopplung auf Deiner Platine kommen. Es könnte daher schon helfen, um den
> Eingang einen Guard-Ring an GND zu legen.

Da ich auf unterschiedlichen Platinen (nicht nur meinem Steckbrett, 
sondern auch dem STK500 und dem Pollin Evaluationsboard) immer die 
selben Störungen gemessen habe, verzichte ich auf weitere Experimente 
und nehme jetzt einen separaten OpAmp und einen Interrupt-Eingang am uC. 
Das funktioniert schon sehr zuverlässig und ohne jede Störung.

Das mit dem Guard-Ring kann man ja mal ausprobieren, wenn man Zeit und 
Lust hat, sich für diesen Test extra Platinen zu ätzen.

von Volker U. (volkeru)


Lesenswert?

Helmut Lenzen schrieb:
> Volker U. schrieb:
>> Nachteilig ist der verlangsamte Spannungsanstieg beim
>> Einschalten." (ttp://de.wikipedia.org/wiki/Spannungsregler).
>
> Ach, und Wikipedia wo jeder was reinschreiben darf ist jetzt die
> Referenz fuer Spannungsregler und nicht mehr die Datenblaetter der
> Hersteller?

Wuaaaah! Die Datenblätter der Hersteller geben bei den Kondensatoren 
Minimalbedingungen an. Das heißt nicht, dass diese in jeder Umgebung 
auch optimal funktionieren. Der allgemein formulierte Satz bei Wikipedia 
verliert deshalb nicht seine Berechtigung. Dass dort jeder schreiben 
darf heißt ja nun nicht, dass alles dort falsch ist. Sonst könnte man 
diese Website hier ja auch gleich schließen. :-p

von Ingo (Gast)


Lesenswert?

@Volker
Offensichtlich hast du Recht mit deinen Vermutungen bezüglich eines 
Übersprechens. Nun sollte für dieses Problem eine Lösung gefunden 
werden, anstatt hier weiter rumzulamentieren.
Was passiert wenn du einen Kondensator an den Komparator anschließt.
Welche Rolle spielt die PWM Frequenz.
Lass dich bitte nicht von den Leuten hier ärgern, natürlich wird man 
hier als unfähig hingestellt, gerade wenn man solche Fehler wie "AVR 
Konstruktionsfehler" behauptet.


Also, such lieber nach einer Lösung, als dich mit den Leuten hier zu 
zoffen...


Ingo

von Volker U. (volkeru)


Lesenswert?

Ingo schrieb:
> Offensichtlich hast du Recht mit deinen Vermutungen bezüglich eines
> Übersprechens. Nun sollte für dieses Problem eine Lösung gefunden
> werden, anstatt hier weiter rumzulamentieren.

Hi Ingo! Danke, so sehe ich das auch.

> Was passiert wenn du einen Kondensator an den Komparator anschließt.

Das habe ich noch nicht probiert. Ein Kondensator am Eingang kommt bei 
mir nicht in Frage, weil ich am Eingang nur ca. 4 ms lange Impulse habe, 
die ich messen will und die von einem Kondensator weitgehend 
weggeschluckt würden. Es sei denn, ich mache den Kondensator sehr klein, 
aber dann hilft er wieder nicht gegen die Störungen! :(

Da Atmel beim Komparator eine Auflösung von 2 MHz angibt (Handbuch 
Atmel: Analog Comparator Propagation Delay: 500 ns.), sollte es auch 
ohne Kondensator gehen, denn mit einem Kondensator ist eine solche 
Auflösung niemals zu erreichen. Bei langsamen Messungen wäre das 
vielleicht eine Lösung.

> Welche Rolle spielt die PWM Frequenz.

Habe ich noch nicht getestet.

> Lass dich bitte nicht von den Leuten hier ärgern, natürlich wird man
> hier als unfähig hingestellt, gerade wenn man solche Fehler wie "AVR
> Konstruktionsfehler" behauptet.

Grins, das habe ich bemerkt, als ich mal einen Fehler in allen 
Atmel-Handbüchern für Automotive-Chips gefunden und hier veröffentlicht 
habe und mich darüber beschwerte, dass Atmel den Fehler in den neuen 
Auflagen nicht korrigiert hat, obwohl sie mir ca. ein Jahr vorher 
mitgeteilt hatten, dass der Fehler an die Dokumentationsabteilung 
weitergleitet wurde. Da war ich dann das schwarze Schaf, weil ich es 
gewagt hatte, diesen Fehler öffentlich anzuprangern. Von einigen Usern 
wurde sogar die Mathematik umdefiniert (Strichrechnung vor 
Punktrechnung), um den Fehler von Atmel als richtig darzustellen. :-) 
Oder es wurde gesagt, dass Atmel einfach besseres zu tun hätte, als 
einen Fehler im Handbuch zu korrigieren, den jeder Idiot auf den ersten 
Blick erkennen könne...

von spess53 (Gast)


Lesenswert?

Hi

>Wuaaaah! Die Datenblätter der Hersteller geben bei den Kondensatoren
>Minimalbedingungen an. Das heißt nicht, dass diese in jeder Umgebung
>auch optimal funktionieren.

Deswegen schreiben die Hersteller auch solche Sätze in ihr Datenblatt:

Although no output capacitor is need for stability, it does improve 
transient response.

MfG Spess

von Peter D. (peda)


Lesenswert?

Volker U. schrieb:
>> 200mV sollte kein Problem sein. Ein Störsignal muß ja einen CPU-Zyklus
>> lang sein, damit ein Interrupt ausgelöst wird.
>
> Leider ist es das.

Und mal mit dem Noise-Canceler probiert?
Dann muß die Störung ja 4 Zyklen lang anliegen.


Peter

von Volker U. (volkeru)


Lesenswert?

spess53 schrieb:
> Deswegen schreiben die Hersteller auch solche Sätze in ihr Datenblatt:
>
> Although no output capacitor is need for stability, it does improve
> transient response.

Richtig. Aber in diesem Fall ist der Größe des Kondensators nach oben 
keine Grenze gesetzt, obwohl ich es nicht übertreiben würde. Zu große 
Kondensatoren belasten den Regler unnötig und machen die Schaltung u.U. 
wegen zu langsamen Spannungsanstiegs instabil oder verhindern ein 
Starten des Controllers. Man denke an die Start-Up-Time des Prozessors.

Doch 470 uF sind sicher nicht zu groß. Maxim empfiehlt bei seinem MAX232 
auch 1 uF und in fast jeder realen Schaltung werden 10 uF eingesetzt. 
Z.B. auch beim STK500.

Gruß, Volker

von Volker U. (volkeru)


Lesenswert?

Peter Dannegger schrieb:
> Und mal mit dem Noise-Canceler probiert?
> Dann muß die Störung ja 4 Zyklen lang anliegen.

Ich habs nicht mehr probiert, weil ich mich dann schon für den OpAmp 
entschieden hatte, der letzlich auch eine zuverlässigere Messung 
erlaubt. Auch dann noch, wenn die Batterie des Dosimeters langsam ihrem 
Ende entgegen geht und die Impulse schwächer werden. Aber ich werde das 
auf dem Evaluationsboard mal testen. 4 Zyklen (= 1 us bei meinen 4 MHz) 
könnten hinkommen, weil die Störimpulse eine Länge von etwa 100 ns 
haben, wenn ich mich recht entsinne.

Ich werds mal testen. Danke, dass du nochmal drauf hingewiesen hast! Ich 
hätte es sonst schon fast abgehakt :).

Tschaui, Volker

von Peter D. (peda)


Lesenswert?

Ich hab noch ne Idee.
Man kann doch AIN0/1 vertauschen. Der Software ist es doch egal, ob der 
Impuls Pegel 0 oder 1 ist.
Also die Referenz an AIN0, dann kann man dort einen Kondensator 
anschließen. Und dafür AIN1 als Eingang, dann ist quasi der AIN0 
signalmäßig ein Schirm.


Peter

von Volker U. (volkeru)


Lesenswert?

Peter Dannegger schrieb:
> Also die Referenz an AIN0, dann kann man dort einen Kondensator
> anschließen. Und dafür AIN1 als Eingang, dann ist quasi der AIN0
> signalmäßig ein Schirm.

Stimmt, das ist eine Idee. Man müsste mal messen, wie es dann mit den 
Störungen aussieht. Aber mit dem OpAmp bin ich jetzt deutlich 
glücklicher. Da kann ich die Verstärkung bedarfsgerecht einstellen, was 
ein großer Vorteil ist. Dadurch funktioniert der Impulszähler nun mit 
Versorgungsspannungen zwischen 5 und 3 Volt. Das wäre sonst nicht 
möglich gewesen. Bei Batteriebetrieb ein großer Vorteil.

Gruß, Volker

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Es wäre interessant, diesen Effekt mal zwischen verschieden alten Chips 
zu vergleichen. Ich denke da an die Bestrebungen der meisten 
Chiphersteller (und Atmel gehört dazu) die Strukturen immer weiter zu 
verkleinern, wodurch zwangläufig Übersprecheffekte verstärkt auftreten.
Es war ja schon bei älteren Revisionen bekannt, das z.B. unbeschaltete 
AD Eingänge von ihren Nachbarn 'mitgezogen' wurden, was vermutlich aber 
am Sample-C und dem Umladen innerhalb des Multiplexers lag. Die neueren 
'V' Typen (1,8 Volt) und ihre 3,3 V Vorgänger wären mal ein 
interessanter Vergleich und der ganze Übersprechvorgang könnte evtl. 
sogar dazu herangezogen werden, den Herstellungsprozess und Revisionen 
'von aussen' festzustellen.

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.