F28335 Timer1 & Timer2 Construction - Using via Simulink

조회 수: 16 (최근 30일)
omer cakmak
omer cakmak . 2019년 4월 19일
편집: Burak Caykenari . 2020년 10월 23일
Hello everyone;
Before the question let me introduce my tools;
C2000 board: F28335
Matlab Model : R2017b
Code Composer: CCS7.4
My question is about using CPU Timer1 and CPU Timer 2 options of this dsp via simulink. As you already now, there are 3 cpu timer in F28335(You can see the
the following figure).
But when I build a Simulink model that containes ADC, ePWM, SCI blocks, model creates(configures) only CPU Timer 0. When I examine the examples of matlab I found "Asynchronous Scheduling" model but in that model 2 different ePwm modules are used as timers because they can trigger subsystems via interrupts. However At the end still timer 0 is used for all timing operations. For example the generated code is seen like this:
My question is how can I implement Cpu Timer1 and Cpu Timer 2 in model so that I can get a code output like following code segment: ? I want to config CPU Timer 1 and CPU Timer 2. and also I don't want ePWM blocks as timers or interrupt sources.
Thanks in advance.
Best regards;
Ömer

채택된 답변

Antonin
Antonin 2019년 4월 23일
To add to Venkatesh's response:
  • You can use regular sample times in your Simulink model to achieve 3 tasks of 100Hz, 1kHz and 10kHz, just mention the different sample times in the blocks that you are using. We create a multitasking scheduler baser on CPU Timer 0 that can schedule the 3 tasks. The fastest task has the highest priority and can preempt the slowest. you can also run in single tasking mode which disables the preemption. I would suggest that you exhaust this somution prior to using other CPU Timers. Enable sample time colors in your model to quickly watch which portion is executing at which rate. Use the rate transition block to send data from one rate to the other.
  • Simulink Coder custom code blocks can be used to configure CPU timers (https://www.mathworks.com/help/rtw/ref/systemoutputs.html). You can also use the Memory Copy block to access these timers (https://www.mathworks.com/help/ecoder/ref/memorycopy.html). Keep in mind that CPU Timer 1 is used by our profiler when enabled.
  • You don't have to use ePWM interrupts if you don't need them.
I hope it helps,
Antonin.
  댓글 수: 3
omer cakmak
omer cakmak 2019년 5월 2일
Hi Antonin,
Thank you for these valuable informations. The answer you gave was extremely descriptive and clear so it will be very beneficial for us. Now we re-model our blocks as you suggest. In any problem case, I may inform you.
Thanks again;
Ömer Ç.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Venkatesh Chilapur
Venkatesh Chilapur 2019년 4월 22일
Hi,
Use of Timer1 and Timer2 may not be possible directly from simulink using modelling approach.
Instead a custom code approach using custom code blocks can be used to configure the timer, setup the ISR routine and write the ISR logic. We have custom code blocks under simulink coder that can help.
Could you please share details on why ePWM module are not used for generating interrupts but CPU timers?
Regards,
Venkatesh C
  댓글 수: 2
Burak Caykenari
Burak Caykenari 2020년 10월 23일
편집: Burak Caykenari 님. 2020년 10월 23일
Ömer Bey Merhaba ,
Bu konuda sormak istediğim sorular var size. Mümkünse yardımcı olup dönüş sağlar mısınız ?
caykenarib@hotmail.com
Çok teşekkürler.

댓글을 달려면 로그인하십시오.

제품


릴리스

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by