STM32 TIMERS #1. PWM Output || DMA

Sdílet
Vložit
  • čas přidán 10. 06. 2024
  • Purchase the Products shown in this video from :: controllerstech.store
    ________________________________________________________________________________________
    Check out more Videos on STM32 TIMERS • STM32 TIMERS
    To download the code, goto controllerstech.com/pwm-in-st...
    Interface WS2812 RGB LED :::: • WS2812 LED with STM32 ...
    ________________________________________________________________________________________
    ****** SUPPORT US BY DONATING*****
    paypal.me/controllertech
    ******Join the Membership******
    / @controllerstech
    Join the Discord Server / discord
    Join the Telegram Group t.me/controllerstechdiscuss
    Follow me on Instagram / controllerstech
    For more info, visit www.controllerstech.com
  • Věda a technologie

Komentáře • 97

  • @God_controls_all
    @God_controls_all Před 2 lety +1

    ControllersTech! You never disappoint. Thanks a bunch....

  • @luizazeredo5197
    @luizazeredo5197 Před 2 lety +6

    Suas aulas e demostração me ajudam muito ,muito obrigado, sou do Brasil 🇧🇷 e agradeço muito 👍👍

  • @yunesrahem2715
    @yunesrahem2715 Před rokem +1

    the best explenation i have seen , thank you !

  • @enginar4900
    @enginar4900 Před rokem

    Thank you very much, I searched just for this all the day. Problem solved!

  • @firstprinciples9854
    @firstprinciples9854 Před 2 lety +4

    Such quality content. Nice work. Thanks.

  • @offensivebias3965
    @offensivebias3965 Před 8 měsíci

    Thanks for the formulas , there so easy to understand .

  • @lukeearthcrawler896
    @lukeearthcrawler896 Před 2 lety

    Wonderful tutorial, as usual! :D

  • @knightdaleknights44
    @knightdaleknights44 Před 2 lety +5

    Because the output control value changes the moment the CCRx value is reached and the moment the timer overflows, and the timer doesn't overflow until the clock edge after the ARR value is reached, the Duty Cycle should equal CCRx/(ARR+1) and not CCRx/ARR. By adding the "-1" to the "Period" configuration parameter, you are technically setting the ARR value to be one less than what your calculation is using. So when you set the period equal to "10-1", the ARR value is technically 9 (and not 10 as you suggest. And so the equation should have (ARR+1) in the denominator.

  • @user-jy6pn7mn4u
    @user-jy6pn7mn4u Před 2 lety

    Great tutorial bro. THX

  • @mail87523
    @mail87523 Před 2 lety

    Great tutorial !!!

  • @omaiswaseem122
    @omaiswaseem122 Před 10 měsíci

    Best tutorial was so simple to implement

  • @CaliBeta
    @CaliBeta Před 2 lety

    great video 👏

  • @byatse3013
    @byatse3013 Před rokem

    very nice tutorial thank you

  • @dimaabualfoul9281
    @dimaabualfoul9281 Před 10 měsíci

    Thank you very much! I applied each step but with the DMA part I got only 5 pulses (10,..50)us with a period of 200us, is there a specific setting I should add to the DMA controller? thanks again

  • @user-mt3bg4we3q
    @user-mt3bg4we3q Před 2 lety

    Nice Video. Thanks.

  • @SergioLopez-vy7xm
    @SergioLopez-vy7xm Před rokem

    very good job

  • @sangitamainali2844
    @sangitamainali2844 Před rokem

    can you tell me ...what will be the prescaler and counter period for 1 min?

  • @shivendrayadav18
    @shivendrayadav18 Před rokem

    thanku so much

  • @user-de5du8yb2s
    @user-de5du8yb2s Před 9 měsíci +2

    7:16 what program did you use to see pulse wave??

  • @Tristoo
    @Tristoo Před 2 lety

    ooh damn, when I heard the robot voice I thought this was gonna be a garbage video but your english is actually spot on. perhaps speed it up just a little bit in the future?

  • @alexandrev.3332
    @alexandrev.3332 Před rokem +2

    There is a error, if you not put DMA Request Settings changing from Normal to Circular the 10 different PWM not work.

  • @sudhansumtripathy
    @sudhansumtripathy Před rokem

    hi, I am a beginner , can you please explain, how many clocks are there, what is internal and external clock, what are the channels, PLL,

  • @huseyinulupinar392
    @huseyinulupinar392 Před 2 lety +2

    First of all, it's a very good video. but for example can it take a value processed inside the while loop as pwm with dma?

    • @ControllersTech
      @ControllersTech  Před 2 lety +1

      Yes why won't it ?
      Just update the pwmData at any point in the entire code.
      The DMA has been assigned with the address if the buffer, not the value.
      So its doesn't matter what value you pass.

    • @huseyinulupinar392
      @huseyinulupinar392 Před 2 lety

      @@ControllersTech You are perfect :) thanks...

  • @TeraHertze
    @TeraHertze Před rokem

    useful thanks

  • @sridharmakkapati6586
    @sridharmakkapati6586 Před 2 lety

    What's tool used to see the wave form

  • @kartikeyyendhe1840
    @kartikeyyendhe1840 Před 4 měsíci

    How do you select the value of prescaler??

  • @truongtansang7500
    @truongtansang7500 Před 2 lety +2

    Thanks for this video. I have a question. What type of Logic Analyzer in this video?

  • @janmipunkalani5349
    @janmipunkalani5349 Před 2 lety

    can you tell me, what is the name of that signal-generating software

  • @MsSuperasdfghjkl
    @MsSuperasdfghjkl Před 10 měsíci

    Hi.
    I have a STM32L462 custom board with 40Mhz clock setup. I need to generate pwm for 9600,19200,38400 and 76800 hz. First 3 works fine but 76800 doesnt work. Used a counter to verify. It counts upto 50270 or 51000 only. Its not a very high frequency. So why is there a issue!? Can someone help me!?

  • @yudhahamdiarzi5553
    @yudhahamdiarzi5553 Před 2 lety +2

    Great tutorial, can I use it to control DC motor?

    • @timowolff1105
      @timowolff1105 Před 2 lety +1

      Certainly!

    • @Hfgh564
      @Hfgh564 Před 2 lety

      This is exactly what you need to use to control step motors. Also same technique with floating duty cycle used to make breathing leds

  • @icollided
    @icollided Před 6 měsíci

    What software are you using to get the waveforms? I've been using an actual oscilloscope, and it is fine, but having that built into your software looks nice.

    • @ControllersTech
      @ControllersTech  Před 6 měsíci +1

      Its actually a hardware, logic analyzer. The software is complementary.

    • @icollided
      @icollided Před 6 měsíci

      @@ControllersTech cool! Thanks. That actially just reminded me that the scope I got has software thay goes with it that I never bothered installing. I should probably try it out.

  • @surajjadhav4529
    @surajjadhav4529 Před 2 lety +4

    Which software you used to see waveforms?

    • @ControllersTech
      @ControllersTech  Před 2 lety +3

      I used a logic analyzer. The software is complementary

  • @hsenaed6894
    @hsenaed6894 Před 2 lety

    Please explain to me the xor mode

  • @sajalqasim3540
    @sajalqasim3540 Před 4 měsíci +1

    can we use pwm in fsk transmitter? if yes can you please guide us a little?

    • @ControllersTech
      @ControllersTech  Před 4 měsíci

      You can use, but you need another hardware which takes the pwm as input and modifies the frequency of the signal based on the input width.

  • @ndidikenneth5135
    @ndidikenneth5135 Před rokem

    Pls can u upload a use case of multibufferstartIT to generate pwm . I don't really get it and documentation is very poor from st not a single example

  • @rahulrajeeva1863
    @rahulrajeeva1863 Před 6 měsíci

    where to get the user manual, which document you found the "14.4.11 TIM1 and TIM8 prescaler"

    • @ControllersTech
      @ControllersTech  Před 6 měsíci

      User manual for your controller can be downloaded from ST's website. You should have it before you start programming.

  • @abdulhai2201
    @abdulhai2201 Před 2 lety

    Use 32f103 ADC read pwm control

  • @bakisha
    @bakisha Před 2 lety

    What is the lower limit of DMA controller? Is it able to push data to CCR1 register, if prescaler is 0 (1) and ARR register is 15 (16 ticks)?

    • @ControllersTech
      @ControllersTech  Před 2 lety +1

      You mean how fast the DMA would be able to transfer the data ?
      There is no definitive answer to that. Also i haven't seen anywhere ST mentioning this.
      It depends on a lot of factors like your CPU clock, your GPIO speed, the data size etc.
      So best way is to test yourself.

    • @bakisha
      @bakisha Před 2 lety

      @@ControllersTech I was just curious what is the limit of stm32f103c8. But you are right, testing is best way to see. I'll test it on bluepill (clone), so tnx for the video.

  • @mail87523
    @mail87523 Před 2 lety

    How to make an ac dimmer with PWM please make video !!!

  • @alexandrev.3332
    @alexandrev.3332 Před rokem

    I am using logic analyzer like yours, i put trigger and see the different pwms 10%, 20% to 90% one time, not in cycle, don´t work like you explain, stops and do only one time this presentation. Have to set OUTPUT COMPARE PRELOAD to enable because if you set to disable will not work. So this works only one time and not repeat the signals.

  • @pranavdhage9858
    @pranavdhage9858 Před 2 lety

    Can we change frequency (variable frequency)as we changed the duty cycle?

  • @statstopfinish
    @statstopfinish Před 2 lety

    How to use DMA to change pulse frequency? DMA changes the value in the CCR register, how to switch the DMA to change in the ARR register?I want to use Timers and DMA to generate pulses for a stepper motor. For a normal start of the stepper motor, you need to smoothly increase the frequency to the specified one and also stop it by smoothly reducing the frequency. STM has Application note AN2820 how to implement this using DMA and timer. But I want to see a video tutorial on how to do it. Can you give a tutorial on how to change the frequency and tune the duty cycle using DMA? thanks

  • @mehmetcan2240
    @mehmetcan2240 Před 2 lety

    What is the name of the program you are using to see the signal

  • @FunSpark-Horizon
    @FunSpark-Horizon Před 2 lety +1

    Does anyone know why STM32 MCUs are so rare to find for the past couple of months?

    •  Před 2 lety

      There is a chip shortage. Too high demand for chips and the production is lagging behind. I saw certain chips with >52 weeks lead time...

  • @17_gilangrizkisaputra87
    @17_gilangrizkisaputra87 Před 6 měsíci +1

    What is the name of your application that you use to see PWM signal waves?

  • @nicolosantilio4649
    @nicolosantilio4649 Před 2 lety +1

    Hi, what if I want to control a 50Hz motor with an stm32 which has 16Mhz Clock?

    • @ControllersTech
      @ControllersTech  Před 2 lety +1

      Use prescalar and arr to bring the clock down to 50 Hz.
      Check out the servo motor video in this playlist

    • @nicolosantilio4649
      @nicolosantilio4649 Před 2 lety

      @@ControllersTech ok so to adapt your video to my needing a i would do 16MHz/50Hz = 320 000. To divide it between the Prescaler and ARR i could do PSC = 8-1 and ARR = 40000-1.
      But then how to set the duty cycle (ex. 50%) ? Tmr1->CCR = 20000?

    • @ControllersTech
      @ControllersTech  Před 2 lety

      Yes you got it correct

    • @nicolosantilio4649
      @nicolosantilio4649 Před 2 lety

      @@ControllersTech oh thanks ;) 🙏

    • @nicolosantilio4649
      @nicolosantilio4649 Před 2 lety +1

      @@ControllersTech So the reason why you are able to write 30, 50 and they are actually 30% and 50% duty cycle is just because you have ARR = 100 right? So if I wanted to have the same thing I could write tmR1-> CCR = (x) / 40000 * 100 ? Or am I wrong?

  • @prasadgawade7752
    @prasadgawade7752 Před rokem

    ACTUALLY AUTO INSTRUCTIONS ARE NOT COMMING IN MY PROGRAMMING WHAT I DO? ALTHOW I TAP CRTL+SPACE.
    PLEASE REPLY. IT SHOWS NO DEFAULT PROPOSAL

    • @ControllersTech
      @ControllersTech  Před rokem +1

      The cubeide does not auto complete the instructions, you have to press the ctrl + space.
      Whenever you generate the code from cubemx, build the project once before writing the code.

    • @prasadgawade7752
      @prasadgawade7752 Před rokem

      @@ControllersTech thank you I will try.

  • @dhruvsharma6031
    @dhruvsharma6031 Před 2 lety

    is this window 11 ??

  • @jansijanu4483
    @jansijanu4483 Před rokem

    Hi
    I have tried same method only. But I am not getting any pulse, can you please help me

    • @ControllersTech
      @ControllersTech  Před rokem

      check if you have started the timer in PWM mode or not.

  • @alexandrev.3332
    @alexandrev.3332 Před rokem

    I can send my code to see if there is another problem to run like yours

  • @tandungbui5694
    @tandungbui5694 Před 8 měsíci

    7:10 what's the name of app that show the wave?

  • @embedded_eng
    @embedded_eng Před 7 měsíci

    This is why it does not work for some other users;
    HAL_TIM_PWM_Start_DMA function have to be in the while loop, Otherwise it does not output any signal.

    • @ControllersTech
      @ControllersTech  Před 6 měsíci

      It shouldn't. That defies the purpose of calling the DMA function.

  • @alexandrev.3332
    @alexandrev.3332 Před rokem

    Hello, I tryed the part of the code using DMA on STM32F407VET6 and don´t work. I did all the steps, i need help. The other things worked, but DMA not, maybe there is some more configuration to do but i not discover.

    • @ControllersTech
      @ControllersTech  Před rokem

      Check if the interrupt for the respective DMA channel is enabled in the NVIC settings. If not, then enable it and give it some priority.
      I think the cube have changed some configurations in the recent updates.

    • @alexandrev.3332
      @alexandrev.3332 Před rokem

      @@ControllersTech DMA2 Stream1 Global Interrupt in NVIC is gray and maked but i can´t clean or set, not possible. My version of Cube IDE is 1.10.1

    • @alexandrev.3332
      @alexandrev.3332 Před rokem

      @@ControllersTech It runs one time, but not repeat the pulses again and again, only one time.

    • @alexandrev.3332
      @alexandrev.3332 Před rokem

      @@ControllersTech i did but the pwms appear but one time only and with trigger

    • @ControllersTech
      @ControllersTech  Před rokem

      Need to see the code.
      Either open a thread on the website, or ask in the telegram/discord groups. Links are in the description

  • @brothersofficial7926
    @brothersofficial7926 Před rokem

    There are showing an error during debug of code - ''no st-link detected please connect st-link and start the debug session''. How to solve, plz guide to overcome from this error

    • @ControllersTech
      @ControllersTech  Před rokem

      As the error says. Connect the st link.

    • @brothersofficial7926
      @brothersofficial7926 Před rokem

      Sir another question - from where we can see the PWM pulse after debugging of that code... I mean do we need to install another application??or can we get that in lDE only??

    • @brothersofficial7926
      @brothersofficial7926 Před rokem

      @@ControllersTech how i link them

    • @ControllersTech
      @ControllersTech  Před rokem

      You need to have some hardware like oscilloscope or at least a signal analyzer.
      Then just connect the pwm output to the analyzer and view the waveform in it's software

    • @brothersofficial7926
      @brothersofficial7926 Před rokem

      @@ControllersTech thanks for all

  • @luismoiseslopezlopez9329

    oh, then that´s the reason that I can´t watch the first video about PWM