www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problemsammlung Programmierung


Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin mir im klaren darüber, dass es hier 'zig tausende Einträge zu 
diesem Thema gibt, trotzdem hier mein Problem:
Ich habe mir eine Platine zum Programmieren zusammengelötet -> atmega8 
lässt sich mit dapa perfekt (naja) beschreiben. Jetzt hab' ich eine 
etwas komplexere Platine zusammengebastelt, controller rein - nix geht. 
Controller wieder zurück und nen LED-blinkprogramm drauf (LED soll 
einfach durchgehend leuchten). In der fertigen Platine aber funktioniert 
die Schaltung nur sehr eingeschränkt - die LED geht erst nach ein paar 
Sekunden an und geht dann einfach hin und wieder aus, vA dann wenn ich 
an ebendieser Platine den Programmer anschließe. Mit Spannungsmesser 
dran (ich hab' keine Ahnung was ich mache) seh ich, dass die Spannung 
einfach mal gegen 0, mal gegen 5v geht. Ich verwende in beiden Platinen 
(Test~ und neuer) den selben Quarz. Ich würd' mich über n bisschen Hilfe 
echt freuen.

Frank

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oje, die hatte ich komplett übersehn.
Ich hatte mich beim Aufbau an diese Anleitung hier:
http://www.linuxfocus.org/Deutsch/November2004/art...
ursprünglich bezogen, deswegen hab ich bzgl des Abblockkondensators 
(10µF Elko) und der Beschaltung von AGND und AVCC (keine beschaltung) 
Unterschiede entdeckt. Nur verstehe ich nicht, warum die erste Schaltung 
bzgl Programmierung bisher keine Probleme macht, während die 2. sich 
nicht allzu deterministisch verhält. AVCC und AGND anzuschließen brachte 
übrigens keine merkliche Verbesserung der Lage. Der Quarz ist übrigens 
über 2 22pF Kondensatoren angeschlossen, allerdings sind die für bis 
100V gedacht, darin besteht verdrahtungsmäßig der einzige unterschied 
zur funktionierenden Schaltung.
Danke nochmal für die schnelle Antwort.

Frank

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

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal ein Photo deiner Platine machen (oder noch besser: auf den 
Scanner legen)
Deine Fehlersymptome klingen für mich nach kalter Lötstelle oder nach 
einem gerade noch Kurzschluss oder sowas in der Richtung (Wackelkontakt)

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fotographieren, scannen geht leider nicht, weil 1. lochrasterplatine, 2. 
kein fotoapparat/scanner da ist.
Vielen Dank für den Hinweis - ließe sich das durch einfaches 
Nachkontrollieren mit dem Lötkolben korrigieren??
(sry, komm' aus der Softwareecke -> elektrik, differentialgleichungen, 
... ist nicht so ganz meins ;) )

Frank

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

Bewertung
0 lesenswert
nicht lesenswert
Frank Ehmann wrote:
> fotographieren, scannen geht leider nicht, weil 1. lochrasterplatine, 2.
> kein fotoapparat/scanner da ist.

1. wäre kein Problem, aber 2. ist der Showstopper :-)

> Vielen Dank für den Hinweis - ließe sich das durch einfaches
> Nachkontrollieren mit dem Lötkolben korrigieren??

Ja.
Schau dir alle Verbindungen an. Alle Lötstellen die nicht schön glänzen, 
sondern matt erscheinen, sind heisse Kandidaten. Auch wenn die Lötstelle 
mehr Perlenform hat als die normale übliche Kegelform, ist das ein 
heisser Kandidat.

Wie hast du die Verbindungen gezogen? Draht? Dann könnte Kabelbruch eine 
Möglichkeit sein.

Deine Spannungsversorgung hast du schon mit einem Voltmeter 
kontrolliert?

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ouch - Fehler gefunden - befürchte ich wenigstens.
Ich hatte - weil mir die Sockel ausgegangen waren 
Präzisionsbuchsenleisten(oder wie auch immer die heißen, die mit den 
runden Löchern) verwendet und den avr nicht mit brutalster Gewalt in die 
Fassung gezwängt. Allerdings kann ich mir jetzt wenigstens (halbwegs) 
sicher sein, dass die Lötverbindungen in Ordnung sind.
Nochmal vielen vielen Dank für die Hilfe.

Frank

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Ehmann wrote:
> Ouch - Fehler gefunden - befürchte ich wenigstens.
> Ich hatte - weil mir die Sockel ausgegangen waren
> Präzisionsbuchsenleisten(oder wie auch immer die heißen, die mit den
> runden Löchern) verwendet und den avr nicht mit brutalster Gewalt in die
> Fassung gezwängt.

Habe nicht viel mit AVR zu tun gehabt, aber muss man die mit brutalster 
Gewalt in die Fassung zwängen, damit sie funktionieren? ;-)

