Bruce,
I see. Thanks anyway!
/Henrik Olsson.
Hi!
i got hold of Microchip PICDEm MC LV board with 3-phase BLDC motor.It has a CD that conatins source code in assembly. I was wondering if someone has done same thing in pic basic i.e used power PWM module of 18F4431.I tried according to application note but to no avail. Here is my code.could someone point me out in right direction.some code snipet would be appreciated.
thanks
while true
PTCON0=00000000 'page 8,step 1
PTPERL=$37 'a guess
PTPERH=$01
PWMCON0=01001111 'step 3
PWMCON1=00000001 'step 4
DTCON=00000000 ' a guess
OVDCOND=00000000 'step 6
OVDCONS=00000000
FLTCONFIG=00000000
'POVD=00000000
'SEVTCMP=$0000
'step 8
SEVTCMPL=$00
SEVTCMPH=$00
PDC0L=$00
PDC0H=$00
PDC1L=$00
PDC1H=$00
PDC2L=$00
PDC2H=$00
PDC3L=$00
PDC3H=$00
TRISC.0=1
PTCON1=10000000 'or PTCON1.7=1
wend
Hi!
i got hold of Microchip PICDEm MC LV board with 3-phase BLDC motor.It has a CD that conatins source code in assembly. I was wondering if someone has done same thing in pic basic i.e used power PWM module of 18F4431.I tried according to application note but to no avail. Here is my code.could someone point me out in right direction.some code snipet would be appreciated.
thanks
while true
PTCON0=00000000 'page 8,step 1
PTPERL=$37 'a guess
PTPERH=$01
PWMCON0=01001111 'step 3
PWMCON1=00000001 'step 4
DTCON=00000000 ' a guess
OVDCOND=00000000 'step 6
OVDCONS=00000000
FLTCONFIG=00000000
'POVD=00000000
'SEVTCMP=$0000
'step 8
SEVTCMPL=$00
SEVTCMPH=$00
PDC0L=$00
PDC0H=$00
PDC1L=$00
PDC1H=$00
PDC2L=$00
PDC2H=$00
PDC3L=$00
PDC3H=$00
TRISC.0=1
PTCON1=10000000 'or PTCON1.7=1
wend
I wish I could help but I am using the 18F4431 in a completely
different manner.
Richard
I don't have the 18F4431 or Microchip motor control board, but this works
on the 18F2431. It outputs PWM on RB0,RB1,RB2,RB3,RB4 and RB5 with a
varying duty cycle. Ramps up, then down.
It should be at least enough to get you started.
This is just a slight modification to what you posted before. To work with theCode:DEFINE OSC 20 Duty VAR WORD PORTB = $FF TRISB = 0 PTCON0=$00 'page 8,step 1 PTPERL=$A0 ' $01A0 = 12kHz PTPERH=$01 PWMCON0=%01011110 'would be %01011111 for the 18F4431 PWMCON1=%00000001 'step 4 DTCON=$00 ;OVDCOND=$00 'step 6 ; May want to un-comment these based on your PIC & board. ;OVDCONS=$00 ;FLTCONFIG=%10110011 ;POVD=00000000 ;SEVTCMP=$0000 ;step 8 SEVTCMPL=$00 SEVTCMPH=$00 PDC0L=$00 PDC0H=$00 PDC1L=$00 PDC1H=$00 PDC2L=$00 PDC2H=$00 ;PDC3L=$FF ; un-comment for 18F4431 ;PDC3H=$00 PTCON1=%10000000 Main: FOR Duty = 50 TO $500 STEP 4 ASM bsf PWMCON1,UDIS ;Disable the PWM buffer update MOVFF _Duty,PDC0L MOVFF _Duty+1,PDC0H MOVFF _Duty,PDC1L MOVFF _Duty+1,PDC1H MOVFF _Duty,PDC2L MOVFF _Duty+1,PDC2H ;MOVFF _Duty,PDC3L ;un-comment for 18F4431 ;MOVFF _Duty+1,PDC3H bcf PWMCON1,UDIS ;Enable the PWM buffer update ENDASM PAUSE 50 NEXT Duty FOR Duty = $500 TO 50 STEP-4 ASM bsf PWMCON1,UDIS ;Disable the PWM buffer update MOVFF _Duty,PDC0L MOVFF _Duty+1,PDC0H MOVFF _Duty,PDC1L MOVFF _Duty+1,PDC1H MOVFF _Duty,PDC2L MOVFF _Duty+1,PDC2H ;MOVFF _Duty,PDC3L ;un-comment for 18F4431 ;MOVFF _Duty+1,PDC3H bcf PWMCON1,UDIS ;Enable the PWM buffer update ENDASM PAUSE 50 NEXT Duty GOTO Main END
18F2431. I haven't done much beyond this with the PCPWM module. Not yet
at least..;o}
HTH
I'm using the 18F2431 too.
And I begun with the PICDEm MC LV board...
It's a great uC ! (UART, I2C, fast AD, 3-times PWM...)
I use it as a PI(D)-Controller for a BLDC-Motor.
And I use it for his fast AD-Converters in a CR-Tuning-Box.
The Quadrature-Encoder isn't very strange ... the whole business with this chip is to use the right timers for the right tasks and use the right prescalers !!
;-)
PBP 2.50C, MCS+ 3.0.0.5, MPLAB 8, MPASM 5.14, ASIX Presto, PoScope, mE mikroBasic V7.2, PICKIT2
Yeah this one is a nifty series PIC for sure. Sampling 4 x A/D inputs at once is
a very handy feature.
See this post http://www.picbasic.co.uk/forum/showthread.php?t=6768
I just received a few samples of the new USB 18F2553. 12-bit A/D on this
one is nice, but the 18F2431 is still my favorite. Now, if I can just find more
time to play with it..;o}
Thanks a lot Bruce.
I just want to get started with PPWM and then build my own code for brushless DC motor control.
Thanks for your code although its in assembly.i will figure it out.
Bookmarks