Stufenlose PWM und Motor Schutzschaltung Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
|
|
|
BID = 899602
GerDominator Stammposter
Beiträge: 233
|
|
Zitat :
| Das brauchst du nicht. Die Spitzen(lade)ströme werden von den Kondensatoren geliefert. |
Okay perfekt, das freut mich sehr
Zitat :
| Eine Sache, die mir auch schon länger aufgefallen ist, ist die Diode parallel zum Gate-Widerstand. Für gewöhnlich wird sie genau anders herum gepolt, um ein schnelles Abschalten des MOSFETs zu bewirken, weshalb sie auch Turn-off Diode genannt wird.
In Vorwärtsrichtung wird dagegen i.d.R. noch ein Widerstand in Serie geschaltet, um den Ladestrom zu begrenzen. |
Gut dann werde ich sie als Turn-off Diode nutzen
Na wunderbar dann sieht es ja so aus als könnte ich nächste Woche die letzte Bestellung rausschicken Es sei denn perl, Onra oder einem anderen Fachmann fällt noch ein Fehler auf.
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison |
|
BID = 900211
GerDominator Stammposter
Beiträge: 233
|
|
Ich habe die Bestellung jetzt rausgeschickt. Ich melde mich wieder wenn die Platine geätzt und bestückt ist
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison |
|
BID = 901411
GerDominator Stammposter
Beiträge: 233
|
Hier mein absolutes Heiligtum
Ich habe nochmal eine Layout- und Schaltplananpassung gemacht wie man sieht. Auf die 24V-12V Umschaltung habe ich verzichtet und mich für die 24V Betriebsspannung entschieden. Trotzdem möchte ich Offroad GTI nochmal für seine tolle Schaltung danken, sicherlich kann ich sie in einem anderen Projekt gebrauchen.
Die Dauer wird außerdem nicht mehr durch Potis eingestellt sondern vom User programmiert indem er den Hubtaster entsprechend in einem Programmiermodus drückt.
Es kann zwischen 4 Modi umgeschaltet werden, daher auch der DIP Schalter.
Die Platinenherstellung hat mich so unglaublich viel Arbeit gekostet. Insgesamt habe ich bestimmt 15h gebraucht. Trotzdem hat sich jede Minute Arbeit gelohnt und ich bin mir sicher, dass ich bei der nächsten Platine weniger Zeit benötigen werde.
Die Hohlnieten habe ich mit einem Körner bearbeitet und anschließend mit einer runden Schraube auf die Platine geklopft, hat wunderbar funktioniert.
Jetzt beginnt die Softwarephase, ich halte euch auf dem Laufenden
Nochmal danke an alle die bisher geholfen haben, ich wäre sonst niemals so weit gekommen!
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 901425
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Die Platinenherstellung hat mich so unglaublich viel Arbeit gekostet. Insgesamt habe ich bestimmt 15h gebraucht. |
Unglaublich viel?
Das entspricht bei den meisten Erwachsenen der Arbeitszeit von gerade einmal 2 Tagen.
Hinzu kommen noch die Zeiten für Hin- und Rückfahrt.
Und das Tagaus, Tagein. Gerade einmal durch die Wochenenden unterbrochen.
|
BID = 901633
GerDominator Stammposter
Beiträge: 233
|
Bin gerade beim programmieren da tut sich mir schon die erste Frage auf. Hat der PIC16F690 keine Pull-ups am PORTC?
Bei PORTB ließ sich das einfach so programmieren. (BANK_X sind Makros)
Code : |
;PORTB
BANK_1
movlw b'00001111' ;Dig.Inputs=RB4,RB6,RB7 An.Input=RB5
movwf TRISB
bsf OPTION_REG, RABPU ;Enable Pull-up function
BANK_2
movlw b'00001011' ;Pull-Ups=RB4,RB6,RB7
movwf WPUB
|
|
Allerdings gibt es gar kein WPUC Register welches ich beschreiben könnte. Wenn der PORTC wirklich keine Pull-Ups hat wäre das sehr ärgerlich.
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 901635
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
BID = 901638
GerDominator Stammposter
Beiträge: 233
|
Ich hatte ein anderes Datenblatt wo diese Tabelle nicht enthalten war. Trotzdem kann ich jetzt nur sagen... tolle sch****
Das bedeutet für mich auslöten und stümperhafte Notlösungen finden
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 902237
GerDominator Stammposter
Beiträge: 233
|
Naja so schlimm war es jetzt auch nicht mit den Pull-Ups.
Ich habe allerdings das Problem, dass der PIC gar nichts macht. Ich habe folgendes Testprogramm geschrieben, kann an Pin RC4 keine 5V messen. Ist der PIC kaputt oder habe ich einen Programmfehler? Ich habe alle Leitungen schon überprüft und die 5V Versorgung ist auch ordnungsgemäß da.
Da ich keinen IC-Sockel bestellt habe (leider vergessen), habe ich den PIC einfach direkt auf die Platine gelötet. Ist die Wahrscheinlichkeit hoch, dass ich ihn dabei zerstört habe?
Code : |
;*******************************************************************************
;
; Datum: 05.10.2013
; Name: GerDominator
; Projekt: 24V/5A Motorcontrol
; PIC: 16F690
;
; ______________________________
; 1 -|VDD Button/RB6 |- 11
; 2 -|OSC1 VIOUT/AN11/RB5 |- 12
; 3 -|OSC2 PM/AN10/RB4 |- 13
; 4 -|VPP SM/AN6/RC2 |- 14
; 5 -|P1A/RC5 P_SM_µC/AN5/RC1 |- 15
; 6 -|P1B/RC4 SP/AN4/RC0 |- 16
; 7 -|SE/AN7/RC3 P_Sp_µC/AN2/RA2 |- 17
; 8 -|EP/AN8/RC6 ICSPCLK/RA1 |- 18
; 9 -|MAN/AN9/RC7 ICSPDAT/RA0 |- 19
; 10 -|HA/RB7 VSS |- 20
; ------------------------------
;
;
;*******************************************************************************
list p=16f690
#include <p16f690.inc>
#include <macros.inc>
;Configuration Bits
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _CPD_OFF & _MCLRE_ON & _BOD_OFF
;==============
; Definitions
;==============
#define SE PORTC, 3 ;Sensor
#define SP PORTC, 0 ;Starting Point
#define EP PORTC, 6 ;Ending Point
#define MAN PORTC, 7 ;Manual Mode
#define HA PORTB, 7 ;Half-Automatic Mode
#define SM PORTC, 2 ;Sensor Mode
#define PM PORTB, 4 ;Programming Mode
#define P_SM_µC PORTC, 1 ;Soft-Start-Stop Multiplier
#define P_Sp_µC PORTA, 2 ;Speed Potentiometer
#define VIOUT PORTB, 5 ;Output Current Sensor ACS712
#define Button PORTB, 6 ;Button
;==========
;Variables
;==========
w_temp EQU 0x70
status_temp EQU 0x71
ERRORLEVEL -302 ;Shutting down Bank Error
;_____________________________________________________________________________
ORG 0x000 ;Adress after Reset
clrf PCLATH ;Clearing Pagebit
goto start
ORG 0x004 ;Interrupt-Adress
movwf w_temp ;Safing W-Register
movf STATUS,w
movwf status_temp ;Safing Status-Register
;--------------------------------
;Possible Interruptcode
;
;--------------------------------
movf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie
;_____________________________________________________________________________
start ;Starting Point
;================
;Initializations
;================
BANK_0
clrf PORTA ;Set all ports to 0
clrf PORTB
clrf PORTC
BANK_2 ;ANSEL(H) Digital or Analog
movlw b'00100101' ;Analog Pins: RA2/AN2 (P_Sp_µC)
movwf ANSEL ; RC1/AN5 (P_SM_µC)
movlw b'00010000' ; RC3/AN7 (SE)
movwf ANSELH ; RB5/AN11 (VIOUT)
;PORTA
BANK_1
bsf TRISA, 2 ;Set RA2 (P_Sp_µC) as analog input
;PORTB
BANK_1
movlw b'00001111' ;Dig.Inputs=RB4,RB6,RB7 An.Input=RB5
movwf TRISB
bcf OPTION_REG, 7 ;Enable Pull-up function; Set RABPU
BANK_2
movlw b'00001011' ;Pull-Ups=RB4,RB6,RB7
movwf WPUB
;PORTC
BANK_1
movlw b'11110011' ;Inputs=R0:R3,RC6,RC7 Outputs:RC4,RC5
movwf TRISC
main
BANK_1
bsf TRISC, 4
bcf TRISC, 5
goto main
end |
|
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 902255
Offroad GTI Urgestein
Beiträge: 12733 Wohnort: Cottbus
|
Zitat :
| Ich habe folgendes Testprogramm geschrieben |
Ziemlich umfangreich, für ein Testprogramm.
Lasse doch lieber einen Pin (bspw. mit 1Hz) toggeln, anstatt ihn auf ein festes Potential setzen zu wollen.
Zitat :
| Ist die Wahrscheinlichkeit hoch, dass ich ihn dabei zerstört habe? |
Jetzt weiß zwar keiner, wie du gelötet hast. Aber wenn es etwa 1s pro Pin bei etwa 350°C waren, hat er wahrscheinlich keinen Schaden genommen.
Unpraktisch ist es in jedem Fall, ICs (allgemein) nicht zu sockeln, aber das ist ja nichts Neues
_________________
Theoretisch gibt es zwischen Theorie und Praxis keinen Unterschied. Praktisch gibt es ihn aber.
|
BID = 902289
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| movlw b'11110011' ;Inputs=R0:R3,RC6,RC7 Outputs:RC4,RC5 |
Das Zählen musst du noch etwas üben....
|
BID = 902722
GerDominator Stammposter
Beiträge: 233
|
Ja das muss ich tatsächlich, habe genau die falsche Reihenfolge der Bits verwendet
Danke für den aufmerksamen Hinweis. Habe gerade schnell mal bisschen umprogrammiert, hat noch nicht funktioniert, aber ich muss mich dem Quellcode nochmal genauer widmen. Das wird am Wochenende geschehen
Jedenfalls war es kein Wunder, dass der Code nicht funktioniert hat
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 902838
GerDominator Stammposter
Beiträge: 233
|
Das Testprogramm funktioniert einwandfrei, die 5V liegen nun an PIN RC4 an
Allerdings dreht sich der Motor immer noch nicht:D Ich bin weiter auf Fehlersuche.
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 902853
GerDominator Stammposter
Beiträge: 233
|
Nachdem ich nun fast alle Pins nachgemessen und nachgelötet habe, konnte ich folgendes Problem identifizieren:
Trotz richtiger Spannungspegel an den Highsignal-Eingängen und den Lowsignal-Eingängen der IR2110s versuchen Beide die highseitigen Fets der H-Brücke einzuschalten, in meinem Fall also M1 und M4. Dazu kommt, dass an den Gates jeweils nur 11,3V anliegen, die Highsidefets also noch nicht einmal durchschalten können. Alles deutet darauf hin, dass die Gatetreiber kaputt sind, das ist aber trotzdem sehr unwahrscheinlich.
Ich weiß nicht mehr weiter Was sind eure Vermutungen? Die elektrischen Verbindungen habe ich alle überprüft.
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 917730
GerDominator Stammposter
Beiträge: 233
|
Dieser Thread ist wahrscheinlich schon tot geglaubt worden. Ich möchte ihn doch mal wieder ausgraben.
Die PWM funktioniert halbwegs. Ich habe mal zwei Bilder von meinem Oszi hochgeladen. Ich hatte mir den Signalverlauf anders vorgestellt. Der Motor läuft ruckartig, d.h er dreht für eine halbe sekunde, hält für eine halbe sekunde und dreht dann wieder, usw..
Hier noch einmal der Code von der PWM:
Code : |
BANK_0
;movlw b'10001110' ;Init. Half-Bridge (B-High;A-Low)
;movlw b'10001101' ;Init. Half-Bridge (B-Low;A-High)
movlw b'10001100' ;Init. Half-Bridge (B-High;A-High)
movwf CCP1CON
BANK_1
movlw d'255'
movwf PR2
BANK_0
movlw d'200' ;Duty Cycle
movwf CCPR1L
clrf T2CON ;Pre- and Postscaler set to 1:1
;bsf ECCPAS, 7 ;ECCPAS (Auto Shutdown)
movlw b'00000010' ;2 Cycles Dead-Band-Delay
movwf PWM1CON
bcf PIR1,TMR2IF
bsf T2CON,2 ;Start this f**cking prick!
BANK_1
;movlw b'11101111' ;Set RC5(R1A),RC4(R1B)Outputs;TURN_LEFT
movlw b'11011111' ;TURN_RIGHT
;movlw b'11111111' ;STOP
movwf TRISC
|
|
Bisher habe ich noch nicht hinbekommen die Drehrichtung des Motors zu ändern.
Code : |
BANK_0
;movlw b'10001110' ;Init. Half-Bridge (B-High;A-Low)
;movlw b'10001101' ;Init. Half-Bridge (B-Low;A-High)
movlw b'10001100' ;Init. Half-Bridge (B-High;A-High)
;movlw b'10001111' ;Init. Half-Bridge (B-Low;A-Low)
movwf CCP1CON
|
|
Ich habe immer eine Zeile abwechselnd aktiviert. In der Hoffnung dass ich die Drehrichtung ändern kann. Das einzige was ich erreicht habe, dass die Schaltung bei manchen Einstellungen in den Kurzschluss geht.
Nur bei b'10001100' Einstellung funktioniert die Schaltung wie sie soll.
LG GerDominator
_________________
"Wenn wir alles täten, wozu wir imstande sind, würden wir uns wahrscheinlich in Erstaunen versetzen." - Thomas Alva Edison
|
BID = 917735
Offroad GTI Urgestein
Beiträge: 12733 Wohnort: Cottbus
|
Zitat :
| Ich habe mal zwei Bilder von meinem Oszi hochgeladen. Ich hatte mir den Signalverlauf anders vorgestellt. |
Wenn wir wüssten, was du überhaupt gemessen hast
Davon abgesehen: Die IR2110 können die Highside-FETs nicht dauerhaft einschalten. Auch dürfen das Einschaltverhältnis (Duty-Cycle) und die Schaltfrequenz selbst bestimmte Werte nicht unterschreiten.
Zitat :
| dass die Schaltung bei manchen Einstellungen in den Kurzschluss geht. |
Tja, die Treiber haben eben keine Shoot-Through Protection, wie es so schön heißt.
_________________
Theoretisch gibt es zwischen Theorie und Praxis keinen Unterschied. Praktisch gibt es ihn aber.
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag heute wurden bisher 5 Beiträge verfasst © x sparkkelsputz Besucher : 182307205 Heute : 627 Gestern : 4419 Online : 424 10.11.2024 8:37 3 Besucher in den letzten 60 Sekunden alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.112534999847
|