Forum: Mikrocontroller und Digitale Elektronik Arduino Mega 2560 - Digitale Pins nicht mehr funktionsfähig


von Egon R. (egon_r)


Lesenswert?

Hi,
Seit kurzem habe ich das Problem, dass jegliche Ansteuerung (read/write)
der digitalen Pins des Arduino Mega 2560 Boards fehlschlägt.
http://arduino.cc/de/Main/ArduinoBoardMega2560

Der µC lässt sich programmieren, und die analogen Pins funktionieren
auch einwandfrei.

Mit dem Troubleshooting von Arduino.cc und Google bin ich auch nicht
weitergekommen, desshalb frage ich hier, ob denn jemand eine
Idee hätte woran es liegen könnte.

Bisherige Versuche:
-Fuse neu setzen
-Treiber neu installieren
-http://www.arduino.cc/en/guide/troubleshooting

von Nico (nico123)


Lesenswert?

Werden die Ports denn richtig initialisiert als digitale Aus-/Eingänge?

Wurden die Ports schon benutzt und eventuell überlastet bzw. zerstört?

von Egon R. (egon_r)


Lesenswert?

Initialisiert werden sie auf jeden Fall richtig.

Kann es überhaupt durch EINE Überlastung dazu kommen
das ALLE digitalen Pins nicht mehr ansprechbar sind ?

von Oliver (Gast)


Lesenswert?

Na ja, ein Mega2560 hat gar keine "analogen" oder "digitalen" Pins, der 
hat einfach nur IO-Pins, die man (teilweise) so oder so programmieren 
kann.

Und ja, es ist äusserst unwahrscheinlich, daß genau nur alle die Pins 
"kaputt" gehen, die das Arduino-Gedöns als "digitale" Pins benutzt. Mit 
Fuses und Treibern hat das auf jeden Fall gar nichts zu tun.

Oliver

von Egon R. (egon_r)


Lesenswert?

Oliver schrieb:
> Und ja, es ist äusserst unwahrscheinlich, daß genau nur alle die Pins
> "kaputt" gehen, die das Arduino-Gedöns als "digitale" Pins benutzt. Mit
> Fuses und Treibern hat das auf jeden Fall gar nichts zu tun.

Dachte ich mir auch, wo ich auch gleich zum eigentlichen Problem
komme: Was ist da schief gelaufen, das dieses merkwürdige
Problem ausgelöst hat. Bzw. was könnte ich noch versuchen,
um das wieder zu richten.

von Oliver (Gast)


Lesenswert?

Gegenfrage: Wie stellst du denn fest, daß alle digitalen Pins kaputt 
sind?

Oliver

von Nico (nico123)


Lesenswert?

Egon R. schrieb:
> Initialisiert werden sie auf jeden Fall richtig.

Dann zeige mal deine Initialisierung der Ports!

von Egon R. (egon_r)


Lesenswert?

Oliver schrieb:
> Gegenfrage: Wie stellst du denn fest, daß alle digitalen Pins kaputt
> sind?

Ich schreib ein Programm indem ich den jeweiligen Pin auf High setze
und messe an diesem die Spannung.
Das Ergebnis ist bei low und high gleich - 0V.
(Falls es was zur Sache tut, zwischen GND und dem
Pin ist keine Verbindung messbar)

Für den read-Vorgang, lege ich 5V an den Pin an und lasse mir
vom Programm das Ergebnis ausgeben - Low.
(Die 5V wurden gemessen, liegen also zu 100% an,
werden aber nicht als high erkannt)

Den Vorgang habe ich bei fast allen digitalen Pins
durgeführt, und überall dasselbe Ergebnis.
An den Analogen passt alles.

Die Versorgung am µC passt, und das Programm wird auch korrekt 
ausgeführt.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Egon R. schrieb:
> Oliver schrieb:
>> Gegenfrage: Wie stellst du denn fest, daß alle digitalen Pins kaputt
>> sind?
>
> Ich schreib ein Programm indem ich den jeweiligen Pin auf High setze
> und messe an diesem die Spannung.

Egon.

Beschreib nicht dein Programm, sondern zeige es.
Es kann ja durchaus sein, dass dein Programm korrekt ist. Wahrscheinlich 
ist es das sogar. Aber jedem passiert mal beim Programmieren ein dummer 
Fehler, den er selbst nicht sieht.
Und genau da liegt das Problem. Wenn du den dummen Fehler nicht siehst 
bist du steif und fest der Meinung, das dein Programm 100% korrekt wäre.


> Das Ergebnis ist bei low und high gleich - 0V.

