-         

Ergebnis 1 bis 5 von 5

Thema: AVR defekten Input mit Firmware erkennen / Eigendiagnose

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630

    AVR defekten Input mit Firmware erkennen / Eigendiagnose

    Anzeige

    Hallo ihr Freaks

    Ich bins mal wieder, und habe eine spezielle Angelegenheit. Nehmen wir mal an bei meinem AVR geht aus irgendeinem Grund an PortA Pin 3 (input) kaputt. Im laufenden Betrieb irgendwo eingebaut, keiner merkts. Könnte ich mit meiner Firmware checken ob alle I/Os ok sind und ggf. eine Warnung rausgeben?

    Ich habe schon nach dem Problem gesucht, aber scheinbar wird das sehhhr selten gebraucht.
    Ach ja: An der Hardware lässt sich nix ändern.
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Ich wüßte nicht, wie das gehen sollte.

    Man kann zwar einen Pull-Up ein- und ausschalten, aber brauchbare Resultate wird man dabei wohl nur bekommen, wenn extern mit größeren Pull-Downs gearbeitet wird, und das ist ja nicht sehr wahrscheinlich.

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    du kannst PIN auch lesen, wenn der Pin ein Ausgang ist. Nach dem Prinzipschaltbild müsste der reale Status gelesen werden und nicht das was nach dem Portregister logisch währe. Ich würde mal ein z.B. AtMega 16 nehmen und AVcc nicht beschalten. Interessant ist, ob dann nur die APorts nicht funktionieren oder ob das auch für die auswertende Logik gilt. Im ersten Fall kann man den Ausfall eines Ausgangs schön simulieren.

    Gruß

    Jens

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    ohne an der Schaltung etwas zu ändern, kannst du IMHO zumindest u.U. die Input-Pins überprüfen, wenn das Signal irgendwelche Grenzparameter hat, zb. ein Servo-PWM Signal, das etwa alle 20mS kommen muss. Wenn das z.B. 50mS ausbleibt, könnte man daraus schließen, dass etwas nicht in Ordnung ist.

    Für die Outputs (und die Inputs) muss schon eine externe Beschaltung her, z.B. ein Shift-Register mit daran hängendem Multiplexer (bi-direktional), das benötigt noch 2 freie Pins am Controller (1 Testpin, an dem das Testsignal liegt, entweder als Input oder Output und ein Select-Pin, der über das Shift-Register den zu testenden Pin weiterschaltet.
    Hoffe ich hab das jetzt einigermaßen verständlich erklären können
    Der Vorteil ist, dass man damit sowohl In- als auch Outputs testen kann, aber allein schon von der Theorie her kann man so keine 100% Sicherheit bekommen, wenn der Controller sich selbst prüft könnte aber ein externer übernehmen, z.B. ein Tiny (braucht ja nur 2 I/O's) der seriell die Testergebnisse dem zu testenden Controller mitteilt.

    Aber das ganze testet nur den I/O-Port zusammen mit der daran hängenden Beschaltung, man kann also keine verlässliche Aussage über die Funktion des I/O Ports als solchen treffen.

    mfg

    edit:
    wusste nicht dass man Outputs als Input abfragen kann, wieder was gelernt

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei den Ausgängen sollte das Testen noch einigermaßen gehen, den ausgangspegel kann man ja testen. Allerdings kann man da fehler wie lose Bonddräte oder Lötfehler natürlich nicht so einfach erkennen, höchstens aus der Zeit die es braicht um den Eingang mit hilfe des Pullups umzuschalten.

    Bei Eingängen wird der Test schwierig, wenn man da kein Ausgangssignal draufgeben kann.

    Wenn man AVCC wegläßt, kann mehr als nur der Port A nicht gehen. Unter anderem wird auch der Brownout-detektor davon beeinflußt, den den sollte man also abstellen. Der Fall ist nicht vorgesehen. Theoretisch könnte das sogar mit einem Latchup enden und sogar den Chip unter Umständen zerstören, wenn die Spannungsversorgung kräftig genug ist.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •