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?
> 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?
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.
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
Ah, wait! > Nach dem meine Schaltung nicht funktionierte habe ich den Fehler am > PortA des microcontrollers gefunden. Also hängt tatsächlich was an den pins. Offensichtlich speist diese angeschlossene Schaltug einen zu hohen Strom in den I/O Pin zurück. Thor
Anfänger schrieb: > AREF = AVCC = VCC = 5V hat nix mit deinem Fehler zu tun aber Aref=5V ist nicht sinnvoll: wenn du beim Einstellen des AD-Wandlers nicht aufpasst produzierst du einen Kurzschluss
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.
Mal gecheckt ob der Proz überhaupt läuft? Vielleicht ist Reset low. Thor
>Und trotzdem liefert er mir an allen Pins von PortC 4V. > DDRA = 0xff; > PORTA = 0x00; Was denn nun PortA oder PortC? Wenn du PortA auf Ausgang setzt floatet PortC. Entscheide dich mal;)
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
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
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.