Forum: Mikrocontroller und Digitale Elektronik Clock Flanke unbrauchbar?


von Peder (Gast)


Angehängte Dateien:

Lesenswert?

Hallo wieder einmal,

im Moment brüte ich darüber, warum ich bei meiner einfachen Kombination 
aus µC und DAC per SPI (ATMega16 und DAC8043A -> wäre schön, wenn 
letzteren schon mal jemand benutzt hat) nicht das erwartete Ergebnis 
bekomme.

Den SPI-Prozess (bestehend aus zwei Bytes, weil 12-Bit DAC) habe ich 
(hoffentlich) soweit verstanden. Ich denke nicht, dass mein Problem dort 
begraben liegt. Ich erreiche nicht die volle Spannung am DAC und die 
Werte ändern sich meiner Meinung nach nicht linear. Zudem habe ich den 
Eindruck, dass immer nur ein Byte vom DAC geschluckt wird.

Bevor ich aber weiter auf Details eingehe, die vielleicht gar nicht 
nötig sind:
Mir fallen zwei Dinge an meinem Aufbau (auf einer Steckplatine) auf:
- mein definierter Eingangspin reagiert enorm auf Handbewegungen in der 
Nähe der Platine, wenn ich nicht aktiv mit der anderen Hand Masse 
berühre. Ein ESD-Armband erwies sich als wirkungslos.
- Das SPI-Clock-Signal, das jedesmal gestartet wird, nachdem ich ein 
Byte in das SPDR-Register geschrieben habe, sieht meines Erachtens 
furchtbar aus (siehe Bild). Hier gibt es nach meinem laienhaften 
Eindruck durch das Überschwingen in jedem Takt mehrere steigende 
Flanken. Kann es sein, dass der DAC damit überfordert ist bzw. er in 
Summer einfach zu viele Flanken sieht und damit sein Empfangsregister 
wieder überschreibt? Soweit ich das verstanden habe, nimmt er pro Takt 
ein Bit an.

Woran kann das liegen, dass die Clock, direkt gemessen am SCK-Pin des 
µC, so schlimm aussieht? Die eigentliche Quarz-Clock für den µC selbst 
sieht hingegen sehr gut aus.


Vielen Dank schon mal

Peter

von anderes ich (Gast)


Lesenswert?

sieht mir nach einem Masseproblem deines Tastkopfes aus.

von Dumpfer Nilp (Gast)


Lesenswert?

> ... auf einer Steckplatine ...

Allenfalls
-sollte man sich von Steckplatinen verabschieden
-die SPI Clock verlangsamen
-die SPI Signale mit RC filtern

von Falk B. (falk)


Lesenswert?

@ Peder (Gast)

>Mir fallen zwei Dinge an meinem Aufbau (auf einer Steckplatine) auf:
>- mein definierter Eingangspin reagiert enorm auf Handbewegungen in der
>Nähe der Platine, wenn ich nicht aktiv mit der anderen Hand Masse
>berühre. Ein ESD-Armband erwies sich als wirkungslos.

Klingt nach offenen Pins.

>- Das SPI-Clock-Signal, das jedesmal gestartet wird, nachdem ich ein
>Byte in das SPDR-Register geschrieben habe, sieht meines Erachtens
>furchtbar aus (siehe Bild).

Richtig!

> Hier gibt es nach meinem laienhaften
>Eindruck durch das Überschwingen in jedem Takt mehrere steigende
>Flanken. Kann es sein, dass der DAC damit überfordert ist bzw. er in
>Summer einfach zu viele Flanken sieht und damit sein Empfangsregister
>wieder überschreibt?

JA!

> Soweit ich das verstanden habe, nimmt er pro Takt ein Bit an.

Ja.


>Woran kann das liegen, dass die Clock,

der Takt

>direkt gemessen am SCK-Pin des
>µC, so schlimm aussieht? Die eigentliche Quarz-Clock für den µC selbst
>sieht hingegen sehr gut aus.

Messfehler?

http://www.mikrocontroller.net/articles/Oszilloskop#Tastk.C3.B6pfe_richtig_benutzen

Masseproblem? Schlechte Masseverbindung? Oder saumäßige Verbindung 
allgemein?

http://www.mikrocontroller.net/articles/Wellenwiderstand#Leitungsf.C3.BChrung_und_Layout

von E-Profi (Gast)


Lesenswert?

foto vom Testaufbau!
Welches Netzteil verwendest du?
Soft SPI oder SPI hardware genutzt?

EProfi

von Peder (Gast)


Lesenswert?

Den Tastkopf würde ich eigentlich ausschließen, weil ich am Oszi für die 
Quarz-Clock ein sauberes Signal sehe.

Mit einem Tiefpass sieht es tatsächlich schon viel besser aus, auch wenn 
a) die Flankensteilheit drunter leidet und b) ich immer im Hinterkopf 
habe, dass der µC irgendwas macht, was mir nicht gefällt.

Die Byteübertragung scheint jetzt gut zu funktionieren, zumindest 
reagiert der DAC auf Änderung von High- und Low-Byte in 
nachvollziehbarer Weise.
Bleibt nur das Problem, dass die Spannung nicht voll erreicht wird. Aber 
wenn ich das nicht hinbekomme, werde ich wohl eh noch mal mit Schaltplan 
wiederkommen müssen.

Danke soweit schon mal!

von Falk B. (falk)


Lesenswert?

@ Peder (Gast)

>Den Tastkopf würde ich eigentlich ausschließen, weil ich am Oszi für die
>Quarz-Clock ein sauberes Signal sehe.

