Forum: Mikrocontroller und Digitale Elektronik "Übersprechen" v. Pins beim AVR?


von Stef (Gast)


Lesenswert?

Moin,

es geht um folgendes: ICh habe hier jeweils einen MEGA32 und einen 
MEGA644P. Aufbau ist folgender: Der AVR bekommt über ein Quarz einen 
Takt zugeführt, ganz normal per 22pf-Kondis gegen GND gezogen und auf 
XTAL1 udn 2. Neben XTAL1 liegt an Pind.0 ein knapp 1 MHz schnelles 
Signal an, das nicht synchron zum AVR läuft und auf seinen Zustand 
geprüft werden muß.

Jetzt das seltsame - nach wochenlangen rumprobieren und erfolglosen 
Versuchen habe ich das Quarz entfernt, an einer LED an einem anderen 
Port sekudnenweise herausblinken lassen und gemerkt, daß das 1 
MHz-Signal an pind.0 den AVR taktet.

Gut, XTAL 1 und 2 aus dem Sockel weggebogen, pind.0 drinnen gelassen, 
AVR wird immer noch extern getaktet. Alles Fuses von Ceramic Resonator 
über Einstellung X und Y, CKOPT an/aus, irgendwas auf weiß der Henker 
was gestellt, AVR taktet immer noch, selbst wenn man böserweise XTAL1 
und 2 kurzschließt oder beide voll gegen Masse zieht. Irrsinnigerweise 
verhält sich sowohl der MEGA3 als auch der 644er gleich. Das 1 
MHz-Signal scheint sogar ein vorhanenes, parallel mitlaufendes 
Quarzsignal zu stören.

"überspricht" hier etwas -im- AVR, an den Pins, oder ist mit den 1 MHz 
asynchroner Takt an diesem Pin für den AVR technisch gesehen ein Limit 
erreicht, ist intern in den AVR-Prots ein Problem, was solche Frequenzen 
angeht, das velelicht der Pullup oder weiß der Henker wer intern auf GND 
und somit auf Takt streut; habe ich hier ein simples Übersprechen - voll 
ratlos im Moment.

Viele Grüsse

von Stef (Gast)


Lesenswert?

Noch nachträglich zur Info: Bei dem 1 MHz-Signal handelt es sich um ein 
ganz normales Rechtecksignal mit 50% PW.

von Lehrmann M. (ubimbo)


Lesenswert?

Gib mal Minimalsbeispiel von Code und Fuses her und mach Bilder von 
deinem Aufbau und lad nen Schaltplan hoch :-D

von Stef (Gast)


Lesenswert?

Sorry, Schaltplan, Code etcpp ist leider nicht; das ist ein Projekt, an 
dem mehrere Leute sitzen und das in den Verkauf geht. Nur, um es von 
vorneherein "auszusieben": Ich programmiere AVR´s seit 15 Jahren, falls 
Gelüste nach "drück´s ihm rein, ist bestimmt ´n Anfänger-Depp" 
hochgekommen sein sollten.

´s hat nichts mit der Programmierung oder den Fuses ansich zu tun. Ich 
weiß, "höh, der hat die 1 MHZ internal RC-Fuse gestellt=> eben nicht. 
Ich weiß, was ich tue. Aber den Fall hatte ich eben noch nicht. Mag ja 
sein, das beim AVR bei 1 MHz aynchron Feierabend ist, vielleicht tiltet 
auch der UART dahinter herum; ich weiß es nicht.

Viele Grüsse

von Paul Baumann (Gast)


Lesenswert?

Was passiert, wenn Du den Pin D.0 als Ausgang setzt, oder wenn er noch
Eingang ist ihn nach Masse kurzschließt?

Irgendjemand muß ihn doch takten, sonst würde er doch Deine Kontroll-LED
nicht blinken lassen können.

MfG Paul

von Andreas K. (derandi)


Lesenswert?

Wenn du als einzige Info nen ellenlangen Text hergibts würde ich an 
deiner Stelle nicht mehr als die immergleichen Vorschläge aus der 
Glaskugel erwarten.


Es gibt doch ne Fuse, die den internen Takt direkt an einen Pin legt.
Häng dich da doch mal mit dem Oszi drauf, daraus sollte sich schließen 
lassen, welche Frequenz das Störsignal hat.

Oder probier doch mal, ob die Störung weg ist, wenn das 1MHz-Störsignal 
abgeklemmt wird.

