- LiTime Speicher und Akkus         
Ergebnis 1 bis 10 von 10

Thema: Sehr sehr seltsames Problem

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    38
    Beiträge
    207

    Sehr sehr seltsames Problem

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,

    ich habe derzeit ein seltsames Problem. Schaut euch bitte den Ausschnitt meiner MC Schaltung im Anhang an.

    Folgendes passiert hier: An CPC 18 und CPC 19 sind zwei Taster angeschlossen, die bei betätigung auf GND schalten.

    Über die Pullups R13 und R14 wird der Eingang auf 5V gezogen, wenn nicht geschaltet wird.

    Die Kondensatoren und Widerstände dienen zur Entstörung, da das ganze im KfZ Bereich eingesetzt wird (ohne die Elemente hat die Schaltung vorher verrückt gespielt).

    In der Software wird nun PB3 und PB4 mit dem Debounce Befehl abgefragt, und wenn einer der Taster gedrückt wird, wird ein Motor kurz angesteuert.

    So und hier nun mein Problem: 90% der Zeit funktioniert das ganze hervorragend, nur manchmal - es gibt keine erkennbare Ursache hierfür - funktioniert einfach ein Taster nicht mehr. Man drückt und drückt aber es passiert nichts. Das sonderbare ist dann, wenn man ein mal den anderen Taster drückt und dann wieder den Taster drückt, der eben nicht funktioniert hat, geht auf einmal alles wieder ganz normal....

    Was kann das sein? Die Software schließe ich definitv aus, die ist ganz einfach und da ist kein Punkt an dem sie auf irgendeinen Befehl wartet.
    Ist es möglich, dass der Controller "schlecht" Programmiert wurde, also irgendein Übertragungsproblem vorlag? (Bascom, Fehlermeldung hatte ich allerdings nicht).
    Ich kann mir das einfach nicht erklären, und hoffe jemand von euch hat ne gute Idee.

    Grüße Paul
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken plane16.jpg  
    Grüße Paul

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    ... schließe ich definitv aus..
    Sei vorsichtig mit sowas

    Mir scheinen die 2 x 10k Werte etwas hoch, um die Pins sicher auf NULL zu ziehen, aber da kann ich mich täuschen.
    Verwendest du die internen Pullups ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Vor allem im störungsreicher Umgebung (KFZ) sollten keine Kondensatoren und möglichst kleine Widerstände an den digitalen Eingängen eines µCs benutzt werden.

    Ich vermute, dass an CPC18 und CPC19 Taster angeschlossen sind. In dem Fall würde ich nur die pull-ups R14 und R13 übrig lassen und dessen Werte deutlich sogar unter 1k senken. Die minimale Werte lassen sich aus maximalem Strom, der durch die Taster fließen darf, berechnen. Im schlimmsten Fall müssen die Tastenzuleitungen geschirmt werden (nur ein Ende des Schirms mit Masse verbunden).

    MfG

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    38
    Beiträge
    207
    Hi Robert, Hi Picture,

    Die internen Pullups werden nicht verwendet, die Eingänge werden auch sicher auf null gezogen, das habe ich schon überprüft.

    @ robert: gerade durch diese Kondensatoren und Widerstände funktioniert das ganze. Ich habe es ursprünglich mal nur mit Pullup auf 5V gemacht, und dort wurden ständig Tasterbetätigungen erkannt, das Programm hat total verrückt gespielt. Mit dieser Beschaltung funktionierts hingegen einwandfrei.
    Dass an CPC 18 und 19 die Taster angeschlossen sind ist richtig (hatte ich oben erwähnt). Wenn ich die Pullups derart reduzieren würde (Taster bis 3A zulässig) dann gibts ein Problem mit meinem 78L05 (0,1A). Nein, ich denke das kann nicht der Grund sein.
    Ich frage mich die ganze Zeit: Wieso muss ich, wenn Taster A nicht mehr reagiert, Taster B drücken, um Taster A wieder funktionstüchtig zu machen? Das ist doch total unlogisch....
    Grüße Paul

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Dann müsste es doch ein unlogisches Softwareproblem sein.

    MfG

  6. #6
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Fehlerbeschreibung sieht mehr nach einem Software Problem aus. Sonst könnte es eher ein Problem mit dem Spannungsregler oder dem Takt sein.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Vll. könntest du ma das programm posten? Ich würd eigentlich ausschließen dass es einen nicht bemerkten Übertragungsfehler gegeben hat der ne ganze if-abfrage einbaut UND nicht bemerkt wird. Naja viel Glück noch!

    MfG
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    @Picture: dann musst Du mal bei Bosch, Hella und wie sie alle heissen anrufen. Die machen das nämlich falsch und setzen an jede Leitung zur Aussenwelt einen Kondensator und häufig auch noch mal direkt an den Controller. Gerade erst gesehen, als ich ein Testprogramm für eine Klimasteuerung geschrieben habe.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    14.09.2007
    Ort
    Na Zuhause!
    Alter
    30
    Beiträge
    99
    Hallo zusammen,
    Was passiert denn, wenn man beide Taster gleichzeitig drückt?
    Reagiert er einfach auf den, der eine Millisekunde früher gedrückt wurde?
    Könnte es sein dass sich der Kondensator des Tasters, den man eben
    gedrückt hat, noch nicht aufgeladen hat und so den Port auf 0 hält, während du den anderen Taster drückst? Obwohl, eher unwahrscheinlich, da die Kondensatoren sehr klein sind. Ich empfehle auch kleinere Pullups (z.B. 4K7 oder so)
    MfG X-917
    Nur tote Fische schwimmen immer mit dem Strom!

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    38
    Beiträge
    207
    Hi zusammen,

    also hier mal mein Code:

    Code:
    '">>>>>>>>>>>>>>>>>>>>>>>SOFTWARE E3V1.6 <<<<<<<<<<<<<<<<<<<<<<<<<<<"
    
    'PB3= IN 1 <-> PB0= OUT 1
    
    'PB4= IN 2 <-> PB1= OUT 2
    
    'PB2= Abfrage Schalter S1
    
     $regfile = "attiny25.dat"
    
     $crystal = 1000000
    
     $eeprom
    
     Declare Sub Hoch
    
     Declare Sub Runter
    
    
    
    
    
     '---------------------------------------------------------
    
     Ddrb = &B00000011                                          'Pin Pb0,1 Ausgang, rest Eingang
    
     Portb.2 = 1                                                'Pullups von PB2 aktiviert                                          'PullUp von Pin PD0+1+rest aktivieren
    
     '----------------------------------------------------------
    
    
     Do
    
    
       Debounce Pinb.3 , 0 , Hoch , Sub
    
       Debounce Pinb.4 , 0 , Runter , Sub
    
     Loop
    
     '----------------------------------------------------------
    
       Sub Hoch
    
    
    
          Portb.0 = 1
          Portb.1 = 0
    
             If Pinb.2 = 0 Then
                Waitms 100
    
             Else
                Waitms 75
    
             End If
    
    
          '^^^^^^^^^^^^^^^^--------------------------------------------- Schaltzeit
    
          Portb.0 = 0
          Portb.1 = 0
    
    
    
    
    
    End Sub
    
       Sub Runter
    
    
          Portb.1 = 1
          Portb.0 = 0
    
             If Pinb.2 = 0 Then
                Waitms 100
    
             Else
                Waitms 75
    
             End If
          '^^^^^^^^^^^^^^^^--------------------------------------------- Schaltzeit
    
          Portb.1 = 0
          Portb.0 = 0
    
    
    
    
    End Sub
    
    
    End
    Wie gesagt, wirklich ganz einfach das Programm...

    Beide Taster gleichzeitig drücken habe ich noch nciht ausprobiert, allerdings denke ich dass auch hier das Programm erst nur auf den Taster reagiert, der "das Programm wieder normalisiert" und danach dann auch der andere Taster wieder funktionstüchtig ist.

    Dummerweise ist es immer so, dass wenn ich will dass es nicht geht, es immer geht... verflixte Technik da.

    Was mir noch eingefallen ist, was unter umständen (aber auch sehr unwahrscheinlich) diesen Fehler verursachen kann: Die Controller steuern einen VNH2SP30 Motortreiber an, dieser hat die Eingänge INA und INB, wenn INA=INB wird gebremst, wenn INA logisch ungleich INB dann dreht sich der Motor links oder rechts. Außerdem gibts noch einen ENA und ENB eingang, wenn der Chip ein Problem hat oder der Pin auf 0 gezogen wird, wird eine Halbbrücke abgeschaltet. Bei mir liegen die Pins aufeinander und werden über einen 1K Pullup auf 5v gezogen. Wenn einer abschalten würde, dürfte das ganze gar nicht mehr reagieren und nicht nur in eine Richtung...
    Wer Erfahrung mit diesem Chip hat, und es dort evtl. einen Bug gibt... immer her mit den Tips... ich bin hier am verzweifeln...
    Grüße Paul

Berechtigungen

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

LiTime Speicher und Akkus