mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit ATMEGA16 / bread board / Netzteil


Autor: sw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin am verzweifeln denn ich habe ein seltsames Problem.
Meine Schaltung ist auf einem bread board aufgebaut, die 
Versorungsspannung wird von einem Steckernetzteil (ohne Erdung) 
geliefert.  Ich habe am ATMEGA einen Schalter und eine LED 
angeschlossen, und mein einfaches Testprogramm funktioniert auch. 
(entprelltes Ein- Ausschalten der LED) Der ISP ist noch verbunden!

ABER:
Jetzt entferne ich den ISP und dann funktioniert es nur noch wenn ich 
mit dem Finger einen Kontakt, entweder auf +5V oder auf Minus, berühre 
und den Taster drücke. Berühre ich nichts und drücke nur auf den Taster 
schaltet sich die LED weder an noch aus. Wenn ich einen der Pole 
mehrfach antippe führt es dazu das die LED sporadisch an bzw. wieder aus 
geht.

Ich bin überfordert, hat mir jemand einen Tipp? kann es am Netzteil 
liegen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
KLingt für mich eher nach Wackelkontakt im Breadboard. Durch das 
Berühren übst du leichten Druck auf das IC aus, so dass sich der 
Wackelkontakt schliesst.


Mach doch mal ein Photo vom Aufbau. Aber bitte so, dass man auch was 
erkennen kann.

Ansonsten, die üblichen Verdächtigen: Programm herzeigen. Vielleicht 
hast du auch einfach nur die Pullup Widerstände vergessen einzuschalten.

Autor: sw (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
danke für die Hinweise, also einen Wackelkontakt kann ich ausschließen.. 
egal wo ich berühre.... ich habe die Eingangspannung mit einen 7805 
stabilisiert (von 12 V auf 5V), auch wenn ich den zB. den +12V Pol 
berühre gehts dann... das Programm scheint auch ok zu sein, solange der 
ISP drann hängt läuft es! Der ISP macht wohl eine zusätzliche 
Masseverbindung!?
.
.
DDRC  = 0xFF;  // PC0..PC7 as output

PORTC = 0x00;  // all PORTC output pins Off

DDRA  = 0x00;  //all A port pins as input

PORTA=(1<<PA0);  //Enable internal Pull-Up resistors
.
.

Autor: sw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den ISP habe ich testweise abgeklemmt, geändert hat sich dadurch nichts. 
die 3 grünen Kabel rechts unten führen zu einem sub-d stecker, auch wenn 
ich dort minus berühre funktioniert es. Aber eben nur wenn...

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schließt du deinen ISP an? Bild?

Autor: sw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich bin sw! hab mich jetzt eingeloggt :-)

der ISP war über einen 10 poligen Wannenstecker, quasi freiluftmäsig, 
angeschlossen.. ist ein serieller.

reicht dies als Info?

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kanns mir vorstellen :D
Hast du deine Masse schon überall überprüft (mit Multimeter oder 
Piepser)?

Autor: MarioT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Aufbau ist nicht gut. Bevor Du versuchst da Fehler zu finden, ist es 
besser erstmal die Kabel umzustecken. Den Quarz mußt Du direkt an den µC 
bringen daneben die C und direkt nach Masse am µC. Du gehst mit deiner 
Masse erst zu den LED dann zum µC und der Quarz ist wieder wo anders. 
Das ist alles Zufall wenn da was geht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sw schrieb:

> ISP drann hängt läuft es! Der ISP macht wohl eine zusätzliche
> Masseverbindung!?

Ich hab dein Bild jetzt abgesucht. Ich kann keine fehlende Masse 
entdecken.

Bei meinem Steckbrett hab ich das so gelöst, dass Vcc und Masse 
grundsätzlich auf die beiden waagrechten Schienen aufgeschaltet werden.
Ich hab also in der Mitte die kurzen Verbinder (du hast so einen 
drinnen, ein kurzes oranges Stück) grundsätzlich auf den 
Versorgungsschienen aller 8 waagrechten Bahnen drinnen um die Schienen 
durchgehend zu bekommen.
Die Versorgungsbahnen sind am Rand des Steckbretts ebenfalls 
grundsätzlich mit möglichst passenden Stücken verbunden, die nicht in 
der Luft rumhängen.

Also nicht so wie du, dass da eine VCC Verbindung quer über den 
Prozessor, eine Masseverbindung links, eine rechts läuft.

