![Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima: 3 koraka Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima: 3 koraka](https://i.howwhatproduce.com/images/010/image-27969-j.webp)
Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
![Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima](https://i.howwhatproduce.com/images/010/image-27969-1-j.webp)
![Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima](https://i.howwhatproduce.com/images/010/image-27969-2-j.webp)
![Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima Generiranje PWM signala visoke razlučivosti za RC servo uređaje sa STM32 uređajima](https://i.howwhatproduce.com/images/010/image-27969-3-j.webp)
Trenutno gradim RC odašiljač/prijemnik na temelju SX1280 RF čipa. Jedan od ciljeva projekta je da želim 12 -bitnu servo rezoluciju od štapova do servosa. Djelomično zato što moderni digitalni servo uređaji imaju 12-bitnu razlučivost, drugo, vrhunski odašiljač ionako koristi 12 bita. Istraživao sam kako mogu generirati PWM signale visoke razlučivosti na STM32 uređajima. Trenutno koristim crnu pilulu (STM32F103C8T8) za prototip.
Korak 1: Popis dijelova
Hardver
- Bilo koja razvojna ploča STM32F103 (plava pilula, crna pilula itd.)
- USB banka za napajanje kao izvor napajanja
- STM32 programer (Segger j-links, ST-LINK/V2 ili jednostavno st-link klon)
Softver
- STM32CubeMX
- Atolični TrueSTUDIO za STM32
- Izvor projekta iz githuba
Korak 2: Očigledno rješenje
![Očigledno rješenje Očigledno rješenje](https://i.howwhatproduce.com/images/010/image-27969-4-j.webp)
![Očigledno rješenje Očigledno rješenje](https://i.howwhatproduce.com/images/010/image-27969-5-j.webp)
![Očigledno rješenje Očigledno rješenje](https://i.howwhatproduce.com/images/010/image-27969-6-j.webp)
Vjerojatno je najjednostavnije rješenje upotrijebiti jedan od mjerača vremena koji može generirati PWM signale, poput TIM1-3 na STM32F103. Za moderan digitalni servo brzina kadrova može se spustiti na oko 5 ms, ali za stari analogni servo trebao bi biti 20 ms ili 50 Hz. Dakle, kao najgori mogući scenarij generirajmo to. Uz 72 MHz takt i 16 -bitnu razlučivost brojača vremena moramo postaviti predskaler timera na minimalno 23 kako bismo pokrili brzinu od 20 ms. Odabrao sam 24 jer tada za 20 ms moram postaviti brojač točno na 60000. Na snimkama zaslona možete vidjeti postavke CubeMX -a i generirane PWM signale od 1 i 1,5 ms. Nažalost, za 1 ms brojač timera trebao bi biti postavljen na 3000, što bi nam dalo samo 11 bitnu razlučivost. Nije loše, ali cilj je bio 12 -bitni, pa pokušajmo nešto drugo.
Naravno, ako bih odabrao mikro kontroler s 32 -bitnim brojačem vremena, poput STM32L476 ova rezolucija može biti mnogo veća i problem bi bio riješen.
No ovdje bih želio predložiti alternativno rješenje koje će dodatno povećati razlučivost čak i na STM32F103.
Korak 3: Kaskadni mjerači vremena za veću rezoluciju
![Kaskadni mjerači vremena za veću rezoluciju Kaskadni mjerači vremena za veću rezoluciju](https://i.howwhatproduce.com/images/010/image-27969-7-j.webp)
![Kaskadni mjerači vremena za veću rezoluciju Kaskadni mjerači vremena za veću rezoluciju](https://i.howwhatproduce.com/images/010/image-27969-8-j.webp)
![Kaskadni mjerači vremena za veću rezoluciju Kaskadni mjerači vremena za veću rezoluciju](https://i.howwhatproduce.com/images/010/image-27969-9-j.webp)
Glavni problem s prethodnim rješenjem je taj što je brzina kadrova (20 ms) relativno visoka u odnosu na stvarno generirani PWM signal (između 1 i 2 ms), pa gubimo neke vrijedne bitove za preostalih 18 ms kada čekamo sljedeći okvir. To se može riješiti kaskadnim mjeračima vremena pomoću značajke povezivanja timera za sinkronizaciju.
Ideja je da ću koristiti TIM1 kao master za generiranje frame rate -a (20 ms) i TIM2, TIM3 za nošenje sa PWM signalima kao slave. Kad master aktivira podređene uređaje, oni generiraju samo PWM signal u jednom impulsnom načinu rada. Stoga u tim timerima moram pokriti samo 2 ms. Srećom, te timere možete staviti u hardver tako da za tu sinkronizaciju nije potrebna nikakva intervencija procesora, a također je i vrlo precizna, jitter je u ps području. Postavke CubeMX -a možete vidjeti na snimkama zaslona.
Kao što vidite, odabrao sam 3 kao preskalarne pa za 2 ms moram postaviti 48000 u brojaču timera. To nam daje 24000 za 1 ms, što je zapravo više od onoga što nam treba za 14 -bitnu razlučivost. Tadaaaa…
Za konačni rezultat pogledajte snimke zaslona osciloskopa u uvodu. Kanal 3 (ljubičasti) je prekid glavnog mjerača vremena koji će pokrenuti salve za generiranje jednog impulsa. Kanal 1 i 4 (žuti i zeleni snop) stvarni su PWM signali koje generiraju različiti mjerači vremena. Imajte na umu da su sinkronizirani, ali sinkronizirani su na zadnjim rubovima, to je zbog PWM moda 2. To nije problem jer je PWM stopa za određeni servo i dalje točna.
Druga je korist ovog rješenja to što bi promjena frame rate -a značila promjenu razdoblja samo u TIM1. Za moderne digitalne servomotore možete se spustiti na čak 200-300 Hz, ali molimo vas da pogledate priručnik za servo ako želite fino podesiti.
Preporučeni:
Generiranje umjetnosti iz komentara: 5 koraka (sa slikama)
![Generiranje umjetnosti iz komentara: 5 koraka (sa slikama) Generiranje umjetnosti iz komentara: 5 koraka (sa slikama)](https://i.howwhatproduce.com/images/002/image-5024-43-j.webp)
Generiranje umjetnosti iz komentara: Ovaj je projekt ambiciozan i želimo upotrijebiti neke od najspornijih dijelova interneta, odjeljke za komentare i sobe za chat kako bismo stvorili umjetnost. Također želimo učiniti projekt lako dostupnim kako bi se svatko mogao okušati u stvaranju
Generiranje tonova različitih vrsta pomoću matematičkih jednadžbi (MathsMusic) Arduino: 5 koraka
![Generiranje tonova različitih vrsta pomoću matematičkih jednadžbi (MathsMusic) Arduino: 5 koraka Generiranje tonova različitih vrsta pomoću matematičkih jednadžbi (MathsMusic) Arduino: 5 koraka](https://i.howwhatproduce.com/images/002/image-5485-40-j.webp)
Generiranje tonova različitih vrsta pomoću matematičkih jednadžbi (MathsMusic) Arduino: Opis projekta: Novo putovanje je započelo gdje se ideje mogu lako implementirati pomoću zajednice otvorenog koda (zahvaljujući Arduinu). Dakle, postoji način · Osvrnite se oko sebe i promatrajte svoju okolinu · Otkrijte probleme koje morate riješiti
Uradi sam krug NE555 za generiranje sinusnog vala: 6 koraka
![Uradi sam krug NE555 za generiranje sinusnog vala: 6 koraka Uradi sam krug NE555 za generiranje sinusnog vala: 6 koraka](https://i.howwhatproduce.com/images/004/image-10054-j.webp)
Uradi sam krug NE555 za generiranje sinusnog vala: Ovaj vodič vas uči kako DIY krug NE555 generirati sinusni val. Ovi pristupačni DIY kompleti od velike su vam pomoći da razumijete kako kondenzatori mogu raditi s otpornicima kako bi kontrolirali vrijeme punjenja i pražnjenja koje generira
Generiranje napona biciklom s ergometrom: 9 koraka (sa slikama)
![Generiranje napona biciklom s ergometrom: 9 koraka (sa slikama) Generiranje napona biciklom s ergometrom: 9 koraka (sa slikama)](https://i.howwhatproduce.com/images/002/image-5418-44-j.webp)
Generiranje napona s ergometarskim biciklom: Razrada projekta sastojala se u sastavljanju "igre" s ciljem pedaliranja u ergometarskom biciklu spojenom na generator i tornju od svjetiljki koje se aktiviraju s povećanjem brzine motora - što se događa prema bicikl
Pojačalo visoke kvalitete s USB napajanjem za mobilne uređaje (PAM8403): 3 koraka
![Pojačalo visoke kvalitete s USB napajanjem za mobilne uređaje (PAM8403): 3 koraka Pojačalo visoke kvalitete s USB napajanjem za mobilne uređaje (PAM8403): 3 koraka](https://i.howwhatproduce.com/images/002/image-4731-69-j.webp)
Pojačalo visoke kvalitete s USB napajanjem za mobilne uređaje (PAM8403): Imamo problema: niska razina zvuka prijenosnih zvučnika! buka zvučnika prijenosnih računala! Nemamo vanjsko napajanje! Ti su problemi relevantni za mnoge druge mobilne uređaje. Što možemo učiniti? Ideja! Možemo napraviti super pojačalo zvučnika sa