analog in PWM out

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

analog in PWM out

Postby fonty » Tue Jan 06, 2009 11:57 pm

Hallo

I’m a student of the fontys university. Per accident I fount your dsPIC toolbox. I was very impressed because we ware looking to make this library on ore own because we have some dsPIC boards at the UNI. The UNI what to change the les method. In the new method it is important that students can program a microcontroller (dsPIC) very fast whit a model made in simulink. So your toolbox is perfect. There is only on one thing I need to show sum profs at the UNI that is works. So I like to make a motor controller whit a analog input an a pwm output. But when I put in the PWM motor output I cant open the master block. Is there someone that can make a PWM output which change when the analog input change. I need this fast because I have a presentation at 8 January. Ant I like to show this. I think that when I can show a working model whit a analog in ant a pwm out the UNI will be very interested in this toolbox. I don’t think I can make it myself that fast. So is there someone who can help me?? It all neat to be run on a dsPIC30f6012

LubinKerhuel
Site Admin - Expert
Posts: 616
Joined: Wed Mar 07, 2007 11:23 pm
Location: Marseille - France
Contact:

Re: analog in PWM out

Postby LubinKerhuel » Wed Jan 07, 2009 1:00 am

Hi Fonty,
fonty wrote:Per accident

Nice accident ;-)

dsPIC30f6012 has no PWM motor peripheral.
To generate a PWM signal with a 30f6012, use the Output Compare (OC) block.

Therefore, place an ADC block, a gain and a OC block. It should works very easily! (Have a look on examples...)
Post your model if you get into trouble.

Lubin

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Wed Jan 07, 2009 5:21 pm

Hallo Lubin

I just found some time to make a simulink model and it built whiteout errors so it could be working. The problem is that I’m at home at this moment and I cant test it. So I hope you maybe can tell me I understand it right.

I have a: ADC Input connected whit a gain (1) the gain is connected whit a data type conversion that is connected whit UC5_up from the Output Compare. Than I have a constant (5) connected whit the OC5_periode.

Is it right when I say that the output compare compares the ADC input whit the constant en generate a PWM out this? So when the input is 5 the PWM is100% when the input is 2.5 the PWM is 50% and when the input is 0 the PWM is 0??

Than my last question. Is it possible to make a simulation model of this model. Can I scoop the output of the OC block sum way?? So I can simulate without my microcontroller board??

LubinKerhuel
Site Admin - Expert
Posts: 616
Joined: Wed Mar 07, 2007 11:23 pm
Location: Marseille - France
Contact:

Re: analog in PWM out

Postby LubinKerhuel » Wed Jan 07, 2009 6:42 pm

Hi Fonty,
fonty wrote:So I can simulate without my microcontroller board??

dsPIC peripheral can't be simulated. It is not possible to simulate dsPIC peripheral because it would necessitate a simulation time step equal to the dsPIC Mips and this would not be efficient !
It is however not very usefull to do such a peripheral simulation. Thus, simulation of the embedded calculation and feedback controller is very usefull and this is of course possible with simulink...

It would be easier to help if you could upload your model on the forum.

The blockset will define the variable OC5max and ANmax in the workspace (check your workspace)

The gain between ADC and OC must be : OC5max / ANmax
The constant connected to the OC5_periode should have the value OC5max.

It should work as is. However, If OC5max/ANmax is not an integer and if you want very precise calculation, you should considere add 2 converter before and after the gain block. The one before would convert value into double to do floating point multiplication, and the one afte would convert the result to uint16 value.

That's it

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Wed Jan 07, 2009 7:32 pm

thanks for helping me so fast. I have changest the gain in OC5max/ANmax and the constant in OC5max. and it built successful so I hope it will work tomorrow when Iload it in the controller..

I like to upload my model at this forum but I don’t know how to do that.

LubinKerhuel
Site Admin - Expert
Posts: 616
Joined: Wed Mar 07, 2007 11:23 pm
Location: Marseille - France
Contact:

Re: analog in PWM out

Postby LubinKerhuel » Wed Jan 07, 2009 8:00 pm

upload the model tomorrow if you get in trouble.
uplaod is just by the option tab at the bottom of the reply page, below the save-Preview-submit button

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Wed Jan 07, 2009 9:56 pm

This is the model so far I will test it tomorrow.

example1.mdl
analog in PWM out
(26.42 KiB) Downloaded 264 times

LubinKerhuel
Site Admin - Expert
Posts: 616
Joined: Wed Mar 07, 2007 11:23 pm
Location: Marseille - France
Contact:

Re: analog in PWM out

Postby LubinKerhuel » Wed Jan 07, 2009 10:20 pm