Meine PICs habe ich immer mit Vorsicht, aber bestimmt in die Fassung 
gedrückt.

> Allerdings kann ich mir jetzt wenigstens (halbwegs)
> sicher sein, dass die Lötverbindungen in Ordnung sind.

Nur weil Du einen Fehler (was eigentlich, die Sache mit der Gewalt?) 
gefunden hast, heisst das noch lange nicht, dass der Rest in Ordnung 
ist.

Hier übrigens ein tolles Buch über Fehlersuche, mit einer Prise Humor 
gewürzt:
http://www.techonline.com/learning/techpaper/210800201
(zwei Kapitel sind online kostenlos lesbar).

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

naja - rohe Gewalt - der IC saß bisschen schief. Wollte den eigentlich 
auch nicht so brutal behandeln, da ich ihn ja immer wieder in die andere 
Schaltung umbaun musste.
Also momentan funktioniert meine Platine soweit ich getestet habe 
(Programmieren, LCD, LEDs) nur, wenn ich den Deckel nicht auf das 
Gehäuse in dem sie sich befindet setze. Vermute, dass es dann 
irgendeinen Kurzschluss gibt oder der Quarz aus dem Sockel fällt, ...
Ob jetzt der Rest (USART, TWI, ...) funktionieren, weiterer 
Nichtdeterminismus auftritt hab' ich allerdings noch nicht geprüft.

thx nochmal für die Hilfe

Frank

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Ehmann wrote:

> Also momentan funktioniert meine Platine soweit ich getestet habe
> (Programmieren, LCD, LEDs) nur, wenn ich den Deckel nicht auf das
> Gehäuse in dem sie sich befindet setze.

Hast Du einen Fototransistor in der 5V Leitung?

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^^
nein, nur keine Schrumpfschläuche oder ähnliche Isolierungsmaterialien, 
also Blatt Papier zwischen Dioden und Platine gelegt, was wohl 
verrutscht ist und nen Kurzschluss verursacht hat. zZt leuchtet die LED 
-> mein Programm arbeitet anscheinend soweit korrekt.

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nachtrag:
Programmierung scheint soweit zu funktionieren.
Das Ausführen des Programms auf meiner alten Platine geht auch perfekt, 
aber auf der neuen Platine wird ein Takt erst nach nicht nachvollziehbar 
langer Zeit oder garnicht ausgeführt. LED statisch beleuchten geht, 
alles weitere nicht.
Ich würd' meine Fehlersuche gern eingrenzen, also wo könnte der Fehler 
liegen?

tschuldigung, dass ich das Forum so zuspamme

Frank

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht solltest Du Dir mal die AVR-Appnotes anschaun? Z.B. AVR040
http://www.atmel.com/dyn/resources/prod_documents/...

~

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sag mal..

mit dem takt .. da schreibst du folgendes:

"Der Quarz ist übrigens
über 2 22pF Kondensatoren angeschlossen, allerdings sind die für bis
100V gedacht"

das wäre aber doch falsch .. oder ?

die 22pf müssen doch gegen masse und nicht in reihe.

gruss

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm - ja ich glaub' das meinte ich.
jedenfalls schaut's folgendermaßen aus:

 .---||-- Quarz--- AVR
 |---||-- Quarz--- AVR
_|_

da ich mich mit elektronischen Bauteilen über des bisschen, was man in 
der Schule lernt nicht auskenne hab' ich halt den Kondensatoren 
mistraut, die mir da gegeben wurdne, weil halt Keramik, rauh und ohne 
Aufdruck statt glänzend blau mit 220k.

Den Quarz hab' ich übrigens jetzt abgehängt (fuses gesetzt) um den 
wenigstens ausschließen zu können.

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nach ewigem Suchen und vernachlässigen sonstiger Tätigkeiten (essen, 
schlafen, lernen) konnte ich jetzt mein Problem vermutlich erstmal auf 
das LCD einschränken.
ein Testprogramm (Link war in meinem ersten Post) läuft super (LEDS), 
aber sobald ich die led.h (pfleury-libs) einbinde (ausgänge sind 
eingestellt), und versuche lcd_init(LCD_DISP_ON); aufzurufen hängt das 
Programm an genau der Stelle. Das LCD zeigt, wie wenn es auch nicht 
angesprochen wird eine Zeile Schwarze Rechtecke.
Gibt's zu diesem Thema nen Patentrezept oder kann s auch einfach an der 
Verkabelung des LCDs liegen? (wie ließe sich herausfinden, ob ich das 
LCD aus versehen zerstört habe?)

Danke für die Geduld

Frank

Autor: Gast Posti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Über LCD's hat sich SPRUT ( www.sprut.de ) mal ausgelassen ... ist 
zumindest auf Deutsch :)