Ist ein Argument. Es heißt aber dennoch Quarztakt.

>Mit einem Tiefpass sieht es tatsächlich schon viel besser aus,

Klar, wenn mir die Realität nicht gefällt setze ich einfach eine dunkle 
Sonnenbrille auf . . .

>Die Byteübertragung scheint jetzt gut zu funktionieren,

"scheint" ist kein sonderlich bauchbareas Adjektiv bei fehlerhaften 
Schaltungen. Du musst SICHER nachweise (=messen) dass es so ist.

von Peder (Gast)


Lesenswert?

Die beiden letzten Beiträge habe ich erst gesehen, nachdem ich schon an 
meinem Beitrag geschrieben habe. Die möchte ich natürlich nicht 
unkommentiert lassen.

@E-Profi
SPI ist Hardware, der ATMega16 bietet mir dafür eine Schnittstelle.
Das Netzteil ist ein Labornetzteil, was den Anforderungen eigentlich 
gewachsen sein sollte. Das war zwar nicht unbedingt teuer, aber die 
Netzspannung überprüfe ich permanent mit Oszi. Das macht bisher einen 
guten Eindruck.

@Falk
Ich habe es gerade mal mit einem "richtigen" Tastkopf versucht (das 
Ding, was ich vorher benutzt habe, habe ich synonym einfach mit 
Tastköpfen in einen Topf geworfen) und kann den Überraschungseffekt, den 
ich jetzt auch bei anderen gelesen habe, nur teilen, wenn ich den denn 
richtig benutzt habe. Ich habe trotz Abraten die Krokoklemme benutzt, 
aber soweit ich das mittlerweile gesehen habe, fängt "hochfrequent" auch 
nicht da an, wo ich mich bewege.

Damit habe ich zwar dem µC grob Unrecht getan, verstehe dann aber nicht 
mehr, womit ich meinen Übertragungsfehler beseitigt habe. Auch Filtern 
ist quasi überhaupt nicht mehr nötig, der Takt ist 1A "rechteckig"!

Was die offenen Pins betrifft, liegst du nicht falsch, davon habe ich 
etwa 25 (hab nur diesen µC-Typ hier), aber nachdem ich die Mehrzahl mal 
auf Masse gezogen habe, hat sich diese Überempfindlichkeit nicht 
geändert. Meine Eingangspins werden aber später eh per Taster oder TTL 
angesteuert, damit sind die dann fest definiert.

Gibt es eine Möglichkeit, die Byteübertragung korrekt zu überprüfen, 
wenn der DAC (DAC8043A) nur ein reines Empfängerbauteil ist?

von Karl H. (kbuchegg)


Lesenswert?

Hmm. Blöde Frage.
Hast du auch nicht vergessen, die Pins in den DDR Registern auf Ausgang 
zu stellen? Das ist durch die Verwendung des SPI nämlich nicht 
impliziert, sondern du musst das selber machen.

Das würde auch u.U. erklären, warum du nicht den erwarteten Spannungshub 
erhältst. Denn deine SPI Einheit schaltet dann immer nur den 
Pullup-Widerstand zu bzw. weg.

von Falk B. (falk)


Lesenswert?

@ Peder (Gast)

>Ich habe es gerade mal mit einem "richtigen" Tastkopf versucht (das
>Ding, was ich vorher benutzt habe, habe ich synonym einfach mit
>Tastköpfen in einen Topf geworfen)

AHHHHHHH

> und kann den Überraschungseffekt, den
>ich jetzt auch bei anderen gelesen habe, nur teilen, wenn ich den denn
>richtig benutzt habe. Ich habe trotz Abraten die Krokoklemme benutzt,
>aber soweit ich das mittlerweile gesehen habe, fängt "hochfrequent" auch
>nicht da an, wo ich mich bewege.

Nö, sondern schon bei deutlich niedrigeren Frequenzen.

>Damit habe ich zwar dem µC grob Unrecht getan, verstehe dann aber nicht
>mehr, womit ich meinen Übertragungsfehler beseitigt habe. Auch Filtern
>ist quasi überhaupt nicht mehr nötig, der Takt ist 1A "rechteckig"!

Na wenigsten eine Erkenntnis.

>Was die offenen Pins betrifft, liegst du nicht falsch, davon habe ich
>etwa 25 (hab nur diesen µC-Typ hier), aber nachdem ich die Mehrzahl mal
>auf Masse gezogen habe, hat sich diese Überempfindlichkeit nicht
>geändert. Meine Eingangspins werden aber später eh per Taster oder TTL
>angesteuert, damit sind die dann fest definiert.

Naja, unbenutzt Pins sind erstmal egal. Das Thema ist eher, ob Pins, die 
mit der SPI zu tn haben bzw. in deinem Programm abgefragt werden in der 
Luft hängen. Kalte Lötstellen? Wackelkontakt?

>Gibt es eine Möglichkeit, die Byteübertragung korrekt zu überprüfen,
>wenn der DAC (DAC8043A) nur ein reines Empfängerbauteil ist?

Sicher, er muss recht genau die Spannung aussucken, die man als 
Stellwert reinschreibt. Klassischer Test. Man schreibt einfach schnell 
nacheinander einen aufsteigenden Wert von 0-4095 rein und schaut sich 
den DAC-Ausgang auf dem Oszi an. Da sieht man viele Dreckeffekte.

Denk dran, das Pin SS MUSS als Ausgang konfiguriert sein, siehe 
Datenblatt "SS pin functionality".

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.