Will not work :

in your model, the output of the ADC is an integer.
OC5max/ANmax value will be defined as integer because of the inherited datatype option choosen. But in your case, real value of OC5max/ANmax is 0.0488 ; converted into integer, result is 0.
You multiply by 0.

solution :
turn your calculation into double (download the model attached)
or use a PWM with a duty cycle larger than 0,2ms (that's quite short becaue of the slow quartz (giving 1 MIPS) Check also that with such a quartz, the Quartz configuration should not be the XT instead of HS !)

Lubin
Attachments
example1b.mdl
Corrections
(24.91 KiB) Downloaded 172 times

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Thu Jan 08, 2009 9:55 pm

Thanks for helping Lubin. I changest the duty cycle and the Quartz configuration. After bilding en programming the controller it works well. After showing it in my presentation everyone was very enthusiast about it.

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Tue Jan 27, 2009 2:56 pm

hallo lubin

Hallo I try to rebuild the model we make earlier. But it doesn’t work I check all the configurations but I cant find the problem. Can you tell me where I can find the problem??

This is the error I get

Error building Real-Time Workshop target for block diagram 'tutorial'. MATLAB error message:
Error using ==> genMakefileAndBuild at 1138
Error(s) encountered while building model "tutorial".
Attachments
tutorial.mdl
rebult of the old model
(26.9 KiB) Downloaded 139 times

LubinKerhuel
Site Admin - Expert
Posts: 616
Joined: Wed Mar 07, 2007 11:23 pm
Location: Marseille - France
Contact:

Re: analog in PWM out

Postby LubinKerhuel » Tue Jan 27, 2009 4:52 pm

try the following :

add the block "Configure Model for dsPIC Target" in your model and dbl click on that block !
If it does not work, report the complete error message

Lubin

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Tue Jan 27, 2009 9:06 pm

I add the block configuration block and I dbl clickt on it but I still get the error.
I add also the model


this is the error that I get




Model error tutorial Simulink Error building Real-Time Workshop target for block diagram 'tutorial'. MATLAB error message:Error using ==> genMakefileAndBuild at 1138Error(s) encountered while building model "tutorial".

Error building Real-Time Workshop target for block diagram 'tutorial'. MATLAB error message:
Error using ==> genMakefileAndBuild at 1138
Error(s) encountered while building model "tutorial".
Attachments
example1b.mdl
work well
(26.58 KiB) Downloaded 153 times
tutorial.mdl
don’t work
(26.9 KiB) Downloaded 115 times

LubinKerhuel
Site Admin - Expert
Posts: 616
Joined: Wed Mar 07, 2007 11:23 pm
Location: Marseille - France
Contact:

Re: analog in PWM out

Postby LubinKerhuel » Tue Jan 27, 2009 9:44 pm

Hi Fonty,

I did not see the "Configuration Model for dsPIC" block on your model !

There is definitly a problem in your first problem, briefly :
the LDPICTYPE line in the simulink Configuration Parameters is :
C:\PROGRA~1\MICROC~1\MPLABC~2\lib\libpic30-coff.a C:\PROGRA~1\MICROC~1\MPLABC~2\lib\dsPIC30F\libpPIC24Fxxx-coff.a C:\PROGRA~1\MICROC~1\MPLABC~2\lib\libc-coff.a C:\PROGRA~1\MICROC~1\MPLABC~2\lib\libm-coff.a

The 24f has nothing to do there, This problem is corrected with the block I mention earlier.

If it does not work, make sure you are using a blockset up to date.
Attachments
tutorial.mdl
working thanks to the Configuration Model for dsPIC block that solve the problem !
(25.19 KiB) Downloaded 139 times

fonty
Posts: 8
Joined: Tue Jan 06, 2009 11:49 pm

Re: analog in PWM out

Postby fonty » Wed Jan 28, 2009 10:11 am

I’m sorry I add the wrong block

crh
Posts: 20
Joined: Wed Oct 29, 2008 11:51 am

Re: analog in PWM out

Postby crh » Mon Apr 13, 2009 8:49 am

Hello Lubin,
When I use the original model as above and I use a function generator instead of a potentiometer it works well. But when I insert a filter (in this model I use your filter form the explorer16) the system works during 30 to 60 seconds. I tried several kind of filters.
I connected the AN and OC pin with a scope to see what is happening. In the beginning I see the square wave from the OC, but then the voltage drops down and there is no signal any more.
Casparus
Attachments
ADCLP145PWM.mdl
(28.7 KiB) Downloaded 150 times


Return to “dsPIC Peripherals”

Who is online

Users browsing this forum: No registered users and 1 guest