Was mir sonst zu störichen µC's einfällt ...
- sind unbeschaltete Eingänge vorhanden
- ist Reset korrekt gesetzt (kA, AVR's kenne ich nicht)
- Stützkondensator vorhanden

Mehr fällt mir nicht ein

Das mit dem Deckel interessiert mich aber noch etwas ;)
In wie fern kann ein Deckel derartige Probleme machen?
Oder sitzt der Deckel 'press' auf der Schaltung, wenn das Teil halt 
geschlossen ist?
Vll wird die Platine dabei auf den Boden gedrückt und dort entstehen 
Kurzschlüsse?

MfG

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
um mal die Fragen zu beantworten:
 - unbeschaltete Eingänge - jop - hab nicht alle Pins an irgendwas 
angeschlossen, die die ich brauch natürlich ausgenommen.
 - notReset ist über R an VCC verbunden
 - Stützkondensator, wenn s der zwischen VCC und GND am µC is, ja der is 
da.

Das mit dem Deckel kam vermutlich von nicht isolierten LED-Füßchen, hab 
da jetzt nen Schrumpfschlauf drübergsetzt und verwende die jetzt als 
"Debuggerausgabe":

led 0 = 1, led 1 = 2, led 0+1 = 3, nix = 4
somit konnte ich rausfinden, wo das Programm stehen bleibt. Der folgende 
Befehl wird nicht mehr ausgeführt (warum auch immer):

        DDR(LCD_RW_PORT)    |= _BV(LCD_RW_PIN);

der befehl DDR ... geht , da ich ja die LEDS "initialisiere" und auch 
vorher noch
        DDR(LCD_RS_PORT)    |= _BV(LCD_RS_PIN);
ausgeführt wird.

ich weiß hier nicht weiter - btw _BV ?= (1<<LCD_RS_PIN) ???


Frank

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es sein, dass das Display vollkommen den Geist aufgegeben hat?

hier: Beitrag "lcd zeigt nur schwarze balken"

hatte jemand anscheinend ziemlich das gleiche Problem. Hab' grad noch ne 
Lötbrücke entfernt, und alle Pins des LCDs nochmal durchgemessen, ob ich 
irgendwo nen Kurzschluss hab' aber da war nichts zu finden.
Nachdem aber in meiner Ursprungsschaltung das Teil auch nicht mehr 
reagiert . . . :'(

Jetzt muss ich mal schaun, wo ich n vergleichbares Display herkrieg(was 
auch in die Aussparung am Gehäuse passt.
Danke nochmal für die Hilfe.

Frank

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Löse mal einen Reset über den Reset-Pin aus, wenn an AVR und LCD bereits 
Spannung anliegt. Sollte nach diesem Reset das LCD initialisiert werden, 
dann ist die Wartezeit vor der Initialisierung in Deiner Software zu 
kurz. Es gibt LCDs, die mit 50ms zufrieden sind, andere brauchen über 
300ms.

...

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab' eigentlich schon nen delay von 1s bevor ich lcd_init aufrufe, 
irgendwas an RS legen ändert nix, muss aber gestehen, dass ich (hab ich 
vorher glaub ich schon geschrieben) ne Lötbrücke zwischen GND (beim 
Quarz) und RS hatte.

Autor: Frank Ehmann (l0k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich häng meine Frage/Problemstellung mal an den alten Thread an, da das 
Problem selbst im Grunde immer noch das gleiche ist.
Hab' mir zwar ein neues LCD(4x20) zugelegt, Leiterbahnen so gut es ging 
(optisch) auf Lötbrücken überprüft (Durchgang gibt s bei dem LCD 
anscheinend immer), Controller angeschlossen, Programm aufgespielt, 
nix(also nur 2 Schwarze Zeilen statt vorher eine).
Ich hab bisher die PFleury LCD-Libraries verwendet, den Kontroller mit 
dem ersten LCD sogar in zwei verschiedenen Schaltungen getestet, aber 
immer gibt s das selbe Ergebnis. Das Programm bleibt anscheinend schon 
beim lcd_init(...) hängen, iirc beim Setzen des RS bits, die 
"debugvariante" ist nur vermutlich auf nem anderen Rechner, deswegen 
lässt sich das nicht so genau sagen.
Gibt's noch besondere Fehlerquellen? Die Leitungen hatte ich ohne LCD 
durchgetestet, sollten bis dahin also keine Brücken enthalten, die 
Lötstellen am LCD konnte ich nur durch Draufschaun, Messer testen.
Programm - hab' mir letztens andere LCD-libraries runtergeladen, werde 
die mal testen. Kann der µC irgendwie zerstört sein? Kann man das 
irgendwie überprüfen ohne LEDs an die Pins zu hängen?
Nochmal vielen Dank für die Hilfe bisher

Frank

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.