von Stef (Gast)


Lesenswert?

Sorry.Ich habe grob gesehen eine mit Eagle gamachte, gätzte Platine, 
einen AVR, ein Quarz (wahlweise 14-22 MHz), am Quarz zwei 22pf-Kondis 
gegen Masse. Der Mega32 (wahlweise Mega644P) (beide DIL-40), bekommt an 
Portd.0, also genau neben XTAL1, ein knapp 1 MHz Rechtecksignal 
zugeführt. Dieses Signal muß ich auf high/low überprüfen; spielt aber im 
Moment keine Rolle. Das Signal wird von einam anderen Schaltkreis 
erzeugt, der quarzseitig nicht synchron mit dem AVR arbeitet.

In dem Moment, in dem das Quarz entfernt ist und die Pins von XTAL1 und 
XTAL2 nur noch in Richtung Kondensatoren gelegt sind und der AVR noch 
auf External Crystal steht (gleichwohl, welche Einstellung), bezieht der 
AVR diese 1 MHz als Ersatz für einen Quarztakt. ziehe ich XTAL1, oder 2, 
oder beide auf Masse, oder schleße sie kurz, bezieht der AVR seinen Takt 
an portd.0 immer noch von diesem 1 MHz-Signal. Das einzigste, wo der AVR 
nicht auf dieses Signal reagiert, ist, wenn der interne RC aktiviert 
ist.

Jedwede Fuse außerhalb der CKSEL-Fuses, d.h. Brown-out, CKOPT oder 
dergleichen, hat keinen Einfluß auf das Verhalten. Die Platine habe ich 
auch schon etliche male durchgemessen; es ist nichts festzustellen.

Deswegen mein Verdacht, das entweder der Eingang "stört" und/oder intern 
zum Takt wird.


Viele Grüsse

von Stef (Gast)


Lesenswert?

Und, habe ich vergessen zu erwähnen: Ja, der Prozessor bleibt stehen, 
sobald das 1 MHz-Singal weggeklemmt wird. Das Testprogramm ist nur ein 
simples Bascom-Programm, das einfach nur, ohne jegliche überprüfung 
dieses Pins, alle 500ms einen Pin einschaltet und nach 500ms wieder 
ausschaltet.

von ttl (Gast)


Lesenswert?

ein Produkt das mit Bascom programmiert wurde sollte niemals in den 
Verkauf gehen ;-)

von Andreas K. (derandi)


Lesenswert?

Möglich. Hängt vom mechanischen Aufbau ab, die Amplitude am Quarz ist 
nicht sehr groß, und der Eingangsverstärker sehr hochohmig, da kriegt 
man alles mögliche rein.

Könnte man lösen, indem man das Störsignal räumlich vom Quarz wegführt 
oder zumindest zur Abschirmung eine Leitung dazwischenlegt, die auf 
GND-Potential liegt. Das hilft ja auch bei Flachbandkabeln gegen 
übersprechen.
Alternativ/zusätzlich könnte man das Übersprechend noch deutlich 
mildern, indem man die Flankensteilheit des zugeführten Störsignals 
verringert.

von Stef (Gast)


Lesenswert?

@ttl: Nönö, das "Produkt" ist ordentlich in ASM programmiert. Mit Bascom 
tut man sich bei so Kleinigkeiten halt wesentlich einfacher ;-)

@Andreas K - werde ich probieren. Ich meine mal vor etlichen Jahren von 
einem ähnlichen Problem gelesen zu haben.

IOch probiers einfach nochmal mit verlegtem Signal durch.

Vielen Dank an alle!

Gruß

von Simon K. (simon) Benutzerseite


Lesenswert?

Stef schrieb:
> Sorry, Schaltplan, Code etcpp ist leider nicht; das ist ein Projekt, an
> dem mehrere Leute sitzen und das in den Verkauf geht. Nur, um es von
> vorneherein "auszusieben": Ich programmiere AVR´s seit 15 Jahren, falls
> Gelüste nach "drück´s ihm rein, ist bestimmt ´n Anfänger-Depp"
> hochgekommen sein sollten.

Auch Profis sind nicht unfehlbar und machen mal ganz ganz dusselige 
Fehler.

Mit dem jetzigen Informationsstand kann man dir so gut wie gar nicht 
helfen.

von Michael R. (mexman) Benutzerseite


Lesenswert?

