Hallo, ich hatte schon einmal gepostet, dass ich probleme mit einer Magnetbremse hatte. Da die vorherige Schaltung mit einem FET nur für eine Stromflussrichtung geeignet war, hatte ich Probleme mit der permanenten Magnetisierung der Stahlbremsscheibe. Ist im Forum Anlogtechnik zu finden. Da ich aktiv entmagnetisieren muss, habe ich die Schaltung neu aufgebaut und diesmal einen L298 verwendet, die Schaltung ist im Bildanhang. Jetzt habe ich neue, ganz andere Probleme. Wie man im Schema sehen kann, habe ich die Kanäle wie im Datenblatt des L298 gezeigt parallel geschalten. Komischerweise schaltet mir der L298 erst bei einem Tastverhältnis von 100% sauber durch. ZU Testzwecken lege ich vorläufig nur In1 und In4 auf H-Pegel und PWM an Enable A und B, also noch keine Umschaltung der Stromflussrichtung durch die Last. Wenn ich jetzt das Tastverhältnis der 8-bit PWM von 0 - 100% in schritten erhöhe habe ich mit dem Oszi gemessen bis zum erreichen der 100% keine Saubere PWM am Output des L298. Könnte ein Pull-Down an In1 u 4 bzw. In2 u 3 eventuell abhilfe schaffen? IMHO sollte ja der µC den definierten Low-Pegel liefern oder hängt der Ausgangspin nach dem ausschalten undefiniert herum? Danke schon mal für eure antworten P.S. Programmiert habe ich übrigens mit Bascom, C gewöhne ich mir gerade erst an.
@ Günter Michaeller (gueee) >permanenten Magnetisierung der Stahlbremsscheibe. Ist im Forum >Anlogtechnik zu finden. Da könnte man durchaus einen Link posten. >Jetzt habe ich neue, ganz andere Probleme. Ja, du hast vergessen dein unsinningen Layer 93 (Pins) auszuschalten. >Wie man im Schema sehen kann, habe ich die Kanäle wie im Datenblatt des >L298 gezeigt parallel geschalten. >Komischerweise schaltet mir der L298 erst bei einem Tastverhältnis von >100% sauber durch. Was meinst du damit? >ZU Testzwecken lege ich vorläufig nur In1 und In4 auf H-Pegel und PWM an >Enable A und B, also noch keine Umschaltung der Stromflussrichtung durch >die Last. Und was wird mit IN2/3? Die müssen auch auf einem definiertem Pegel liegen. >Wenn ich jetzt das Tastverhältnis der 8-bit PWM von 0 - 100% in >schritten erhöhe habe ich mit dem Oszi gemessen bis zum erreichen der >100% keine Saubere PWM am Output des L298. Wie gemessen? Mit Bremse? Screenshot? >Könnte ein Pull-Down an In1 u 4 bzw. In2 u 3 eventuell abhilfe schaffen? Nein. >IMHO sollte ja der µC den definierten Low-Pegel liefern oder hängt der >Ausgangspin nach dem ausschalten undefiniert herum? Was heisst ausschalten? Wenn des Programm losläuft, muss man die Pins auf Ausgang schalten, dann kann man sie LOW oder HIGH setzen. Poste deinen Quelltext als Anhang. Mfg Falk
@ Falk, >Da könnte man durchaus einen Link posten. Beitrag "Re: L295 Entmagnetisierung?" hier ist er. >Ja, du hast vergessen dein unsinningen Layer 93 (Pins) auszuschalten. da hast du wohl recht :) > Und was wird mit IN2/3? Die müssen auch auf einem definiertem Pegel > liegen. das tun sie auch, liegen auf Low, siehe Source. > Wie gemessen? Mit Bremse? Screenshot? ... mit Bremse gemessen, je 1 Oszi-Kanal an Out1/4 und an Out2/3. Leider kein screenshot.
1 | 'Definition für Mega 8 |
2 | $regfile "m8def.dat" |
3 | |
4 | 'Taktfrequenz (8Mhz) |
5 | $crystal = 8000000 |
6 | |
7 | 'Konfiguration der Analogeingänge |
8 | Config Adc = Single , Prescaler = Auto , Reference = Avcc |
9 | |
10 | 'Konfiguration Timer 1 für Hardware-PWM an OC1A (B.1) |
11 | Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 8 |
12 | |
13 | 'Konfiguration der Ports |
14 | Config Portb = Output |
15 | Config Portc.0 = Input |
16 | Config Portc.1 = Input |
17 | Config Portc.2 = Input |
18 | Config Portc.3 = Output |
19 | Config Portc.4 = Output |
20 | Config Portd = Input |
21 | |
22 | '====================================================== |
23 | 'Deklarationen |
24 | '====================================================== |
25 | |
26 | Dim Analogwert0 As Word |
27 | Dim Analogwert1 As Word |
28 | Dim Gain As Word |
29 | Dim Analogwert2 As Word |
30 | Dim Regelwert As Word |
31 | Dim Hilfs As Word |
32 | Dim Korrektur As Word |
33 | Dim Opv As Word |
34 | Dim I As Byte |
35 | |
36 | '====================================================== |
37 | 'Initialisierungen |
38 | '====================================================== |
39 | 'Anschaltung der Analogwert-Verarbeitung |
40 | Start Adc |
41 | |
42 | Portb = &B00000000 |
43 | Portd = &B00000000 |
44 | |
45 | 'Start des PWM-Timers |
46 | 'Enable Timer1 |
47 | Timer1 = 0 |
48 | Start Timer1 |
49 | Regelwert = 511 |
50 | Portd.1 = 1 |
51 | Portc.3 = 0 |
52 | Portc.4 = 1 |
53 | |
54 | |
55 | '====================================================== |
56 | 'Hauptprogramm |
57 | '====================================================== |
58 | Hilfs = Getadc(2) |
59 | |
60 | Do |
61 | |
62 | 'Analogwert vom Poti einlesen, umrechnen und formieren |
63 | Analogwert0 = Getadc(0) |
64 | If Analogwert0 > 1023 Then Analogwert0 = 1023 |
65 | |
66 | Analogwert1 = Getadc(1) |
67 | If Analogwert1 > 1023 Then |
68 | Analogwert1 = 1023 |
69 | End If |
70 | Gain = Analogwert1 / 100 |
71 | |
72 | Analogwert2 = Getadc(2) |
73 | If Analogwert2 > 1023 Then |
74 | Analogwert2 = 1023 |
75 | End If |
76 | |
77 | |
78 | |
79 | If Analogwert0 < Analogwert2 And Analogwert0 > Hilfs Then |
80 | I = 1 |
81 | End If |
82 | If Analogwert0 < Analogwert2 And Analogwert0 <= Hilfs Then |
83 | I = 2 |
84 | End If |
85 | If Analogwert0 > Analogwert2 And Analogwert0 >= Hilfs Then |
86 | I = 3 |
87 | End If |
88 | If Analogwert0 > Analogwert2 And Analogwert0 < Hilfs Then |
89 | I = 4 |
90 | End If |
91 | If Analogwert0 = Analogwert2 Then |
92 | I = 5 |
93 | End If |
94 | If Pind.1 = 0 Then |
95 | I = 6 |
96 | End If |
97 | |
98 | Select Case I |
99 | Case 1 : Hilfs = Analogwert0 |
100 | If Analogwert0 = 0 Then |
101 | Analogwert0 = 1 |
102 | End If |
103 | If Regelwert >= 511 Then |
104 | Regelwert = 511 |
105 | End If |
106 | If Regelwert <= Gain Then |
107 | Compare1a = 255 |
108 | Else |
109 | Regelwert = Regelwert - Gain |
110 | If Regelwert <= 2 Then |
111 | Regelwert = 2 |
112 | End If |
113 | 'If Portc.3 = 1 And Portc.4 = 0 Then |
114 | 'Portc.3 = 0 |
115 | 'Waitms 10 |
116 | 'Portc.4 = 1 |
117 | 'Else |
118 | 'Portc.4 = 0 |
119 | 'Waitms 10 |
120 | 'Portc.3 = 1 |
121 | 'End If |
122 | Opv = Regelwert / 2 |
123 | Compare1a = 255 - Opv |
124 | End If |
125 | Case 2 : Hilfs = Analogwert0 |
126 | If Analogwert0 = 0 Then |
127 | Analogwert0 = 1 |
128 | End If |
129 | If Regelwert <= Gain Then |
130 | Regelwert = Gain |
131 | End If |
132 | If Regelwert >= 500 Then |
133 | Regelwert = 500 |
134 | End If |
135 | Regelwert = Regelwert + Gain |
136 | If Regelwert > 511 Then |
137 | Regelwert = 511 |
138 | End If |
139 | Opv = Regelwert / 2 |
140 | Compare1a = 255 - Opv |
141 | Case 3 : Hilfs = Analogwert0 |
142 | If Analogwert0 = 0 Then |
143 | Analogwert0 = 1 |
144 | End If |
145 | If Regelwert >= 511 Then |
146 | Regelwert = 511 |
147 | End If |
148 | If Regelwert <= Gain Then |
149 | Compare1a = 255 |
150 | Else |
151 | Gain = Gain * 2 |
152 | If Regelwert <= Gain Then |
153 | Regelwert = Gain + 2 |
154 | End If |
155 | Regelwert = Regelwert - Gain |
156 | Opv = Regelwert / 2 |
157 | 'If Portc.3 = 1 And Portc.4 = 0 Then |
158 | 'Portc.3 = 0 |
159 | 'Waitms 10 |
160 | 'Portc.4 = 1 |
161 | 'Else |
162 | 'Portc.4 = 0 |
163 | 'Waitms 10 |
164 | 'Portc.3 = 1 |
165 | 'End If |
166 | Compare1a = 255 - Opv |
167 | End If |
168 | Case 4 : Hilfs = Analogwert0 |
169 | If Analogwert0 = 0 Then |
170 | Analogwert0 = 1 |
171 | End If |
172 | Regelwert = Regelwert + 5 |
173 | If Regelwert >= 511 Then |
174 | Regelwert = 511 |
175 | End If |
176 | If Regelwert <= 2 Then |
177 | Regelwert = 2 |
178 | End If |
179 | Opv = Regelwert / 2 |
180 | Compare1a = 255 - Opv |
181 | Case 5 : Opv = Regelwert / 2 |
182 | Compare1a = 255 - Opv |
183 | Case 6 : Compare1a = 255 |
184 | End Select |
185 | |
186 | Loop |
@ Günter Michaeller (gueee) Warum postest du deinen Quelltext nicht als Anhang? Siehe Netiquette. Deinem Quelltext fehlt es an Struktur, es fehlen u.a. Einrückungen, das verschlechtert die Lesbarkeit deutlich. >... mit Bremse gemessen, je 1 Oszi-Kanal an Out1/4 und an Out2/3. Leider >kein screenshot. Nun, was erwartest du dort für ein Signal? Ein "normales" PWM-Signal wirst du dort nicht finden, denn deine Last ist ohmsch-induktiv. In der AUS-Phase der PWM speist die Bremse Energie zurück, das ist der klassische Freilauf einer Induktivität. Die externen Dioden tragen dann den Strom. Der ist entscheidend. Als musst du einen niederohmigen Shunt in die Leitung einfügen und darüber den Spannungsabfall messen. Oder du machst es gleich so, wie es der IC-Hersteller sinnvollerweise geplant hat. Schalten den Shunt zwischen SenseA/B und GND an IC5, dort kannst du dann sehr einfach den Strom durch deine Bremse gegen Masse messen. MfG Falk P S Die olle Gurke von L298 würde ich heute nicht mehr nehmen wollen. Ein L6201/2/3 ist da um Längen besser.
Hallo, nach genauerem hinsehen (Datenblatt), wäre mir ein L6203 auch lieber, naja. Kann es sein, dass meine Freilaufdioden BY-500 zu langsam für den L298 sind? Grenzwertig sind sie auf alle fälle, denn im Datenblatt vom L298 wären trr<=200ns angegeben und im Datenblatt der Dioden ist die max trr 200ns angegeben. Einen L298 habe ich jetzt jedenfalls schon verheizt. Bei 68 Ohm und 24V Vs dürfte der Strom ja nicht über 353mA gehen, was der L298 ja noch locker verkraften müsste!? vielen Dank, vor allem an Falk Brunner.
@ Günter Michaeller (gueee) >sind? Grenzwertig sind sie auf alle fälle, denn im Datenblatt vom L298 >wären trr<=200ns angegeben und im Datenblatt der Dioden ist die max trr >200ns angegeben. Passt schon, sooo kritisch ist das nicht. >Einen L298 habe ich jetzt jedenfalls schon verheizt. Passiert halt, wenn viel Leistung im Spiel ist. >Bei 68 Ohm und 24V Vs dürfte der Strom ja nicht über 353mA gehen, was >der L298 ja noch locker verkraften müsste!? Meinst du mit 68 Ohm den Wicklungswiderstand der Bremse? Ja, das ist kein Problem. MFG Falk
Ach so, noch was. Dein Schaltplanausschnitt ist ja unvollständig, und schlecht lesbar. Was du auf jeden Fall brauchst ist ein fetter Elko NAH am L298, sagen wir max. 5cm entfernt, 1000uF sollten erstmal reichen. Und eine fette 27V Z-Diode parallel dazu, welche im Falle eines Falles die rückgespeiste Energie verheizt und die Spannung der 24V Versorgung begrenzt. MFG Falk
Danke Falk, werde ich Beherzigen. Den ELKO muss ich vermutlich 2 mit umgekehrter Polarität parallel zur Last schalten und Dioden werde ich auch 2 Fette 27V Z-Dioden antiparallel brauchen um auch die umgekehrte Stromrichtung ab zu decken, oder?? Bis ca. 2 cm käme ich an den L298 mit dem ELKO dran. mfg Günter
@Günter Michaeller (gueee) >Den ELKO muss ich vermutlich 2 mit umgekehrter Polarität parallel zur >Last schalten und Dioden werde ich auch 2 Fette 27V Z-Dioden >antiparallel brauchen um auch die umgekehrte Stromrichtung ab zu decken, >oder?? NEIN! Der Elko gehört an +24V/GND, genauso wie die Z-Diode! Und deine Freilaufdioden sollten auch direkt, mit dickerem Draht an den Elko angebunden sein. Siehe Artikel Treiber. >Bis ca. 2 cm käme ich an den L298 mit dem ELKO dran. Passt. MFG Falk
@Falk, die Leiterbahnen zwischen L298, Freilaufdioden, zusätzlichem ELKO und auch der Z-Diode sind 100mil breit und addiert ca. 5 cm Lang. Ich habe den Leistungsteil am Board sehr eng angeordnet. Sollte an sich dann auch ohne dickere Drähte passen, oder? mfg Günter P.S. fette 27V Z-Diode hab ich momentan nicht zur hand, würde es auch ein Varistor oder eine Suppressordiode tun?
@ Günter Michaeller (gueee) >die Leiterbahnen zwischen L298, Freilaufdioden, zusätzlichem ELKO und >auch der Z-Diode sind 100mil breit und addiert ca. 5 cm Lang. Ich habe >den Leistungsteil am Board sehr eng angeordnet. Passt. >Sollte an sich dann auch ohne dickere Drähte passen, oder? Ja, das war damit gemeint. >P.S. fette 27V Z-Diode hab ich momentan nicht zur hand, würde es auch >ein Varistor oder eine Suppressordiode tun? Sicher. MFg Falk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.