mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EMV-Problem am AVR


Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Seit einiger Zeit probiere ich an einer AVR Steuerung dran rum, die ich 
selbst gebaut habe. Diese Steuerung ist eine Laufzeitüberwachung von 
Gleichstrommotoren (8 x 24V/5A). Die Elektronik ist neben den Relays, 
die die Motoren schalten eingebaut (aus Platzgründen nur an dieser 
Stelle möglich). Als ich die Software und Hardware dafür entwickelt 
habe, habe ich einen Test von 6 Tagen am Stück in meiner Werkstatt 
abgehalten. Der Test lief sehr gut und ohne Fehler. Daraufhin habe ich 
die Elektronik eingebaut und schon nach kurzer Zeit (ca. 5min.) wurden 
Bit´s im SRAM unkontrolliert gesetzt und ein Ablauf der Zeit 
"vorgegaukelt". Daraufhin dache ich noch das es ein Harwarefehler sein 
könnte und habe die Elektronik an einen Akku mit 24V und alle anderen 
Leitung abgeklemmt. Das Ergebniss: Die Bit´s im SRAM werden immer noch 
gesetzt. Demnach behaupte ich, das es ein EMV (Statische oder 
Magnetische Felder) schuld sein könnten.
Meine Frage:
- Könnte es EMV-Problem sein
- Wenn ja, wie kann ich das "abschirmen"
- Wenn nein, was ist dann los
- ........

Danke

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltung zeigen, alles andere ist ne Aufforderung zum Raten.
Nur soviel: Das Bits im RAM durch äußere Störfelder geändert werden, ist 
sehr(!) unwahrscheinlich. Eher wird ein Reset ausgelöst oder du kriegst 
Störungen an den Sensoren.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Schaltplan hab ich nicht da.
Ist aber ich hab´s genau so aufgebaut: 
http://www.mikrocontroller.net/wikifiles/f/f6/Mega...
(Versorgungstechnisch)
Daraufhin hab ich schon mal die Sensoren alle rausprogrammiert. Wieder 
ohne Erfolg.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe keinen blassen Schimmer, warum es nicht funktioniert.
Eins weiß ich, die Bit´s werden nur gesetzt nich rückgesetzt.
Hiiiiiilfe
Danke

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schrieb:
> und schon nach kurzer Zeit (ca. 5min.) wurden
> Bit´s im SRAM unkontrolliert gesetzt und ein Ablauf der Zeit
> "vorgegaukelt".

Das ist mit Sicherheit ein Softwarefehler.
Z.B. externe Interrupts zum Einlesen von Kontakten bzw. langen Leitungen 
oder nicht Ausmaskieren von unbenutzten Pins.


Peter

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beschreibe mal im Detail die Stromversorgung in dem ursprünglichen 
Aufbau und in dem nun nicht mehr funktionierendem Aufbau.

Also Relais und Motoren (induktive Lasten an sich) bzw. Probleme mit der 
Stromversorgung der Lasten und des uC sind in den allermeisten Fällen 
die Ursache von Problemen wie diesen. EMV eher nicht.

Probiere mal bei der Versorgung mit 24V und Batterie die induktiven 
Lasten abzuhängen und sieh' ob das Problem bestehen bleibt.

Um einen Schaltplan wirst Du sowieso nicht herumkommen, wenn Du 
professionell arbeiten willst; also zeichne einen und poste den hier. 
Wie hast Du das Layout denn gemacht? Auch posten.

In solchen Fällen spielt oft auch der Aufbau (z.B. Leitungsverlauf) eine 
Rolle. Poste mal ein paar Fotos. Achte auf bildfüllendes Format und 
Schärfe.

