Hallo Zusammen Ich benutze ein Atmega8 mit externem Quartz. Ich Programmiere schon eine Ganze weile an der Sache rum und mir ist nun Aufgefallen Das Das Program an Mancher Stelle einfach Stehen zu bleiben scheint da sich an eine CS Leitung auf low bleibt und das SCK Signal auch Weg ist. ALLERDINGS NICHT IMMER der Fehler das der AVR einzuschalfen scheint ist vollkommen Sporadisch und läst sich kaum Provozieren. Durch mein OZI habe ich nachgewissen das Der AVR wenn der Fehler auftrit stehen geblieben sein muss !!! Ich habe mal das Ozi an das Qaurtz gehalten und das gemessen was im Anhang zu sehen ist. Laut dem Bild Leite ich mal ab das Das Quartz NICHT schwingt. Allerdings habe ich das Selbe Messergebnis wenn Der AVR läuft !!! das kann doch irgent wie nicht sein oder ??? Nun zu den Details: - Schaltung wie im DatenBlatt - 11,0592 MHz Quartz - 2x 22pF Condesatoren Parallel wie im Datenblatt Fuses: Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 64 ms Selbst wenn ich den auf HIGH Freq. umschalte habe ich das Selbe ergebnis !!! Das dumme ist das ich nicht weis wie groß die Kondensatoren sein müssen da mir nur die Frequenz bekannt ist mit der das Qaurtz schwingen soll. Achso noch zum schluss wenn der AVR eingeschalfen ist und ich mit der OSZI Messpitze einen Pin vom Quartz berühre läuft er kurz weiter und bleibt wieder stehen :( Vielen Dank schon mal im Vorraus
>Das Program an Mancher Stelle einfach Stehen zu bleiben >scheint da sich an eine CS Leitung auf low bleibt und das SCK Signal >auch Weg ist. Schalte den SS Pin auf Ausgang.
Hast du nen 1x Tastkopf verwendet? Wenn ja, versuchs mit einem 10x, der beeinflusst den Quarz nicht so sehr.
Hallo, wichtig ist, dass du am richtigen Pin misst! wenn du den Oszi auf den Eigang des UC-Oszillators hällst, hört er sofort mit schwingen auf! Irgend wo sollte im Datenblatt die Ersatzschaltung zu sehen sein (ein Logikinverter). Am Ausgang davon kannst du messen, aber du brauchst einen 10:1 Tastkopf (glaube ich) Alternativ: Wenn ein UC-Pin für eine externe Frequenzeinspeisung ist, ist das der Eingang, der andere Pin ist der Ausgang (an dem man messen kann). Die Kondensatoren dürften in etwa OK sein. Datenblatt des UC? Schreib doch ein Testprogramm das nur einen Portpin toggelt, dann kannst du am Ausgangs-Port-Pin messen.
holger schrieb: >>Das Program an Mancher Stelle einfach Stehen zu bleiben >>scheint da sich an eine CS Leitung auf low bleibt und das SCK Signal >>auch Weg ist. > > Schalte den SS Pin auf Ausgang. SS benutze ich garnicht da er ja nach jeder Botschaft auf High geht und das will ich aber nicht da alle botschaften länger als 1 Byte sind. Die Komunikation funktioniert ja es ist eben nur so das er manchmal stehen bleibt und nicht weiter macht das kann nach 10s ude erst nach 20min sein.
Stefan N. schrieb: > Hast du nen 1x Tastkopf verwendet? Wenn ja, versuchs mit einem 10x, der > beeinflusst den Quarz nicht so sehr. Habe jetzt mit 10x gemessen an beiden pins, mit dem selben ergebnis :(
>> Schalte den SS Pin auf Ausgang. >SS benutze ich garnicht da er ja nach jeder Botschaft auf High geht und >das will ich aber nicht da alle botschaften länger als 1 Byte sind. Hä? Nö, der geht nicht von alleine auf High. Schalte den Pin auf Ausgang.
> Laut dem Bild Leite ich mal ab das Das Quartz NICHT schwingt.
Nee, der könnte auch mit niedriger Amplitude schwingen, das kann man aus
dem Bild nicht klar erkennen. Das klappt aber bei der Frequenz ohne
CKOPT nicht zuverlässig.
holger schrieb: >>> Schalte den SS Pin auf Ausgang. > >>SS benutze ich garnicht da er ja nach jeder Botschaft auf High geht und >>das will ich aber nicht da alle botschaften länger als 1 Byte sind. > > Hä? Nö, der geht nicht von alleine auf High. > Schalte den Pin auf Ausgang. Ich möchte die Aussage noch einmal unterstreichen! Wenn der SS-Pin als Eingang ein LOW-Signal sieht, schaltet der ATMega vom SPI-Master-Modus direkt in den SPI-Slave-Modus um! Sollte im Datenblatt unter den SPI-Modi auch so vermerkt sein ;) Sobald Du den SS-Pin als Ausgang setzt, ist dieses Verhalten abgeschaltet.
Blumenkohl schrieb: > holger schrieb: >>>> Schalte den SS Pin auf Ausgang. >> >>>SS benutze ich garnicht da er ja nach jeder Botschaft auf High geht und >>>das will ich aber nicht da alle botschaften länger als 1 Byte sind. >> >> Hä? Nö, der geht nicht von alleine auf High. >> Schalte den Pin auf Ausgang. > > Ich möchte die Aussage noch einmal unterstreichen! Wenn der SS-Pin als > Eingang ein LOW-Signal sieht, schaltet der ATMega vom SPI-Master-Modus > direkt in den SPI-Slave-Modus um! Sollte im Datenblatt unter den > SPI-Modi auch so vermerkt sein ;) > > Sobald Du den SS-Pin als Ausgang setzt, ist dieses Verhalten > abgeschaltet. DANKE DANKE DANKE das scheint des rätzels lösung zu sein und ist auch plausiebel zum Fehlverhalten im Programm !!! Hab das Tei jetzt schon über 30min am laufen un der Fehler ist nicht wieder aufgetretten !!! Der SS pin war unbeschaltet und auf AUSGANG und somit ist sehr sehr wahrescheinlich warum er aufhöhrt über SPI zu senden und dann bleibt er ein einer programierten Busy schleife hängen auf SPIF wartet und es iom SLAVE nie kommen wird. Danke noch mal für diesen TIP
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.