Atmega PortA komische Pegel

Gast #2706936
Lesenswert?

Hallo,
ich benutze einen Atmega 32, den ich über das stk500 Programmiere.
Nach dem meine Schaltung nicht funktionierte habe ich den Fehler am 
PortA des microcontrollers gefunden. Dieser liefert mir 1,4V obwohl ich 
ihn als Ausgang definiert habe und ein Null Signal ausgeben lasse. 
Demnach müsste 0V rauskommen.

AREF = AVCC = VCC = 5V
GND = AGND = 0V
Dazwichen liegen 2x 1uF Kondensatoren.

DDRA = 0xff;
PORTA = 0x00;

Gibt es ein Fuse bit oder ähnliches was dafür verantwortlich ist?
Gast #2707003
Lesenswert?

> Gibt es ein Fuse bit oder ähnliches was dafür verantwortlich ist?

Nein.

> AREF = AVCC = VCC = 5V
> GND = AGND = 0V
> Dazwichen liegen 2x 1uF Kondensatoren.

Schaltpläne in Prosa sind einfach Mist.

Ist der Atmega32 bei der Spannungsmessung noch in dem STK500 oder auf 
einer eigenen Platine?

Bist du sicher, dass der Rest deiner Schaltung keinen Einfluss auf die 
Messung hat?
Gast #2707057
Lesenswert?

Erstma Danke für deine schnelle Antwort.
Ich habe nach deiner Frage, ob der Rest der Schaltung was damit zu tun 
hat, den uC auf ein Steckbrett gepackt und nur die Anschlüsse
VCC,GND,XTAL2,XTAL1,AREF,AGND,AVCC mit meiner eigentlichen Schaltung 
verbunden und PortC gemessen, 0V, so wie es sein soll. Also liegt es 
wohl an der Schaltung.
Hast du eine Idee wie das kommen kann, denn es sind alle Ports als 
Ausgang definiert und viele Pins sind gar nicht in benutzung. Es gibt 
nur einen Pin an PortB der als Eingang definiert ist.
#2707323
Lesenswert?

PortA beinhaltet 8 Pins und die liefern alle 1,4V?

Entweder zieht irgend was, das elektrisch mit den entsprechenden Pins 
verbunden ist, diese nach oben oder der Prozessor hat ne Macke. Halbe 
bits auf I/O Pins ist ein typischer Fehler bei durch Überspannung 
geschossenen Ausgängen.

Thor
Gast #2707348
Lesenswert?

Ich habe jetzt nochmal den uC in meine Schaltung gesteckt und alle 
Verbindungen von PortA,B,C,D getrennt. Er hängt also nur noch an
AREF,AVCC,AGND,VCC,GND,XTAL1 und XTAL2. (Siehe Bild)
Und trotzdem liefert er mir an allen Pins von PortC 4V.
Dies ist das vollständige Programm. (So einfach wie möglich um Software 
fehler auszuschließen)

#include <avr/io.h>
int main(void)
{
   DDRA = 0xff;
   PORTA = 0x00;
   while (1)
    {
      }
}

JTAG ist Deaktiviert. Und er ist auf Ext. Crystel gefused.
Ich hatte gehofft, dass es ähnlich wie JTAG, ein fuse Bit was den ADC 
Modus geaktiviert.
Angehängte Dateien:
Gast #2707461
Lesenswert?

Der Reset ist definitv high. Gemessen hab ich es auch 5V. Aber ich 
wollte ein einfaches blinken Progrmmieren. Am stk geht das auch aber in 
der Schaltung liefert er eine konst. Spannung.
Muss man im Programm noch eine Zeile schreiben die den Takt definiert 
wie

#define F_CPU 14745000UL

oder reicht es aus das fuse-Bit auf ext. Crystal zu setzen und er 
übernimmt selbstständig den takt des quarzes
Persönliche Seite #2707474
Lesenswert?

Anfänger schrieb:
> Der Reset ist definitv high. Gemessen hab ich es auch 5V. Aber ich
> wollte ein einfaches blinken Progrmmieren. Am stk geht das auch aber in
> der Schaltung liefert er eine konst. Spannung.
> Muss man im Programm noch eine Zeile schreiben die den Takt definiert
> wie
>
> #define F_CPU 14745000UL
>
> oder reicht es aus das fuse-Bit auf ext. Crystal zu setzen und er
> übernimmt selbstständig den takt des quarzes

Oh oh. Ob du Defines in dein Programm schreibst merkt der µC gar nicht. 
Dies dient nur dazu, z.B. _delay_ms(100) in meinetwegen 1030405 Takte 
warten umzurechnen
Gast #2707530
Lesenswert?

Ist es möglich das sich PortA und PortC gegenseitig stören?
Ich habe versucht mal beide auf 0xff mal beide 0x00 und mal den einen 
0x00 und den anderen 0xff zu setzen und wenn ich sofort nach einschalten 
gemessen habe kam mist raus hab ich nen kleinen moment später noch ma 
gemessen war alles richtig.

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