Forum: Mikrocontroller und Digitale Elektronik 1284P weigert sich bei Port D


von Max (Gast)


Lesenswert?

Hallo Leute,

arbeite frisch mit einem 1284P. Soweit läuft alles. Die 
ISP-Programmierung, das 8-bit-Display, RX/TX....nun wollte ich trivial 
am Port D eine LED zum Leuchten bringen, aber nichts passiert. Mit dem 
ganzen Port D passiert nichts. Einige Pins sind auf Masse, andere auf 
4,3V (VCC=5V). Und egal was ich programmiere, es ändert sich nichts.

Da ich das schon eine Weile mache und die anderen Sachen (Display, 
RX/TX) problemlos laufen, kann es ja nur Hexerei oder eine Besonderheit 
des Chips sein. Natürlich ist alles richtig programmiert, es gibt keine 
Kurzschlüsse/Verbindungen etc. Auch Jtag ist aus. Da das Programm 
momentan auch nur aus Initialisierung und "toggle Portd.4" besteht, 
scheiden auch Programmierfehler aus....wer hat eine Idee? Bin für alles 
offen, danke.

von Pandur S. (jetztnicht)


Lesenswert?

Ich wuerd den Fehler bei Zeile 42 suchen. Er ist oft dort, ist fast 
schon die Huette, wo der Fehler wohnt.

: Bearbeitet durch User
von 1284user (Gast)


Lesenswert?

Max schrieb:
> wer hat eine Idee? Bin für alles offen, danke.

Am Programm kann's nicht liegen, das haben wir ja schon
analysiert. Also liegt es an der Hardware:

Pin 45 muss auf Vcc/2 liegen.

von Bippo (Gast)


Lesenswert?

Da natürlich alles richtig programmiert ist und Programmierfehler 
ausgeschlossen sind: Defektes Bauteil, Hexerei oder jemand hat die Suppe 
nicht ausgegessen..

Bitte mehr Infos, was ist programmiert, wie sieht die Schaltung aus?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Max schrieb:
> ganzen Port D passiert nichts. Einige Pins sind auf Masse, andere auf
> 4,3V (VCC=5V). Und egal was ich programmiere, es ändert sich nichts.

 Das ist schon mal hilfreich, dass du genau beschrieben hast welche
 Pins auf Masse sind und welche auf Vcc.

Max schrieb:
> Kurzschlüsse/Verbindungen etc. Auch Jtag ist aus.

 Sicher ?

von 1284user (Gast)


Lesenswert?

Marc V. schrieb:
> Sicher ?

Ich wüsste nicht wie man beim 1284 den JTAG über Port D erreicht.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

1284user schrieb:
> Ich wüsste nicht wie man beim 1284 den JTAG über Port D erreicht.

 Da hast du auch wieder Recht, es ist 1284, mein Fehler.

von Max (Gast)


Lesenswert?

Man merkt, daß Freitag ist und die Schule aus..und einige Wohl wieder 
"zu Unrecht" gemobbt wurden und nun ihren Frust im Netz auslassen.

Die Schaltung sieht gut aus, alles was angeschlossen werden musst, ist 
angeschlossen. Das wissen wir, weil ja Display und ISP und RX/TX 
funktionieren.

Pin 45 liegt sogar zweimal auf VCC/2, von beiden Seiten. Wie gesagt, es 
ist alles richtig angeschlossen.
Pind.5 ist zb 4,35V. Pind.4 ist 0. Pind.3 ist auch 0, Pind.2 ist wieder 
4,35V

von 1284user (Gast)


Lesenswert?

Max schrieb:
> Die Schaltung sieht gut aus,

Stimmt, die schaut hervorragend aus.

Alle machen Fehler, nur du nicht.

von Peter D. (peda)


Lesenswert?

Max schrieb:
> Pin 45 liegt sogar zweimal auf VCC/2

Seltsam, bei meinem ATmega1284P ist nach Pin 44 Schluß.
Und VCC/2 habe ich nirgends auf dem Board.

von 1284user (Gast)


Lesenswert?

Peter D. schrieb:
> Seltsam,

Gell, seltsam ....

von Max (Gast)


Lesenswert?

Peter, laß dich nicht ärgern, die Trolle sind wieder unterwegs.....wenn 
es keine Besonderheiten beim 1284p was Port D betrifft gibt, muß ich 
wohl von einem kuriosen Defekt ausgehen.

von c-hater (Gast)


Lesenswert?

Max schrieb:

> Man merkt, daß Freitag ist und die Schule aus..

Deswegen wohl dein Posting...

> Die Schaltung sieht gut aus, alles was angeschlossen werden musst, ist
> angeschlossen. Das wissen wir, weil ja Display und ISP und RX/TX
> funktionieren.

