www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bekomme Atmega644 nicht zum laufen. Bräuchte Hilfe


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

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

ich bin schon einige Jahre, immermal ein bisschen dabei Mikrocontroller 
zu programmieren. Habe jetzt ein halbes Jahr Pause gemacht und habe mir 
jetzt endlich eine Platine ätzen lassen. Drauf ist ein DOGL, ENC28J60, 
ein paar Cursortasten und 4 Ausgänge mit LEDs.

Mein Problem ist es, das ich den Mega zwar flashen kann. Aber nichts tut 
sich. Ich kann Fusebits schreiben und lesen und AVR-Studio gibt mir die 
Signature zurück.Auch habe ich an PINB1 die Takt über das Bit CLKOUT 
messen können. Auslesen kann ich das Programm auch, zwar in 
Maschinencode aber es wurde aufjedenfall etwas in den Speicher gebrannt. 
Desweiteren habe ich mit dem Multimeter alle Beinchen des Megas 
überprüft, keines ist mit einem anderen verbunden.

Ich habe ein ganz simples Programm, welches einfach nur eine LED an und 
aus machen soll, nix weiter.


#include <avr/io.h>
#define F_CPU 8000000UL
#include <util/delay.h>
int main(void)
{
    DDRD |= (1 << PD3);
    while(1)
    {
        PORTD |= (1 << PD3);
        _delay_ms(200);
        PORTD &= ~(1 << PD3);
        _delay_ms(200);
    }
}


Der Mega ist ein ATMEGA644-20AU im TQF44 Gehäuse
Programmiert wird er mit eine USB-ISP Programmer von OBD-Diag
Als Entwicklungsumgebung wechsele ich zwischen AVRSTUDIO 4.13 und der 
neuesten WINAVR Umgebung
Fuses stelle ich mit dem AVRSTUDIO.

Den Schaltplan habe ich mit TARGET erstellt, hierzu ist zu sagen, das 
ich den Schaltregler noch nicht eingebaut habe und die 
Spannunsversorgung extern mit 5Volt auf die Schaltung gebe, welche dann 
über den Linearregler auf 3,3V heruntergeregelt wird.

Den Reset Taster habe ich Samt Widerstand und Kondesator schon entfernt, 
war ein Versuch, hatte gedacht dieser würde das Problem verursachen. Hat 
aber rein gar nichts gebracht.

Wenn ich mit einem Widerstand ein Beinchen des ULN2003 kitzle geht auch 
die entsprechende LED an... vielleicht nicht so gut für den MEGA???

Vielleicht bin ich einfach nur Blind vor Verzweifelung, aber vielleicht 
hat jemand eine Lösung. Wenn ich Hilfe bekommen würde, wäre ich sehr 
verbunden.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie änderst du die Fuses ?

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

Bewertung
0 lesenswert
nicht lesenswert
Ronald schrieb:

> #include <avr/io.h>
> #define F_CPU 8000000UL
> #include <util/delay.h>
> int main(void)
> {
>     DDRD |= (1 << PD3);
>     while(1)
>     {
>         PORTD |= (1 << PD3);
>         _delay_ms(200);
>         PORTD &= ~(1 << PD3);
>         _delay_ms(200);
>     }
> }
>

?

laut deinem SChaltplan hängen die LED an PD4, PD5, PD6, PD7

an PD3 hängt keine LED

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

Bewertung
0 lesenswert
nicht lesenswert
Ändere ich mit dem AVR-Studio. So wir es Aussieht funktioniert das.
Gut wenn es funktionieren würde, müsste es blinken...
;-(

Autor: Ronald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut OK, da hängt direkt keine. Jedoch hängt an diesem Pin die 
Hintergrundbeleuchtung des DOGL. Werde es aber noch einmal mit den LEDs 
prüfen.

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

Bewertung
0 lesenswert
nicht lesenswert
Ronald schrieb:
> Ändere ich mit dem AVR-Studio. So wir es Aussieht funktioniert das.
> Gut wenn es funktionieren würde, müsste es blinken...
> ;-(

Ist jetzt zwar nicht das Problem, aber JTAGEN schaltest du am besten 
gleich mal aus.

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

Bewertung
0 lesenswert
nicht lesenswert
Egal welchen Ausgangs Pin ich nehme, nix.
Hier noch die HEX aus dem Flash, vielleicht kann mir jemand sagen, ob 
das rein ersichtlich richtig ist, oder schon im gebrannten Flash ein 
Fehler ist.

Autor: Ronald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAGEN ist jetzt aussgeschaltet.

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

Bewertung
0 lesenswert
nicht lesenswert
Hier noch 2 Fotos von der Platine. Habe den Quarz ersteinmal wieder 
runtergelötet. Ich denke das war die Verzweifelung.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Was ich auf dem Schaltplan und der Platine vermisse ist die Abblockung 
der einzelnen VCC-Anschlüsse des ATMega. Da gehört an jeden ein C. 
Ausserdem ist deine Masse sehr schmalbrüstig. Die führt man 
üblicherweise als Fläche aus.

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ausserdem ist deine Masse sehr schmalbrüstig. Die führt man
>üblicherweise als Fläche aus.

Komisch, bei meinen alten TTL Gräbern war das wohl
nicht so wichtig. Die funktionieren auch ohne Massefläche.
Ich hab die aber auch gebaut bevor Eagle erfunden wurde.

Seit es Eagle gibt funktionieren Schaltungen natürlich
nur noch mit Masseflächen. ROFL;)

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Massefläche muss ja nicht sein, aber eins ist sicher. Wo ein Strom 
reinfließt muss der selbe auch wieder raus...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Seit es Eagle gibt funktionieren Schaltungen natürlich
>nur noch mit Masseflächen. ROFL;)

