www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Atmega8 - schwingt nicht und Signal zu schwach


Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einige Monate an einer Microcontrollerschaltung gearbeitet, nun 
ist die Platine gefertig worden(pcb-pool.de), jedoch habe ich nach der 
Bestückung einige Probleme.

Erst mal ein paar Grundlegende Sachen zur Platine:

Als Controller dient ein Atmega8 der SMD Variante (16MHz-version).
Dieser soll 15 Schieberregister (74hc595) via SPI ansteuerun und 
letztendlich LEDs steuern.
Die LEDs zeigen zur Zeit logischer weiße mehr oder weniger zufällig 
irgendwelche Farben an(RGB-LEDs).
Alle Schieberegister und AVR sind mit Ablokondensator versehen (100nF).
Als Spannungsversorgung dient ein 7805 mit Glätungskondesator (die 
Spannung scheint laut Oszi auch ganz gut zu sein).

Jetzt zu den Problemen:
Eigentlich wollte ich einen 20Mhz Quarz benutzen(XTAL1, XTAL2 22pF gegen 
GND) jedoch fängt dieser nicht an zu schwingen, auch ein Austausch mit 
einem 3,6Mhz Quarz äändert nichts an de Symptomen.
Das Signal liegt immer auf GND an XTAL 1/2.
Fuses sind auch 8-12Mhz (oder entpsrechend auf 3-8Mhz).
Jedes mal wenn ich die Fuses setze kann ich den AVR nur noch mit einem 
externen Oszilator wiederbeleben.

Das zweite Problem ist, dass sich der Pegel an der Steuerleitung zu den 
Schieberegistern lediglich von 0 - ca. 1 V bewegt. Die anderen nicht 
beschalteten Pins gehen von 0-4V

Meinte Theorie wäre jetzt, dass die nicht unerhebliche Leitungslänge in 
Verbindung mit den vielen Eingängen der Register eine recht hohe 
Kapazität darstellt und das Signal verfälscht. Dagegen spricht 
allerdings die Tatsache, dass selbst mit High im Controller das Signal 
nicht langsam auf 4V ansteigt.


Eine dritte Beobachtung macht mir noch Kopfzerbrechen. In regelmäßigen 
Abständen (im ms Bereich) erkennt man auf dem Oszi ein rechteck 
Signal(~1V).

Software sind zur Zeit nur ein paar Zeilen die eigentlich nur stets 
zwischen high und low herschalten.


Ich hoffe das war jetzt nicht zu viel Text, aber trotzdem danke für´s 
lesen. Für mich ist das Projekt relativ wichtig, weil ich einfach 
wahnsinnig viel Zeit investiert habe und auch recht viel Geld (so ne 
Platine ist ja Schweine teuer und 2-lagig durchkontaktiert trau ich mir 
daheim nicht zu).


Gruß
Basti

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du eine Platine hast fertigen lassen, gibt es auch einen 
Schaltplan.

Am nesten, Du postest mal beides.....

Gruss Otto

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Jedes mal wenn ich die Fuses setze kann ich den AVR nur noch mit einem
externen Oszilator wiederbeleben.

Dann sind sie vermutlich FALSCH gesetzt.

> Dagegen spricht
allerdings die Tatsache, dass selbst mit High im Controller das Signal
nicht langsam auf 4V ansteigt.

Meine Kristallkugel antwortet: nix verstehn......

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Basti wrote:

> Eigentlich wollte ich einen 20Mhz Quarz benutzen

Dann solltest Du auch einen ATmega88 benutzen und nicht den ATmega8.


> Das Signal liegt immer auf GND an XTAL 1/2.

Dann sind die Fuses falsch.
Wenn man auf Quarz fused, ist zwischen XTAL1/2 ein Inverter.
D.h. XTAL1 auf low ziehen muß high an XTAL2 bewirken, XTAL1 auf high muß 
XTAL2 = low bewirken.

> Das zweite Problem ist, dass sich der Pegel an der Steuerleitung zu den
> Schieberegistern lediglich von 0 - ca. 1 V bewegt.

Wohl kein VCC an den Schieberegistern.


Peter

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ich schliesse mich mit meiner Kristallkugel mal an:

Höchstwahrscheinlich hast Du die Fuses völlig falsch und statt "external 
Crystal" "external Oscillator" eingestellt, dann erwartet der AVR einen 
an XTAL eingespeisten Takt. Dafür spricht Deine Schilderung, dass Du 
nach dem Programmieren nur mit externem Takt wieder dran kommst (grosses 
Wunder! ;-)

Wenn Du es dann mal schaffst auf externen Quarz (Crystal) umzustellen, 
vergiss nicht, auch die CKOPT Fuse zu setzen und damit statt einem sehr 
wackeligen und einstreuungsempfindlichen Oszillator (der spezielle 
Quarze bräuchte) einen deutlich robusteren Oszillatortyp einzuschalten.

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zuerst muss ich mich entschuldigen, leider hatte ich die Tage über keine 
Zeit mehr um zu antworten.


Die Probleme haben sich mehr oder weniger gelöst.

Der Controller wollte nicht schwingen, weil mein (billig) Oszi mit 25pF 
wohl den Schwingkreis beeinflusst hat.

Das 2. Problem lag in bei 2 vertauschten Bauteilen ( Ablockkondensator 
mit 0Ohm-Brücke vertauscht) dadurch wurde von einem Schieberegister der 
Pegel gegen GND gezogen...



Trotzdem vielen Dank.


Gruß
Basti

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.