Das kannst du daraus nicht ableiten. ISP liegt ja nicht an PortD und 
auch das Display liegt wohl nicht an PortD. Und RX/TX (vermutlich 
gemeint: die von USART0) liegen zwar an PortD, sind aber gerade dadurch 
gekennzeichnet, dass die normale Funktionalität der Port-Pins 0 und 1 
durch die USART "overridden" wird, wenn die USART in Benutzung ist.

D.h.: Alles was "wir" zu wissen glauben, ist ein Trugschluss.

Allerdings glaube ich auch, dass der Fehler eher bei der Software liegt. 
Aber die hast du uns ja genauso vorenthalten, wie den Schaltplan...

Ich tippe mal darauf, das DDRD einfach nicht korrekt gesetzt wurde, um 
die Pins zu Ausgängen zu machen. Sei es, weil schlicht die entsprechende 
Anweisung im Code fehlt oder sei es, weil durch falsche Wahl des Targets 
die Registerzuordnung nicht passt.

In jedem Fall: Krasse Inkompetenz der menschlichen Komponente.

von Max (Gast)


Lesenswert?

genau, deswegen mein Posting, weil Leute wie du ihren Schulfrust 
abbauen. Hatte ich schon geschrieben, aber du nicht gelesen..oder 
begriffen, wobei dann wieder das Argument "Schule" zieht...

Wie gesagt, schon ein paar Mal: Hardware und Software stimmen. Da 
braucht also auch nichts gezeigt werden, auch das hast du nicht 
begriffen, oder soll ich dir jetzt einen Apfel zeigen, damit du weißt 
was ein Apfel ist?
Dein Tip war, wie auch schon geschrieben, sinnlos, da alles richtig 
gesetzt worden ist...

Du bist nicht einmal in der Lage ein paar einfache Sätze zu lesen und zu 
verstehen, willst aber einen Schaltplan und Programm-Zeilen haben? Das 
beißt sich doch, du bist doch schon so überfordert.....

Aber in einer Sache hast du Recht: Krasse Inkompetenz der menschlichen 
Komponente.

von Joachim B. (jar)


Lesenswert?

Max schrieb:
> Wie gesagt, schon ein paar Mal: Hardware und Software stimmen.

wie geht das zusammen?

Max schrieb:
> .nun wollte ich trivial
> am Port D eine LED zum Leuchten bringen, aber nichts passiert.

entweder Hardware und/oder Software stimmt eben nicht oder es ist ein 
Mysterium, da kann kein Mensch helfen, beten und/oder weihen wäre eine 
mögliche Lösung.

: Bearbeitet durch User
von Kaj (Gast)


Lesenswert?

Max schrieb:
> Wie gesagt, schon ein paar Mal: Hardware und Software stimmen.
Offensichtlich nicht du Spaten! Und jetzt schraub dich mal wieder 
runter. Du bist es, der hilfe will, und einen dreck dafür tut!
Zeig den Schaltplan und den Code oder du kannst dich gehackt legen!

von Paul B. (paul_baumann)


Lesenswert?

@TO
Panik bei der Fehlersuche bringt nichts. Hast Du alle 4 
Betriebsspannungsanschlüsse belegt? (11 und 31 sind GND, 10 und 30 sind 
+UB)

Tausche mal die LED an einen anderen Pin von Port D. Das ist doch 
schnell gemacht, denn Du hast ja Zugriff per ISP-Schnittstelle, wie Du 
schriebst.

MfG Paul

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Max schrieb:
> Wie gesagt, schon ein paar Mal: Hardware und Software stimmen. Da

 Dann ist ja alles OK, alles muss laufen, was ist genau dein Problem ?

von Karl M. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Max,

ich habe Dir ein Testprogramm geschrieben.

Setup:
F_CPU = 8000000
Device = atmega1284p

Init:
* MCUCR.JTD = 1
* DDRA = 0xff, PORTA = 0x55
* DDRB = 0xff, PORTB = 0x55
* DDRD = 0xff, PORTD = 0x00

Der Timer0 liefert ein 125 Hz Zeitsignal und
der Wert von Portd wird bei jedem Zeitsignal +1 erhöht.
Also 0,1,2,3,...,255, 0,..

Der Timer1 liefert ein 2 Hz Zeitsignal und
die Ports PORTA und PORTB wechseln bei jedem Zeitsignal ihre Werte von 
0x55 zu (0x55 XOR 0xFF) = 0xAA, usw.

Die gesamte Ablaufsteuerung steckt somit in den beiden Timer0 und Timer0 
Interrupt Service Routinen.

Die Main-Loop ist leer.

Bitte berichte.

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
Noch kein Account? Hier anmelden.