Wo misst du?
AM µC-Pin selber oder an der Arduino-Anschlussklemme?

: Bearbeitet durch User
von Egon R. (egon_r)


Lesenswert?

------
void setup()
{
  pinMode(22, OUTPUT);
  //pinMode(23, INPUT);
  //Serial.begin(9600);
}

void loop()
{
  digitalWrite(22, HIGH);
  //Serial.print(digitalRead(23));
}
------
Das war auch schon das ganze Programm.
Den Code zum Lesen eines Pins habe ich auskommentiert.

Karl Heinz Buchegger schrieb:
> Wo misst du?
> AM µC-Pin selber oder an der Arduino-Anschlussklemme?
Habe jetzt noch eine Messung direkt am µC
durchgeführt, auch hier 0V.
Danach noch sicherheitshalber die Verbindung von
µC Pin und Klemme überprüft - ist auch in Ordung (~0.8 Ohm)


Zu der Initialisierung der Ports, da war meine
Antwort wohl etwas voreilig, da ich selber damit
nie etwas zu tun hatte, ich wüsste ehrlich gesagt
auch nicht wie, da ich in der Arduino IDE bisher
nur Pins abgefragt, bzw. gesetzt habe, direkt
habe ich an den Ports nie etwas verändert. (meine ich zumindest)

: Bearbeitet durch User
von Nico (nico123)


Lesenswert?

Und Du misst auch am richtigen Anschluss und mit dem richtigen Messgerät 
und im richtigen Modus (Spannungsmessung)?

von Karl H. (kbuchegg)


Lesenswert?

Damit du das in den richtigen Zusammenhang bringst:
viele von uns betreiben AVR. AUch auf Experimentierplatinen. Und da 
bleibt es nicht aus, dass man versehentlich auch schon mal einen auf 
Ausgang programmierten Pin kurz schliesst.
Das sollte nicht vorkommen, es kommt aber in der Praxis vor. WEnn ich 
drann denke, wie ich meinen Experimentier-Mega 16 schon malträtiert 
habe, wird mir schwummerig.
Langer Rede kurzer Sinn: So schnell gehen die Ausgangstreiber nicht 
kaputt. Und das in einem Aufwasch ALLE Ausgangstreiber defekt gehen, ist 
eher unwahrscheinlich.
Die Arbeits-Hypothese lautet daher: Da ist irgendwas anderes faul.

von Egon R. (egon_r)


Lesenswert?

Nico ... schrieb:
> Und Du misst auch am richtigen Anschluss und mit dem richtigen Messgerät
> und im richtigen Modus (Spannungsmessung)?
Ja, das ist sicher richtig, habe vor dem Messen überprüft
ob die Klemme eine Verbindung zum µC-Pin hat.

Karl Heinz Buchegger schrieb:
> Langer Rede kurzer Sinn: So schnell gehen die Ausgangstreiber nicht
> kaputt. Und das in einem Aufwasch ALLE Ausgangstreiber defekt gehen, ist
> eher unwahrscheinlich.
> Die Arbeits-Hypothese lautet daher: Da ist irgendwas anderes faul.
Das beruhigt mich zumindest schon mal etwas.

Bin immer noch über jeden weiteren Tipp dankbar, da
das Problem noch immer besteht..

von Pete K. (pete77)


Lesenswert?

Ohne mehr Infos wird Dir kaum einer helfen können. Bitte poste das ganze 
Programm.

Hast Du mal versucht, eine LED blinken zu lassen?

Oder andere fertige Beispielprogramme?

JTAG abgeschaltet? Anderen Port benutzt?

Mit was programmierst Du? Woher weisst Du, dass die Programmierung 
geklappt hat?

: Bearbeitet durch User
von Egon R. (egon_r)


Lesenswert?

Pete K. schrieb:
> Ohne mehr Infos wird Dir kaum einer helfen können. Bitte poste das ganze
> Programm.
>
Steht bereits etwas weiter oben.
> Hast Du mal versucht, eine LED blinken zu lassen?
>
> Oder andere fertige Beispielprogramme?
>
Ja, die funktionierten auch kein bisschen besser.
> JTAG abgeschaltet? Anderen Port benutzt?
>
JTAG gibts bei mir nicht, nur ICSP.
Da ALLE digitalen Pins nicht mehr funktionieren,
bringt mir das wechseln vom Port auch nichts.
> Mit was programmierst Du? Woher weisst Du, dass die Programmierung
> geklappt hat?
Mit der IDE die Arduino zur verfügung stellt.
Dadurch, dass ich am SerialMonitor eine Antwort erhalte.

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.