Simon K. schrieb:
> Stef schrieb:
>> Sorry, Schaltplan, Code etcpp ist leider nicht; das ist ein Projekt, an
>> dem mehrere Leute sitzen und das in den Verkauf geht. Nur, um es von
>
> Auch Profis sind nicht unfehlbar und machen mal ganz ganz dusselige
> Fehler.
>
> Mit dem jetzigen Informationsstand kann man dir so gut wie gar nicht
> helfen.

Nicht nur das.......er will Geld damit verdienen aber die 
"Drecks"-arbeit soll jemand (wir?) umsonst machen!


Gruss

Michael

von Michael R. (mexman) Benutzerseite


Lesenswert?

Stef schrieb:
> Und, habe ich vergessen zu erwähnen: Ja, der Prozessor bleibt stehen,
> sobald das 1 MHz-Singal weggeklemmt wird.
wie..."weggeklemmt"....Du erklaerst uns doch gerade, dass das aus dem uC 
selber kommt weil alles andere okay ist.

Was macht der uC im Emulator?
Im Einzelschrittbetrieb?


Gruss

Michael

von Stef (Gast)


Lesenswert?

@Michael Roeck:

Sorry, wenn Du dich dadruch angefriffen fühlen solltest, ich habe 
lediglich eine Frage gestellt, ob es für dich persönlich nicht stimmig 
ist, bleibt dir überlassen. Gesetzt den Fall ,ich hätte die Aussage 
nicht gebracht, das ich die Platine verkaufen möchte -ich habe selbst 
ein Jahr "Drecksarbeit" mit der ganzen Sache hinter mir- wäre die Frage 
dann "umsonst" gewesen? Wie verhält es sich denn in den ganzen 
Programmierforen anseits von Controllern, meinetwegen in VB, C oder weiß 
der Henker welchen Foren? Sitzen den nnur Leute, die aus Spaß an der 
Freude programmieren? Oder in Office-Foren, wo Leute fragen stellen, die 
gerade in der Arbeit sitzen und wegen einem Problem nicht weiterkommen? 
Die verdienen mit der Antwort, die ihnen auf ihre Frage gegeben wird, 
auch ihr Geld. Und selbst wenn, was ist daran so schlimm? Wen nich 
jemandem eine Antwort auf eine Frage gebe, was Controller anbelangt, 
ziehe ich auch 15 Jahre Programmiererfahrung aus dem Ärmel, bezahlt mir 
-die- irgendjemand?

Also, immer locker bleiben.

von Michael R. (mexman) Benutzerseite


Lesenswert?

Stef schrieb:
> @Michael Roeck:
> Also, immer locker bleiben.

Mich regt nicht auf, dass Du fragst, sondern dass Du Hilfe moechtest 
aber keine Angaben aus den o.a. Gruenden liefern willst.

Wenn Du so viel Erharung hast, weisst Du auch, dass Du kaum auf 
Unterstuetzug hoffen kannst, wenn Du keine Unterlagen schickst und nur 
sagst dass Du schon alles richtig gemacht hast und furchtbar viel 
Erfahrung hast.... einen Besseren als Dich findest Du dann hier nicht.


Gruss

Michael

von Stef (Gast)


Lesenswert?

Ja, das ist schon richtig, wie gesagt, ich kann aus den genannten 
Gründen keine Schaltung offenlegen, so gerne ich es würde.

Das Problem hat sich aber erledigt; da ich schlicht und ergreifend 
vergessen habe, den WDR beim Mega32 zu deaktivieren (geht hier ja nur 
übers Programm). In der Folge hat der WDR permanent in der scheinbaren 
Frequenz von 1 MHz resettet.

Tud mir leid.

Viele Grüsse

von Übersprechi (Gast)


Lesenswert?

>"überspricht" hier etwas -im- AVR, an den Pins,

Ja, natürlich! Steht doch in jeder Application Note, daß man mit 
digitalen Signalen in der Nähe des Oszillator vorsichtig sein soll und 
genügend Abstand halten muß.

Du hast hoffentlich kein DIL40-Gehäuse??

von Peter R. (peterfido)


Lesenswert?

Er schrieb DIL Gehäuse. Dann schrieb er auch, dass der Atmel stehen 
bleibt, wenn das 1MHZ Signal entfernt wird. Und später dann, dass es der 
Watchdog war... Irgendwas passt nicht.