Autor: Ich (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich mach am besten, zur leichteren Verständlichkeit ein Youtube-Video.
Vorab: mit Akku hab ich jetzt schon mal getestet, funktioniert auch 
nicht. Eingänge hab ich schon mal alle rausprogrmmiert. Im Anhang die 
Software, die ja in meiner Werkstatt ohne Probleme funktioniert.

Autor: Mike Hammer (-scotty-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Im Anhang die Software, die ja in meiner Werkstatt ohne Probleme >funktioniert.

Markiere mal bitte das verräterische Bit.
Gut kommentiert ist die Software aber nicht. Außerdem
vermisse ich eine gewisse Ordnung/Struktur mit entsprechenden
Kommentierungsblöcken damit man sich in dem Programm auch nach
Jahren zurecht findet. Das erschwert die Suche unnötig zumal
Assembler ohnehin ziemlich umständlich ist.

>die ja in meiner Werkstatt ohne Probleme funktioniert.

Auch mit der selben Anordnung und belasteten Motoren?
Bürstenlose Motore werden es wohl nicht sein?
Wenn das in der Werkstatt im Leerlauf funktioniert, muss das
unter Last vor Ort nicht genauso sein.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Du sicherst im Timerinterrupt das Statusregister SREG nicht. Damit sind 
Programmfehler schon vorprogrammiert.

MfG Spess

Autor: Ich (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab´s rot markiert.
Software kann ich mir nur schwer vorstellen, da ich es schon mit 2 total 
verschiedenen Programmen ausprobiert habe.
Danke für euere Hilfe!

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Spess!
Wie sollte den der Timerinterrupt den richtig aussehen, ich kann leider 
keinen Fehler erkennen!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wie sollte den der Timerinterrupt den richtig aussehen, ich kann leider
>keinen Fehler erkennen!

Z.B. so:
  push r16
  in r16,SREG
  push r16
  
  ....

  pop r16
  out SREG,r16
  pop r16
  reti

Das 'inc r16' in der Interruptroutine verändert die Flags Z,N und V im 
SREG. Wenn der Interrupt also zum Beispiel genau vor einem 'breq' oder 
'brne' zuschlägt, kann das lustige Effekte haben.

MfG Spess

Autor: Mike Hammer (-scotty-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
include.docx (27,8 KB, 12 Downloads)

 ********************************************************************
 *Kann ich leider nicht lesen. Mach es als .txt und m. Kommentierung*
 ********************************************************************

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Da wo das Bit gesetzt wird, ist beim Makro B_01  sbi PORTB,0

Wenn ich jetzt mein Interrupt folgend auslege:

TIMER:             push    r16
      lds           r16,B100
      subi    r16,1
      sts    B100,r16
      pop    r16
      reti

würde dann das Problem mit den Flags verschwinden?
Mit in und out vom SRAM funktioniert nicht??

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>würde dann das Problem mit den Flags verschwinden?

Nein. 'subi' verändert die Flages auch. Weshalb stäubst du dich dagegen, 
SREG zu sichern? Das gehört zu den Basics der Assemblerprogrammierung.

>Mit in und out vom SRAM funktioniert nicht??

????

MfG Spess

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lds und sts ist doch eine Sicherung. Wenn ich es so wie du oben 
beschieben hast im AVR Studio schreibe, bringt der Debugger eine 
Fehermeldung

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>...bringt der Debugger eine Fehermeldung

Welche?

MfG Spess

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorrrry!!
Ups, hab ich mich mit dem sichern vom SREG und SRAM verlesen!
Ja, wird mir auch klar, wenn ich so überlege.
Ich probiers gleich mal!!
Dannnnnnke

Autor: Mike Hammer (-scotty-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ich
Haste eigentlich die üblichen Kondensatoren (ganz nah) am Controller
montiert? Im Video sehe ich da keine.
Wenn nur die Versorgung vorhanden ist, dann bleiben nur noch wenige
Möglichkeiten.
-Stabilität der Versorgung fehlerhaft
-Softwareproblem
-Güte des Aufbaus, kalte Lötstelle etc., Quarz korrekt angeschlossen?

Gewöhnlich würde ich mal ein paar Messungen mit einem Oszilloskop
empfehlen, aber ich gehe mal davon aus, das keins verfügbar ist?
Vielleicht ist es tatsächlich ein Softwareproblem und die bereits
angeregten Vorschläge reichen aus.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und dürfen wir auch erfahren welche Fehlermeldung bei welchem Code 
genau? ;-) "Oben" steht viel Code.

> lds und sts ist doch eine Sicherung.
Schau Dir mal die Operanden von lds und sts an. Da steht nirgendwo ein 
Register in das Du sreg geladen hast.
Also ist das keine Sicherung des Status-Registers.
Das Problem ist, das das subi das Status-Register verändert (abhängig 
von den Operanden). Ich empfehle Dir: Nimm den Rat von spess53 an.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, die Kondensatoren mit 100nF ist schon ganz nah am µC, da er hinten 
auf der Leiterplatte aufgelötet wurde. Ein Osziloskop hab ich schon und 
auch gemessen. Deswegen auch die vermutung von mir, das die Störung über 
Luft oder nur noch Software sein könnte. Was Spess gemeint hat könnte 
schon zutreffen. Da bin ich wohl sehr auf der Leitung gesessen :-). Die 
Möglichkeit könnte schon sein, mit den Durchläufen und Störungsauftritt, 
dass das mit dem SREG so war. Umprogrammiert ist es jetzt und eingebaut 
ist es auch schon wieder. Jetzt heißt es für mich abwarten. Ich bin euch 
allen sehr dankbar, denn so was bring mich zur Verzweiflung.
Johann

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ooops, bin ein bischen spät dran gewesen.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So was, funktioniert mit dem umgeänderten Interruptcode auch nicht. 
Immer noch das selbe Problem

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike Hammer schrieb:
> include.docx (27,8 KB, 12 Downloads)
>
>  ********************************************************************
>  *Kann ich leider nicht lesen. Mach es als .txt und m. Kommentierung*
>  ********************************************************************

*.txt, *.doc nennt man vielleicht Liebesbriefe, aber keine Sourcen.

Halte Dich doch einfach an übliche Regeln. Wenn Du ein Assemblerprogramm 
schreibst, nen es *.asm.
Und wenn Du dann noch weißt, wie man einen Kommentar schreibt, dann wird 
dieser farbig hervorgehoben.


Peter

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Code:
;+------------------------------------------------------------------------------
.include  "m8def.inc"
.cseg
.org 0
;-------------------------------------------------------------------------------
; Reset and Interrupt vector             ;VNr.  Beschreibung
;-------------------------------------------------------------------------------
.org 0x000
       rjmp main
.org INT0addr                 ; External Interrupt0 Vector Address
       reti                   
.org INT1addr                 ; External Interrupt1 Vector Address
       reti                   
.org OC2addr                  ; Output Compare2 Interrupt Vector Address
       reti                   
.org OVF2addr                 ; Overflow2 Interrupt Vector Address
       reti                   
.org ICP1addr                 ; Input Capture1 Interrupt Vector Address
       reti                   
.org OC1Aaddr                 ; Output Compare1A Interrupt Vector Address
       rjmp  TIMER
.org OC1Baddr                 ; Output Compare1B Interrupt Vector Address
       reti                   
.org OVF1addr                 ; Overflow1 Interrupt Vector Address
       reti                   
.org OVF0addr                 ; Overflow0 Interrupt Vector Address
       reti                   
.org SPIaddr                  ; SPI Interrupt Vector Address
       reti                   
.org URXCaddr                 ; USART Receive Complete Interrupt Vector Address
       reti                   
.org UDREaddr                 ; USART Data Reg. Empty Interr. Vector Address
       reti                   
.org UTXCaddr                 ; USART Transmit Complete Interrupt Vector Address
       reti                   
.org ADCCaddr                 ; ADC Interrupt Vector Address
       reti                   
.org ERDYaddr                 ; EEPROM Interrupt Vector Address
       reti                   
.org ACIaddr                  ; Analog Comparator Interrupt Vector Address
       reti                   
.org TWIaddr                  ; Irq. vector address for Two-Wire Interface
       reti                   
                        


.org INT_VECTORS_SIZE

.equ    XTAL  =  3686400;H

;-------------------------------------------------------------------------------
; Start, Power ON, Reset
;-------------------------------------------------------------------------------
main:    ldi       r16, LOW(RAMEND)     ; Stackpointer initialisieren
          out       SPL, r16
          ldi       r16, HIGH(RAMEND)
          out       SPH, r16
      ldi       r16, high( 7200 - 1 )
           out       OCR1AH, r16
          ldi       r16, low( 7200 - 1 )
          out       OCR1AL, r16
          ldi       r16, ( 1 << WGM12 ) | ( 1 << CS12 )
          out       TCCR1B, r16
 
          ldi       r16, 1 << OCIE1A  ; OCIE1A: Interrupt bei Timer Compare
          out       TIMSK, r16
  
      sei
      
      ldi      r16,0
      sts      B100,r16
      sts      B001,r16
      sts      B002,r16
      sts      B003,r16
          
      cbi      DDRD,2        ;Eingang "Quittierung"
      sbi      PORTD,2        ;Pull Up
      cbi      DDRD,3        ;Eingang "Auslösen"
      sbi      PORTD,3        ;Pull Up
      cbi      DDRD,4        ;Eingang "Überwachung"
      sbi      PORTD,4        ;Pull Up
      cbi      DDRD,5        ;Eingang "Extern-Error"
      sbi      PORTD,5        ;Pull Up
      cbi      DDRD,6        ;Eingang "Extern-Ein/Aus"
      sbi      PORTD,6        ;Pull Up
      sbi      DDRB,0        ;Ausgang "Steuerspannung"
      sbi      DDRB,1        ;Ausgang "Zeitmessungs-LED"
      sbi      DDRB,2        ;Ausgang "Betriebsbereit"
      sbi      DDRB,3        ;Ausgang "Störungs LED"
      sbi      DDRB,4        ;Ausgang "Taster-LED"
      sbi      DDRB,5        ;Ausgang " Test "


      cbi      PORTB,0        ;schalte "Steuerspannung" ein
;-------------------------------------------------------------------------------
mainloop:  
      rcall    Zeitmessung
      rcall    Output
      rcall    Futterpause
      rjmp    mainloop
;-------------------------------------------------------------------------------
Zeitmessung:lds      r16,B100
      lds      r17,B001
      lds      r18,B002

      sbis    PIND,4        ; Messeingang wenn 1,
      rjmp    A_03        ; dann spring zu A_03

      sbis    PIND,2        ; Quittiertaste wenn betätigt wird,
      andi    r17,0b11111110    ; dann lösche Time out bit

      sbis    PIND,2        ; Quittiertaste wenn betätigt wird,
      ldi      r18,0        ; dann lösche Timerregister

A_03:    sbic    PIND,4        ; Messeingang wenn nicht 1,
      ldi      r18,0        ; dann setze Timer(Zähler) zurück
  
      sbrc    r17,0        ; Wenn Time out bit gesetzt,
      rjmp    A_01        ; dann spring zu A_01

      sbis    PIND,3        ; Auslösetaste auf Patine wenn betätigt,
      ori      r17,0b00000001    ; dann setze Time out bit

      sbis    PIND,3
      andi    r17,0b11110111

      sbic    PIND,4        ; Überwachungseingang wenn 0,
      rjmp    A_01        ; dann spring zu A_01

      sbrs    r16,0        ; Timer bit 0 (0,5sec Takt) 0,
      rjmp    A_01        ; dann sping zu A_01

      sbrc    r17,1        ; Flankenauswertung für Timer
      rjmp    A_01

      ori      r17,0b00000010
      inc      r18          ; Timer wird je sec um 1 erhöht

A_01:    sbrs    r16,0        ; Flankenauswertung für Timer
      andi    r17,0b11111101

      cpi      r18,240        ; Zähler wird ausgewertet (240sec.)
      brne    A_02        ; Wenn nicht 240, spirng zu A_02
      ori      r17,0b00000001
      andi    r17,0b11110111
      ldi      r18,0
  
A_02:    sts      B001,r17
      sts      B002,r18
      ret
;-------------------------------------------------------------------------------
Output:    lds      r16,B100
      lds      r17,B001

      sbrc    r17,1        ; Zeitmessungs LED
      sbi      PORTB,1        ; "
      sbrs    r17,1        ; "
      cbi      PORTB,1        ; "
      
      sbrc    r17,0
      rjmp    B_01
      sbi      PORTB,2
      sbrs    r17,3
      cbi      PORTB,0
      rjmp    B_02

B_01:    cbi      PORTB,2
      sbi      PORTB,0

B_02:    sbis    PIND,2
      cbi      PORTB,3

      sbrs    r17,0
      rjmp    B_03

      sbrs    r16,0
      cbi      PORTB,3

      sbrc    r16,0
      sbi      PORTB,3

B_03:    sbrc    r17,0
      cbi      PORTB,4
      
      sbrc    r17,0
      rjmp    B_04

      sbrs    r17,3
      rjmp    B_04

      sbrs    r16,0
      cbi      PORTB,4

      sbrc    r16,0
      sbi      PORTB,4

B_04:

      sts      B001,r17
      ret
;-------------------------------------------------------------------------------
Futterpause:lds      r16,B100
      lds      r17,B001
      lds      r18,B003

      sbic    PIND,6
      rjmp    C_01

      sbrc    r17,0
      andi    r17,0b11110111

      sbrc    r17,0
      rjmp    C_01

      rcall    wait_1ms

      sbrc    r17,2
      rjmp    C_01

      ori      r17,0b00000100

      sbrs    r17,3
      rjmp    C_02
      andi    r17,0b11110111
      cbi      PORTB,3
      cbi      PORTB,4
      rjmp    C_01
C_02:    ori      r17,0b00001000
      sbi      PORTB,0
      sbi      PORTB,3

C_01:    sbis    PIND,6
      rjmp    C_03

      sbrs    r17,2
      rjmp    C_03

      rcall    wait_1ms

      andi    r17,0b11111011

C_03:    sbrs    r17,3
      rjmp    C_04

      sbrs    r16,2
      rjmp    C_04

      sbrc    r17,4
      rjmp    C_04

      ori      r17,0b00010000

      inc      r18

C_04:    sbrs    r16,2
      andi    r17,0b11101111

C_05:    cpi      r18,150
      brne    C_06
      ldi      r18,0
      andi    r17,0b11110111
      cbi      PORTB,3
      cbi      PORTB,4

C_06:        
      sts      B001,r17
      sts      B003,r18
      ret
;-------------------------------------------------------------------------------
wait_1ms:  push    r16
      push    r17
wait_1ms_1:  inc      r16
      brne    wait_1ms_1
      inc      r17
      cpi      r17,5
      brne    wait_1ms_1
      ldi      r17,0
      pop      r17
      pop      r16
      ret
;-------------------------------------------------------------------------------
TIMER:    push    r16
      in       r16,SREG
      push     r16
      lds      r16,B100

      inc      r16

      sts      B100,r16
      pop      r16
      out     SREG,r16
      pop     r16

      reti
;-------------------------------------------------------------------------------

.dseg

B100:      .byte 1        ; wird im Interrupt behandelt
B001:      .byte 1        ; Statusregister 1
                  ; Bit 0: time out Messung oder Test von Taster
                  ; Bit 1: Zeitmessungsflanke und LED Zeitmessung
                  ; Bit 2: Flankenauswertung Taster Futterpause
                  ; Bit 3: Futterpause und Störungs LED ein bei 1
                  ; Bit 4: Flankenauswertung Timer 10min.
                  ; Bit 5:
                  ; Bit 6:
                  ; Bit 7:
B002:      .byte 1        ; Timerregister 60sec.
B003:      .byte 1        ; Timerregister 10min.


Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal gemessen?

Schaltung:
Reset-kondi auf 100nF vergrößern
Wie ist der Regler (5V) aufgebaut? (100nF davor/Dahinter)?
Bei solchen sachen würde ich vor den Regler zusätzlich ordentlich 
kapazität setzen. (1000µ o.ä) Nach dem Regler keine großen Kapazitäten!

Teste deine Schaltung, in dem du einen Pin vom Controller an einen 
Flipflop oder so oder so hängst, den du bei RESET setzt, oder bei 
anderen Zuständen. Da kannst du kontollieren, wo der Fehler passiert!

Wie sind die Eingänge abgepuffert, bzw sind die absicherbar?? (Evtl 
externer Pegelwandler etc verwenden)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

-Wie hängen deine Stromversorgung der Motoren (immerhin ja max. 40A) und 
die -Stromversorgung des µC zusammen.

-Tritt der Fehler schon bei Nutzung der Relais (ohne Motoren) oder erst 
beim -Schalten der Motoren auf?

-Ist der Brown out detector enabled? Wenn ja, für welche Spannung.

MfG Spess

Autor: XMEGA (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Servus,


> Könnte es EMV-Problem sein
>
> - Wenn ja, wie kann ich das "abschirmen"
>
> - Wenn nein, was ist dann los

alles was du brauchst sind Filter (siehe Bild)- und ordentlich mit Erde 
(Schutzerde) verbinden.
Im Gleichstromkreis (AVR Stromversorgung)umbedingt einige Längsdrosseln 
und diverse Kondensatoren zur Ableitung.

Auch alle Ausgänge unbedingt mit Drosseln abblocken!

Das ist zwar ein riesiger Aufwand, aber es lohnt sich.

Gruß XMEGA

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAste jetzt mal nen Schaltplan zum ganzen System?
Das Video ist ja recht nett, bringt aber für die Fehleranalyse nicht 
viel.
Auch wärs mal angebracht, über die Spannungsversorgung zu reden, bei 24V 
und einigen Ampere.

Autor: Mike Hammer (-scotty-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habt ihr im Video nicht gesehen das ICH den Controller nur noch
mit einer Batterie ohne jede Peripherie versorgt? Da sind eure
Vorschläge nicht unbedingt sinnvoll.
Mir kommt die Geschichte irgendwie bekannt vor und des Rätzels
Lösung war dann so ein Fuse-Bit das nicht gesetzt war. Leider weis
ich das nicht mehr. Watchdog vielleicht? Schon mal in die Richtung
geforscht? Ich weiß das ich nichts weiß.

Autor: Ich (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also, über die Versorgungsspannung ist eher unrealistisch da ich das 
ganze mit einem Akku schon mal getestet habe (es sei denn, es sind 
Störungen auf der Leiterplatte zu erzeugen). Im Anhang hab ich mal ein 
Bild von den Fuses. Ich denke, dass diese Einstellungen nicht dafür 
schuld sind (ich hoffe es aber).

Autor: XMEGA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

Ich schrieb:
> sind eure
>
> Vorschläge nicht unbedingt sinnvoll.

recht intelligent ist dein Geschwafel  auch nicht!!

Gruß XMEGA

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutzt du wie im Tutorial einen externen quarzoszillator? Dann wäre 
external clock die richtige fuse einstellung.

Aber im Video siehts eher nach gewöhnlichem quarz aus, dann könntest du 
das full amplitude (ckopt, siehe 
Beitrag "Das Mysterium CKOPT") fuse setzten um das ganze 
störunempfindlicher zu machen.

Passt zwar alles nicht ganz auf dein Fehlerbild, aber wer weiß was der 
controller anstellt wenn der takt mal aus dem tritt kommt.

Autor: DERLEVELER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das einzige was mir noch einfällt, ich aber bezweifle:
Löschdioden nicht vergessen?

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gestern hab ich noch das Häckchen bei full amplitude gesetzt und wieder 
in die Maschine eingebaut und ich muss sagen, dass es bis jetzt immer 
noch funktioniert. Das mit der Löschdiode war schon gebaut und war nicht 
des Rätsels Lösung. Ich hoffe das es mit der full amplitude weiterhin 
funktionieren wird. Hat jemand ein Tutorial zu diesen Fuse und Lock?

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Tutorial nicht, aber du kannst noch mal in den Thread gucken den ich 
oben in meinem Beitrag verlinkt habe, da wird viel um dieses Fusebit 
diskutiert und auch erklärt.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre das Problem mit Abschirmung vom µC und Quarz durch ein Stück 
Alufolie (ohne Erdung) auch zu beseitigen? Damit stelle ich mir sowas 
wie von Conrad den Atmega32 im Metalgehäuse vor.

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spannungsspitzen werden auf über evtl GND etc übertragen. Auf was steht 
deine Brown-out detection?
Solche probleme habe ich fast immer auch, wenn mein AVR nicht 
ausreichend gepuffert ist (100nf), eingänge, spannungsspitzen.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also BODEN steht auf 4,0V. Der Test mit full amplitude ist auch 
gescheitert. Das selbe Phänomen ist wieder aufgetreten. Was doch noch 
sein könnte ist das, wenn ich doch 5V Spannungsversorgung über die 
Leiterplatte hinaus auf eine Leitung durch einen Verdrahtungskanal mit 
vielen anderen Leitungen auf eine LED am Schaltschrankdeckel führe da 
ich diese mit ULN 2003a betreibe, eine "Fremdinduktion" das ganze 
beeinflusst.

Autor: Bast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube du gehst das zu Wissenschaftlich an. Das is doch keine 
raketenwissenschaft. BODEN auf 4V das bedeutet dass wenn da eine spitze 
unter 4V fällt, dein AVR einen RESET auslöst!

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde auf die Engangsbeschaltung schauen, und mal eine Art DEBUG 
einbauen, in deine Software, von mir aus mit UART, und dann in eine 
Textdatei loggen (HYperterminal) dann siehst du was passiert! Mit 
Rumraten wird das nix

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also jetzt mal Butter bei die Fische: Poste endlich mal den Schaltplan; 
und auch einen Verdrahtungsplan mit Leitungslängen. Du bist jetzt schon 
mehrfach nach den Details der Schaltung gefragt worden und hast 
eigentlich kaum darauf geantwortet.

Was hast Du an Messgeräten?

Autor: Hans_Dampf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du schreibst, dass Deine Schaltung im Labor richtig funktioniert hat, im 
Feld aber nicht.
Ferner schreibst Du, dass die Aufgabe Deiner Schaltung ist,

> Gleichstrommotoren (8 x 24V/5A)

zu überwachen, die ja aufgrund ihrer Kommutierungsbürsten Deinen Aufbau 
auf jede EMV-Schwachstelle prüfen.

Mich würde nun interessieren, wie Du die Eingänge deiner Schaltung 
entprellt hast.

Des weiteren schließe ich mich der Aussage meines Vorredners an

> Poste endlich mal den Schaltplan;
> und auch einen Verdrahtungsplan mit Leitungslängen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.