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
Noch nachträglich zur Info: Bei dem 1 MHz-Signal handelt es sich um ein ganz normales Rechtecksignal mit 50% PW.
Gib mal Minimalsbeispiel von Code und Fuses her und mach Bilder von deinem Aufbau und lad nen Schaltplan hoch :-D
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
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
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.
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
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.
ein Produkt das mit Bascom programmiert wurde sollte niemals in den Verkauf gehen ;-)
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.
@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ß
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.
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
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
@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.
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
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
>"ü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??
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.
@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.
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
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.
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
Hi Liest hier eigentlich niemand, bevor er schreibt? Beitrag "Re: "Übersprechen" v. Pins beim AVR?" MfG Spess
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.
@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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.