Forum der Firma Krause Robotik
Probleme mit Eingängen - Druckversion

+- Forum der Firma Krause Robotik (http://www.krause-robotics.de/forum)
+-- Forum: Hardware (/forumdisplay.php?fid=4)
+--- Forum: KrMega32-16 (/forumdisplay.php?fid=15)
+--- Thema: Probleme mit Eingängen (/showthread.php?tid=75)



Probleme mit Eingängen - Frederik.Ebert - 18.10.2007 18:54

Hallo,

Ich habe mit meinem Micronontroller Kr-Mega einige erfolgreiche Tests gemacht, LCD, Eingänge und Ausgange haben prima funktioniert.

Nachdem ich dann ein paar kompliziertere Programme draufgeladen hatte, haben auf einmal die Eingänge nicht mehr funktioniert und der Microcontroller hat permanent einen High-Pegel registriert obwohl keine Spannung angelegen hat. Ich habe das Programm mehrfach überprüft und bin mir sicher, dass der Quelltext keine Fehler enthält
(Außerdem hat das selbe Programm zuvor schon mal funktioniert)

Ich kann mir das nicht erklären wie es dazu kommt, dass die Eingänge auf einmal nicht mehr funktioneren.

Gibt es denn irgedwelche anderen Dinge die man beim Test der Eingänge beachten muss außer das man das Platinen interne 5V+ mit dem Eingang verbindet?

Frederik


RE: Probleme mit Eingänge - Manfred2 - 19.10.2007 06:22

Hallo, Frederik,
wir haben mehere Platinen des Krmega32-16 bei uns als Arbeits- und Experimentiersysteme im Einsatz. Hier werden ständig neue Programme aufgespielt. Dabei hat es noch nie irgendwelche Probleme gegeben. Aus diesem Grunde gehe ich davon aus dass auch bei Dir nichts kaput sein wird und dass Deine Erscheinung auch nicht daran liegt dass da mal ein kompliziertes Programm drauf war.
Welche Bibliothek benutzt Du? Hast Du möglicherweise eine andere Bibliothek als die auf er CD mitgelieferte verwendet?
Ein offener Eingang wird auf Grund der Hochohmigkeit möglicherweise nicht immer eindeutig erkannt. So kann es sein dass mal low und mal high erkannt wird. Innerhalb des Mikrorechners gibt es die Möglichkeit die Eingänge mit einem Pullup zu beschalten. Damit wird ein offener Eingang als high erkannt.
Offensichtlich ist das bei Dir der Fall. Es wäre also in diesem Falle sinnvoll zu wissen was denn mit dem Eingang passiert wenn Du diesen gegen 0V, also Masse, mit low belegst. Wenn sich dann der erkannte Wert ebenfalls auf "0" ändert ist alles in Odnung.
Manfred


RE: Probleme mit Eingängen - Frederik.Ebert - 25.10.2007 14:08

Hallo,

die Eingänge haben bei mir funktioniert, wenn man sie so anschließt wie von dir beschrieben. Leider wechseln sie manchmal zwischen dem normalen und dem ,,Pull-Up-Wiederstand-Modus'' (Der Port registriert permanent ein Eingangssignal, beim Verbinden von 0V mit dem Port zeigt er kein Signal an).

Kann man kontrollieren oder einstellen, dass der Port immer den selben Modus hat?

Frederik


RE: Probleme mit Eingängen - Manfred2 - 25.10.2007 20:54

Hallo,
nach Deiner Beschreibung ist der Eingang offen wenn nichts angelegt wird. Ein offener Eingang ist nie eindeutig, durch die Hochohmigkeit des Einganges können sich Ladungen aufbauen die dann ein falsches Signal hervorrufen.
Ich empfehle Dir daher den Eingang mit einem Widerstand, 10 bis 100 kOhm, gegen +5V zu schalten. Das kommt dem intenen Pull-Up gleich. +5V findest Du am Board gleich bei den Eingängen. Damit erzwingst Du bei unbeschaltetem Eingang immer ein "I"-Signal, und die Pegel sind eindeutig.

Manfred


RE: Probleme mit Eingängen - Frederik.Ebert - 28.10.2007 17:21

Hallo,

dank deinem Tipp funktionieren die digitalen Eingänge zuverlässig und wechseln auch nicht mehr zwischen dem normalen und dem ,,Pull-up-Modus''.

Jedoch hat sich bei meinem Versuch herausgestellt, dass die digitalen Ein- und Ausgänge wesentlich langsamer reagieren als ich sie programmiert habe und die Taktfrequenz des Prozessors es zulässt.

Gibt es irgendwelche Gründe für dieses Verhalten der Digitalports?


RE: Probleme mit Eingängen - Manfred2 - 29.10.2007 22:24

Hallo,
prima dass jetzt alles so geht wie gewünscht.
Die Eingänge 17 bis 21 werden über den internen I²C-Bus bedient. Hier sind langsame Raten vorhanden. Schnelle Eingänge sollte man mit den Ports 1 bis 16 bedienen.

Manfred