Ich hab mir auch mit schwarzem und rotem Edding die Bahnen markiert, 
damit ich Vcc und GND nicht irrtümlich verwechsle.

Ich denke auch, dass irgendwo die Masse fehlt, wenn deine waagrechten 
Bahnen nur 1 mal (in der MItte) im Steckbrett unterteilt sind, dann seh 
ich aber nicht wo. Bei meinem Steckbrett muss ich zb jeweils 2 Brücken 
pro Bahn einsetzen.

Ich würde: zuerst mal aufräumen, indem ich mir auf dem Steckbrett Vcc 
und Masse möglichst 'fix' verlege und auch die korrekte Verbindung 
durchklingle.

  ---------------------------- +++ ------------------------------+   +5V
  ---------------------------- +++ ----------------------------+-|   GND
                                                               + +
                                                               + +
                                                               + +
                                                               + +
  +--------------------------- +++ ----------------------------|-+   +5V
  |-+------------------------- +++ ----------------------------+--   GND
  + |
  +-|------------------------- +++ ------------------------------+   +5V
  --+------------------------- +++ ----------------------------+-|   GND
                                                               + +
                                                               + +
                                                               + +
                                                               + +
  ---------------------------- +++ ----------------------------|-+   +5V
  ---------------------------- +++ ----------------------------+--   GND


Die + sind jeweils möglichst exakt passende Drahtbrücken. Damit sind 
alle waagrechten Schienen grundsätzlich paarweise miteinander verbunden. 
Du brauchst nur mit dem Ohmmeter kontrollieren ob du vom linken oberen 
Eck zum linken unteren Eck Durchgang hast um sicher zu gehen, dass auch 
überall Vcc bzw GND vorhanden ist.

Ab sofort kannst du dann immer den kürzesten Weg zum nächsten 
Versorgungspin nehmen und reduzierst damit den Drahtverhau ein wenig. Es 
ist auch angenehm, wenn man nicht groß nachdenken muss, ob man auf 
dieser Teilschiene Masse schon da hat oder nicht. Sie ist einfach da, 
dank der 'Basis-Dauerverdrahtung'.


> .
> .
> DDRC  = 0xFF;  // PC0..PC7 as output
>
> PORTC = 0x00;  // all PORTC output pins Off

PORTC?
JTAG hast du abgeschaltet?

Edit: Das mit dem JTAG ist schon ein Reflex, wenn irgendwas nicht geht 
und Port C involviert ist.

Autor: sw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
per Fuses den JTAG Abschalten...?? muss ich mal überprüfen


Also Fehler habe ich auch schon vergeblich gesucht, durchs rumprobieren 
habe ich teilweise die Verbindungen für + und - rausgenommen und 
testweise direkt angeschlossen... von daher sieht es ziemlich 
unordentlich aus.

Deinen Rat nehme ich mir zu Herzen und ich denke  das ich erstmal ein 
'start from scratch' machen sollte...

ISP funktioniert gerade auch nicht mehr... :-(

Ich werde alles nochmal mit einem ATMEGA8 aufbauen.... SAUBER! :-)

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Quarz hat doch keine 2,5mm Rastermaß - demnach hast Du den gar nicht 
kontaktiert. Kann das sein, dass der Quarz gar nicht schwingt und nur 
bei Massekontakt der µC irgendwie ins Schwingen kommt?

Ansonsten wäre das der erste Punkt, der dringend geändert gehört:
Den Quarz und die beiden Cs nahe an den µC ran

Gruß,
Bernd

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denk dran, einen PullUp-Widerstand am Reset-Anschluss anzuschließen.

Mit ISP-Anschluss wird der Reset-Anschluss auf 5V gezogen, ohne ISP 
jedoch nicht. Dann erfolgt dies durch den Finger.

B.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Denk dran, einen PullUp-Widerstand am Reset-Anschluss anzuschließen. Mit
> ISP-Anschluss wird der Reset-Anschluss auf 5V gezogen, ohne ISP
> jedoch nicht.

Keine Ahnung, woher das immer kommt.  Die AVRs haben einen internen 
Pullup am Reset-Pin.

Autor: sw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, und danke an alle für eure Hinweise. Ich habe alles getestet, 
leider hat nichts geholfen.


Nun habe ich die Schaltung komplett neu mit einem ATMEGA8 aufgebaut und 
siehe da.. es funktioniert nun. keine Ahnung was beim anderen ATMEGA 
falsch war...

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.