Was ist Eagle?

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Spess

>Was ist Eagle?

Ist doch völlig egal.
Deine Theorie der Masseflächen kann helfen, kann aber auch schaden
wenn man es nicht richtig macht. Das ist kein Allheilmittel.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ja vielleicht ne 4lagige Platine. Da sehen wir die Planes natürlich 
nicht ^^

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ronald,

jetzt habe ich alle Beiträge hier mehrfach gelesen und
konnte nicht den Schaltplan erkennen, den Du im ersten Post
angehängt hast.

.. aber wenn Karl Heinz gesehen hat, dass an dem Pin kein Led 
drannehängt
solltest Du ihm vielleicht glauben.

-> Der Mann hat noch nie groben Unfug erzählt


Gruss Klaus

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ronald schrieb:
> Hier noch die HEX aus dem Flash,

Diese .hex setzt in DDRD Bit 7, nicht Bit 3:
     88:       57 9a           sbi     0x0a, 7 ; 10
und stimmt somit nicht mit dem gezeigten Code überein.  Ebenfalls das: 
Geblinkt wird später auf Bit 4 (nicht 3):
     8e:       5c 9a           sbi     0x0b, 4 ; 11
 ...
     9e:       5c 98           cbi     0x0b, 4 ; 11
Blinken kann mit dieser .hex nichts (höchstens durch den Pullup seeehr 
schwach).

Die gezeigten Adressen sind Byte-Adressen (Disassembler: avr-objdump).

Autor: Ronald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bekomme es immer noch nicht hin. Habe jetzt das Programm noch ein paar 
mal geflasht. Habe geguckt, ob ich wirklich keine Querverbindungen zu 
anderen Beinchen habe. Nichts. Es tut sich nichts.

Ich habe so ein zwei Ideen. Aber bin mir nicht sicher. Vielleicht ist 
der ULN2003 falsch rum eingebaut. Ich dachte eigentlich Strich oben ist 
die Kennzeichnung für PIN1. Aber wenn der falschrum drin ist, Wieso kann 
ich dann die LEDS zum leuchten bringen, wenn ich ein Eingangsbeinchen 
kitzle.
Dann verstehe ich nicht, warum ich ihn überhaupt flashen kann, wenn sich 
rein ersichtlich aber nichts an den Ausgängen tut? Laufen tut er, 
jedenfalls denk ich das, weil CLKOUT rund 8MHz ausspuckt. Könnte es sein 
das die Pins falch adressiert werden und deshalb nicht ausgegeben wird?
Oder ist der Controller hin(Flashen ja, Ausgänge kaputt????)


Bitte um Hilfe, wie ich vorgehen kann, damit ich den Fehler finde!!!

Mit der Massefläche haben natürlich meine Vorschreiber recht. Aber 
dennoch müsste er das was ich vorhabe doch funktionieren. Lochraster 
Basteleien gehen ja auch, ohne MAssefläche.

Ronald

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

Bewertung
0 lesenswert
nicht lesenswert
Danke das ihr mir geholfen habt.
Der Fehler war sehr eigenartig. Habe den Reset-Pin nocheinmal überprüft 
und bin anscheind hart an VCC gekommen, auf einmal blinkt es. Verrückt. 
Jetzt funktioniert es einwandfrei und ich kann loslegen!!!

Autor: Loonix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Ausserdem ist deine Masse sehr schmalbrüstig. Die führt man
> üblicherweise als Fläche aus.

Ronald schrieb:
> Mit der Massefläche haben natürlich meine Vorschreiber recht. Aber
> dennoch müsste er das was ich vorhabe doch funktionieren. Lochraster
> Basteleien gehen ja auch, ohne MAssefläche.

Fläche allein ist nicht das Kriterium. Eine Masse-Bahn als Rückleiter 
neben jeder Signalleitung sollte aber schon drin sein, solange nicht 
gegenüber eine geschlossene(!) Massefläche liegt.

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.