@ttl: Auch laufen die von mir (große sowie kleine) mittels Bascom 
erstellten Programme bisher zuverlässig. Andere im Netz gefundene ASM 
oder auch C Programme hängen auch gelegentlich... Die Hauptfehlerquelle 
beim proggen sitzt meist zwischen Tastatur und Stuhllehne.

Also immer schön locker bleiben...

Es kann schon vorkommen, dass ein PIN überspricht. Störungen durch hohe 
Frequenzen lassen sich durch gutes Board-Design in den Griff bekommen. 
Einen anderen Eingangspin nehmen und die ungeschirmten Wege so kurz wie 
möglich halten.

von Stef (Gast)


Lesenswert?

@Peter R.: Das mit dem WDR ist in der Tat verwunderlich. Faktisch, mit 
aktiviertem WDR, ohne Quarz, aber mit 1 MHZ-Signal, blinkt er in ca. 
einem MHz heraus. Ist das Signal weg, bleibt er stehen.

Deaktiviert man den WDR, blinkt er mit oder ohne diesem 1 MHZ-Signal und 
ohne Quarz nicht mehr heraus.

Gezwungenermaßen habe ich nun das 1 MHZ-Signal auf Portd.6 gelegt und 
der AVR arbeitet überhaupt nicht mehr, d.h. selbst SPI funktioniert nur 
sporadisch. Der Abstand vom AVR zum Quarz beträgt ca. 5mm. wird das 
Signal wieder entfernt, habe ich zumidnest wieder Zugriff auf den AVR. 
Die Signalleitungen auf dem Board haben quasi alle eine Masseschirmung.

Viele Grüsse & sorry für die "Konfusion", ih bin auch schon garz wirr im 
Kopp. Besser, ich mache morgen daran weiter.

von Peter D. (peda)


Lesenswert?

XTAL1 ist ein analoger Eingang, von daher könnte es ungünstig sein, an 
den Nachbarpin niederohmig hohe Frequenzen anzulegen.
Es kommt dann sehr auf das Layout an, das sollte Du mal zeigen.
Es gibt auch ne Atmel AN mit Schaltplan und Layout.

Die üblichen Anfängertips brauchst Du wohl nicht.


Peter

von Ich (Gast)


Lesenswert?

Stef schrieb:
> ganz normal per 22pf-Kondis gegen GND gezogen

Das könnte auch Teil des Problems sein, nicht drüber nachgedacht, 
einfach kopiert? Und der Rest der Schaltung?
Denn für meine Quarze z.B. wäre 56pF angebracht.

Wie man das aufbaut ist auch nicht zu vernachlässigen.

von Peter D. (peda)


Lesenswert?

Stef schrieb:
> Gezwungenermaßen habe ich nun das 1 MHZ-Signal auf Portd.6 gelegt und
> der AVR arbeitet überhaupt nicht mehr

Deutlichen Zeichen, daß mit der Hardware was im Argen liegt (Schaltplan, 
Layout, Kurzschluß, Unterbrechung).


Peter

von spess53 (Gast)


Lesenswert?

Hi

Liest hier eigentlich niemand, bevor er schreibt?

Beitrag "Re: "Übersprechen" v. Pins beim AVR?"

MfG Spess

von Andreas K. (derandi)


Lesenswert?

Stef schrieb:
> Das Problem hat sich aber erledigt; da ich schlicht und ergreifend
> vergessen habe, den WDR beim Mega32 zu deaktivieren (geht hier ja nur
> übers Programm). In der Folge hat der WDR permanent in der scheinbaren
> Frequenz von 1 MHz resettet.

Anfängerfehler würd ich sagen.

von Stef (Gast)


Lesenswert?

@Andreas K.: Nein, Flüchtigkeitsfehler. For lauter "tralala".

Ansosten: Habe die Platine abgescannt und kann im Füllbereich keinen 
Schluß an GND feststellen. Das liegt mit sehr hoher Wahrscheinlichkeit 
der Fehler.

Vielen Dank an alle, die sich den Kopp zerbrochen haben ;-)

Viele Grüsse & guten Wochenstart!

von spess53 (Gast)


Lesenswert?

Hi

>Anfängerfehler würd ich sagen.

Eher eine faule Ausrede. Der ATMega644 hat einen 128kHz 
Watchdog-Oszillator und der Watchdog kann mit maximal f/2 ausgelöst 
werden.

Der ATMega32 hat zwar einen 1Mhz Oszillator. Aber die höchste Frequenz 
wäre f/16k.

MfG Spess

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.