Forum: Mikrocontroller und Digitale Elektronik EMV-Problem am AVR


von Ich (Gast)


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

von Floh (Gast)


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.

von Ich (Gast)


Lesenswert?

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

von Ich (Gast)


Lesenswert?

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

von Peter D. (peda)


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

von Grrrr (Gast)


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.

von Ich (Gast)


Angehängte Dateien:

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.

von Mike H. (-scotty-)


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.

von spess53 (Gast)


Lesenswert?

Hi

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

MfG Spess

von Ich (Gast)


Angehängte Dateien:

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!

von Ich (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

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

Z.B. so:
1
  push r16
2
  in r16,SREG
3
  push r16
4
  
5
  ....
6
7
  pop r16
8
  out SREG,r16
9
  pop r16
10
  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

von Mike H. (-scotty-)


Lesenswert?

include.docx (27,8 KB, 12 Downloads)

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

von Ich (Gast)


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??

von Ich (Gast)


Lesenswert?


von spess53 (Gast)


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

von Ich (Gast)


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

von spess53 (Gast)


Lesenswert?

Hi

>...bringt der Debugger eine Fehermeldung

Welche?

MfG Spess

von Ich (Gast)


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

von Mike H. (-scotty-)


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.

von Grrrr (Gast)


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.

von Ich (Gast)


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

von Grrrr (Gast)


Lesenswert?

Ooops, bin ein bischen spät dran gewesen.

von Ich (Gast)


Lesenswert?

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

von Peter D. (peda)


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

von Ich (Gast)


Lesenswert?

Hier der Code:
1
;+------------------------------------------------------------------------------
2
.include  "m8def.inc"
3
.cseg
4
.org 0
5
;-------------------------------------------------------------------------------
6
; Reset and Interrupt vector             ;VNr.  Beschreibung
7
;-------------------------------------------------------------------------------
8
.org 0x000
9
       rjmp main
10
.org INT0addr                 ; External Interrupt0 Vector Address
11
       reti                   
12
.org INT1addr                 ; External Interrupt1 Vector Address
13
       reti                   
14
.org OC2addr                  ; Output Compare2 Interrupt Vector Address
15
       reti                   
16
.org OVF2addr                 ; Overflow2 Interrupt Vector Address
17
       reti                   
18
.org ICP1addr                 ; Input Capture1 Interrupt Vector Address
19
       reti                   
20
.org OC1Aaddr                 ; Output Compare1A Interrupt Vector Address
21
       rjmp  TIMER
22
.org OC1Baddr                 ; Output Compare1B Interrupt Vector Address
23
       reti                   
24
.org OVF1addr                 ; Overflow1 Interrupt Vector Address
25
       reti                   
26
.org OVF0addr                 ; Overflow0 Interrupt Vector Address
27
       reti                   
28
.org SPIaddr                  ; SPI Interrupt Vector Address
29
       reti                   
30
.org URXCaddr                 ; USART Receive Complete Interrupt Vector Address
31
       reti                   
32
.org UDREaddr                 ; USART Data Reg. Empty Interr. Vector Address
33
       reti                   
34
.org UTXCaddr                 ; USART Transmit Complete Interrupt Vector Address
35
       reti                   
36
.org ADCCaddr                 ; ADC Interrupt Vector Address
37
       reti                   
38
.org ERDYaddr                 ; EEPROM Interrupt Vector Address
39
       reti                   
40
.org ACIaddr                  ; Analog Comparator Interrupt Vector Address
41
       reti                   
42
.org TWIaddr                  ; Irq. vector address for Two-Wire Interface
43
       reti                   
44
                        
45
46
47
.org INT_VECTORS_SIZE
48
49
.equ    XTAL  =  3686400;H
50
51
;-------------------------------------------------------------------------------
52
; Start, Power ON, Reset
53
;-------------------------------------------------------------------------------
54
main:    ldi       r16, LOW(RAMEND)     ; Stackpointer initialisieren
55
          out       SPL, r16
56
          ldi       r16, HIGH(RAMEND)
57
          out       SPH, r16
58
      ldi       r16, high( 7200 - 1 )
59
           out       OCR1AH, r16
60
          ldi       r16, low( 7200 - 1 )
61
          out       OCR1AL, r16
62
          ldi       r16, ( 1 << WGM12 ) | ( 1 << CS12 )
63
          out       TCCR1B, r16
64
 
65
          ldi       r16, 1 << OCIE1A  ; OCIE1A: Interrupt bei Timer Compare
66
          out       TIMSK, r16
67
  
68
      sei
69
      
70
      ldi      r16,0
71
      sts      B100,r16
72
      sts      B001,r16
73
      sts      B002,r16
74
      sts      B003,r16
75
          
76
      cbi      DDRD,2        ;Eingang "Quittierung"
77
      sbi      PORTD,2        ;Pull Up
78
      cbi      DDRD,3        ;Eingang "Auslösen"
79
      sbi      PORTD,3        ;Pull Up
80
      cbi      DDRD,4        ;Eingang "Überwachung"
81
      sbi      PORTD,4        ;Pull Up
82
      cbi      DDRD,5        ;Eingang "Extern-Error"
83
      sbi      PORTD,5        ;Pull Up
84
      cbi      DDRD,6        ;Eingang "Extern-Ein/Aus"
85
      sbi      PORTD,6        ;Pull Up
86
      sbi      DDRB,0        ;Ausgang "Steuerspannung"
87
      sbi      DDRB,1        ;Ausgang "Zeitmessungs-LED"
88
      sbi      DDRB,2        ;Ausgang "Betriebsbereit"
89
      sbi      DDRB,3        ;Ausgang "Störungs LED"
90
      sbi      DDRB,4        ;Ausgang "Taster-LED"
91
      sbi      DDRB,5        ;Ausgang " Test "
92
93
94
      cbi      PORTB,0        ;schalte "Steuerspannung" ein
95
;-------------------------------------------------------------------------------
96
mainloop:  
97
      rcall    Zeitmessung
98
      rcall    Output
99
      rcall    Futterpause
100
      rjmp    mainloop
101
;-------------------------------------------------------------------------------
102
Zeitmessung:lds      r16,B100
103
      lds      r17,B001
104
      lds      r18,B002
105
106
      sbis    PIND,4        ; Messeingang wenn 1,
107
      rjmp    A_03        ; dann spring zu A_03
108
109
      sbis    PIND,2        ; Quittiertaste wenn betätigt wird,
110
      andi    r17,0b11111110    ; dann lösche Time out bit
111
112
      sbis    PIND,2        ; Quittiertaste wenn betätigt wird,
113
      ldi      r18,0        ; dann lösche Timerregister
114
115
A_03:    sbic    PIND,4        ; Messeingang wenn nicht 1,
116
      ldi      r18,0        ; dann setze Timer(Zähler) zurück
117
  
118
      sbrc    r17,0        ; Wenn Time out bit gesetzt,
119
      rjmp    A_01        ; dann spring zu A_01
120
121
      sbis    PIND,3        ; Auslösetaste auf Patine wenn betätigt,
122
      ori      r17,0b00000001    ; dann setze Time out bit
123
124
      sbis    PIND,3
125
      andi    r17,0b11110111
126
127
      sbic    PIND,4        ; Überwachungseingang wenn 0,
128
      rjmp    A_01        ; dann spring zu A_01
129
130
      sbrs    r16,0        ; Timer bit 0 (0,5sec Takt) 0,
131
      rjmp    A_01        ; dann sping zu A_01
132
133
      sbrc    r17,1        ; Flankenauswertung für Timer
134
      rjmp    A_01
135
136
      ori      r17,0b00000010
137
      inc      r18          ; Timer wird je sec um 1 erhöht
138
139
A_01:    sbrs    r16,0        ; Flankenauswertung für Timer
140
      andi    r17,0b11111101
141
142
      cpi      r18,240        ; Zähler wird ausgewertet (240sec.)
143
      brne    A_02        ; Wenn nicht 240, spirng zu A_02
144
      ori      r17,0b00000001
145
      andi    r17,0b11110111
146
      ldi      r18,0
147
  
148
A_02:    sts      B001,r17
149
      sts      B002,r18
150
      ret
151
;-------------------------------------------------------------------------------
152
Output:    lds      r16,B100
153
      lds      r17,B001
154
155
      sbrc    r17,1        ; Zeitmessungs LED
156
      sbi      PORTB,1        ; "
157
      sbrs    r17,1        ; "
158
      cbi      PORTB,1        ; "
159
      
160
      sbrc    r17,0
161
      rjmp    B_01
162
      sbi      PORTB,2
163
      sbrs    r17,3
164
      cbi      PORTB,0
165
      rjmp    B_02
166
167
B_01:    cbi      PORTB,2
168
      sbi      PORTB,0
169
170
B_02:    sbis    PIND,2
171
      cbi      PORTB,3
172
173
      sbrs    r17,0
174
      rjmp    B_03
175
176
      sbrs    r16,0
177
      cbi      PORTB,3
178
179
      sbrc    r16,0
180
      sbi      PORTB,3
181
182
B_03:    sbrc    r17,0
183
      cbi      PORTB,4
184
      
185
      sbrc    r17,0
186
      rjmp    B_04
187
188
      sbrs    r17,3
189
      rjmp    B_04
190
191
      sbrs    r16,0
192
      cbi      PORTB,4
193
194
      sbrc    r16,0
195
      sbi      PORTB,4
196
197
B_04:
198
199
      sts      B001,r17
200
      ret
201
;-------------------------------------------------------------------------------
202
Futterpause:lds      r16,B100
203
      lds      r17,B001
204
      lds      r18,B003
205
206
      sbic    PIND,6
207
      rjmp    C_01
208
209
      sbrc    r17,0
210
      andi    r17,0b11110111
211
212
      sbrc    r17,0
213
      rjmp    C_01
214
215
      rcall    wait_1ms
216
217
      sbrc    r17,2
218
      rjmp    C_01
219
220
      ori      r17,0b00000100
221
222
      sbrs    r17,3
223
      rjmp    C_02
224
      andi    r17,0b11110111
225
      cbi      PORTB,3
226
      cbi      PORTB,4
227
      rjmp    C_01
228
C_02:    ori      r17,0b00001000
229
      sbi      PORTB,0
230
      sbi      PORTB,3
231
232
C_01:    sbis    PIND,6
233
      rjmp    C_03
234
235
      sbrs    r17,2
236
      rjmp    C_03
237
238
      rcall    wait_1ms
239
240
      andi    r17,0b11111011
241
242
C_03:    sbrs    r17,3
243
      rjmp    C_04
244
245
      sbrs    r16,2
246
      rjmp    C_04
247
248
      sbrc    r17,4
249
      rjmp    C_04
250
251
      ori      r17,0b00010000
252
253
      inc      r18
254
255
C_04:    sbrs    r16,2
256
      andi    r17,0b11101111
257
258
C_05:    cpi      r18,150
259
      brne    C_06
260
      ldi      r18,0
261
      andi    r17,0b11110111
262
      cbi      PORTB,3
263
      cbi      PORTB,4
264
265
C_06:        
266
      sts      B001,r17
267
      sts      B003,r18
268
      ret
269
;-------------------------------------------------------------------------------
270
wait_1ms:  push    r16
271
      push    r17
272
wait_1ms_1:  inc      r16
273
      brne    wait_1ms_1
274
      inc      r17
275
      cpi      r17,5
276
      brne    wait_1ms_1
277
      ldi      r17,0
278
      pop      r17
279
      pop      r16
280
      ret
281
;-------------------------------------------------------------------------------
282
TIMER:    push    r16
283
      in       r16,SREG
284
      push     r16
285
      lds      r16,B100
286
287
      inc      r16
288
289
      sts      B100,r16
290
      pop      r16
291
      out     SREG,r16
292
      pop     r16
293
294
      reti
295
;-------------------------------------------------------------------------------
296
297
.dseg
298
299
B100:      .byte 1        ; wird im Interrupt behandelt
300
B001:      .byte 1        ; Statusregister 1
301
                  ; Bit 0: time out Messung oder Test von Taster
302
                  ; Bit 1: Zeitmessungsflanke und LED Zeitmessung
303
                  ; Bit 2: Flankenauswertung Taster Futterpause
304
                  ; Bit 3: Futterpause und Störungs LED ein bei 1
305
                  ; Bit 4: Flankenauswertung Timer 10min.
306
                  ; Bit 5:
307
                  ; Bit 6:
308
                  ; Bit 7:
309
B002:      .byte 1        ; Timerregister 60sec.
310
B003:      .byte 1        ; Timerregister 10min.

von Basti (Gast)


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)

von spess53 (Gast)


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

von XMEGA (Gast)


Angehängte Dateien:

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

von Floh (Gast)


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.

von Mike H. (-scotty-)


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ß.

von Ich (Gast)


Angehängte Dateien:

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).

von XMEGA (Gast)


Lesenswert?

Servus,

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

recht intelligent ist dein Geschwafel  auch nicht!!

Gruß XMEGA

von Hauke R. (lafkaschar) Benutzerseite


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.

von DERLEVELER (Gast)


Lesenswert?

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

von Ich (Gast)


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?

von Hauke R. (lafkaschar) Benutzerseite


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.

von Ich (Gast)


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.

von Basti (Gast)


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.

von ich (Gast)


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.

von Bast (Gast)


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!

von Basti (Gast)


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

von Grrrr (Gast)


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?

von Hans_Dampf (Gast)


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.

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.