Bekomme Atmega644 nicht zum laufen. Bräuchte Hilfe

Gast #1898289
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.
Angehängte Dateien:
Gast #1898385
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
Gast #1898389
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;)
#1898416
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
#1898417
Lesenswert?

Ronald schrieb:
> Hier noch die HEX aus dem Flash,

Diese .hex setzt in DDRD Bit 7, nicht Bit 3:
1
     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):
1
     8e:       5c 9a           sbi     0x0b, 4 ; 11
2
 ...
3
     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).
Gast #1899889
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
Gast #1900015
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!!!
Angehängte Dateien:
Gast #1901351
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren