Obsah:
- Krok 1: Výběr mikrokontroléru
- Krok 2: KONFIGURACE CCP MODULU
- Krok 3: Konfigurace modulu Timer2 (registr TMR2)
- Krok 4: Konfigurace PR2 (časový registr Timer2)
- Krok 5: Konfigurace modulu CCPR1l
- Krok 6: Napište na sebe skicu MPLAB X IDE, kód je uveden níže
Video: Generování vlny PWM s mikrokontrolérem PIC: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
CO JE PWM?
STANDARDY PWM PRO MODULACI ŠÍŘKY PULZU je technika, pomocí které se mění šířka pulzu.
Abychom porozuměli tomuto konceptu, jasně zvažte hodinový impuls nebo jakýkoli signál čtvercové vlny, který má 50% pracovní cyklus, což znamená, že doba Ton a Toff je stejná. Celková doba, po kterou byl signál vysoký, a doba, po kterou byl signál nízký, se nazývá celkový časový úsek.
Pro výše uvedený obrázek má tato vlna pracovní cyklus 50%
Pracovní cyklus = (čas zapnutí / celkový čas)*100
ON time - čas, po který byl signál vysoký
VYPNUTÝ čas - časový nepřítel, jehož signál byl nízký Celkový čas - Celkový časový úsek pulzu (čas ZAP i VYP)
Krok 1: Výběr mikrokontroléru
Výběr vhodného mikrokontroléru pro projekt je základní součástí projektu Signály PWM lze generovat v mikrokontrolérech s kanály PWM (registry CCP). Pro tento projekt plánuji zůstat u pic16f877. níže si můžete stáhnout odkaz na datový list
Datový list PIC16F877a klikněte zde
Modul CCP je zodpovědný za produkci signálu PWM. CCP1 a CCP2 jsou multiplexovány s PORTC. PORTC je 8bitový široký obousměrný port. Odpovídající registr směru dat je TRISC. Nastavení TRISC bitu (= 1) způsobí, že se jako vstup použije odpovídající pin PORTC. Vymazáním bitu TRISC (= 0) se příslušný pin PORTC stane výstupem.
TRISC = 0; // Vymazáním tohoto bitu se jako výstup vytvoří PORTC
Krok 2: KONFIGURACE CCP MODULU
CCP - CAPTURE/COMPARE/PWM MODULES
Každý modul Capture/Compare/PWM (CCP) obsahuje 16bitový registr, který může fungovat jako:
• 16bitový registr zachycení
• 16bitový srovnávací registr
• Registr pracovního cyklu PWM Master/Slave
Konfigurujte registr CCP1CON do režimu PWM
Popis registru
CCPxCON Tento registr se používá ke konfiguraci modulu CCP pro provoz Capture/Compare/PWM.
CCPRxL Tento registr uchovává 8-Msb bitů PWM, nižší 2bitové budou součástí registru CCPxCON.
TMR2 Volně běžící čítač, který bude porovnáván s CCPR1L a PR2 pro generování výstupu PWM.
Nyní použiji binární reprezentaci bitů ke konfiguraci registru CCP1CON.
viz obrázek výše.
CCP1CON = 0b00001111;
Můžete také použít hexadecimální formát
CCP1CON = 0x0F; // konfigurace registru CCP1CON pro režim PWM
Krok 3: Konfigurace modulu Timer2 (registr TMR2)
Timer2 je 8bitový časovač s předřazeným a postcalujícím. Lze jej použít jako časovou základnu PWM pro režim PWM modulů CCP. Registr TMR2 je čitelný a zapisovatelný a je vymazán při každém resetu zařízení.
Zobrazí se registr T2CON
Předškála a měřítko upraví výstupní frekvenci generované vlny PWM.
Frequency = taktovací frekvence/(4*předzměňovač*(PR2-TMR2)*postscaler*počet)
Kde Tout = 1/frekvence
T2CON = 0b00000100;
Tím se vygeneruje krystal 2,5 KHz @ 1Mhz nebo 100KHz @ 4MHz (prakticky existuje omezení pro tuto frekvenci PWM, další podrobnosti viz konkrétní list)
hexadecimální zobrazení
T2CON = 0x04; // povolit T2CON bez konfigurace Prescaler a PostScale
Krok 4: Konfigurace PR2 (časový registr Timer2)
Modul Timer2 má 8bitový periodický registr PR2. Časovač 2 se zvyšuje od 00 h, dokud se neshoduje s PR2, a poté se resetuje na 00 h v dalším přírůstkovém cyklu. PR2 je čitelný a zapisovatelný registr. Po resetu je registr PR2 inicializován na FFh.
Nastavení vhodného rozsahu pro PR2 umožní použití ke změně pracovního cyklu generované vlny PWM
PR2 = 100; // Nastavením doby cyklu na 100 se mění pracovní cyklus od 0 do 100
Pro jednoduchost používám PR2 = 100 vytvořením CCPR1L = 80; Lze dosáhnout 80% pracovního cyklu.
Krok 5: Konfigurace modulu CCPR1l
Protože PR2 = 100, lze CCPR1l konfigurovat kdekoli mezi 0-100 a získat požadovaný pracovní cyklus.
Krok 6: Napište na sebe skicu MPLAB X IDE, kód je uveden níže
#zahrnout
void delay (int a) // funkce pro generování zpoždění {
pro (int i = 0; i <a; i ++)
{
pro (int j = 0; j <144; j ++);
}
}
neplatný hlavní ()
{TRISC = 0; // Vymazáním tohoto bitu se jako výstup vytvoří PORTC.
CCP1CON = 0x0F; // konfigurace registru CCP1CON pro režim PWM
T2CON = 0x04; // povolit T2CON bez konfigurace Prescaler a PostScale.
PR2 = 100; // Nastavením doby cyklu na 100 se mění pracovní cyklus od 0 do 100
zatímco (1) {
CCPR1L = 75; // generováno 75% zpoždění pracovního cyklu (1);
}
}
Také jsem provedl malou úpravu kódu, aby frekvence generované vlny PWM
Toto je kód simulovaný v proteusu a výstupní PWM vlna je zobrazena níže. Chcete -li to nahrát na své vývojové desky pro obrázky, použijte #include s vhodnými konfiguračními bity.
Děkuji
Doporučuje:
Generování umění z komentářů: 5 kroků (s obrázky)
Generování umění z komentářů: Tento projekt je ambiciózní, kde chceme k tvorbě umění použít některé z nejspornějších částí internetu, sekce komentářů a chatovací místnosti. Chceme také, aby byl projekt snadno dostupný, aby si každý mohl vyzkoušet generování
Generování signálu PWM s vysokým rozlišením pro RC serva se zařízeními STM32: 3 kroky
Generování signálu PWM s vysokým rozlišením pro RC serva se zařízeními STM32: V současné době stavím RC vysílač/přijímač na základě RF čipu SX1280. Jedním z cílů projektu je, že chci 12bitové rozlišení serva od páček až po serva. Částečně proto, že moderní digitální serva mají 12bitový reso
Generování tónů různých druhů pomocí matematických rovnic (MathsMusic) Arduino: 5 kroků
Generování tónů různých druhů pomocí matematických rovnic (MathsMusic) Arduino: Popis projektu: Začala nová cesta, kde lze nápady snadno implementovat pomocí komunity open source (díky Arduinu). Takže tady je cesta · Podívejte se kolem sebe a sledujte své okolí · Objevte problémy, které je třeba
DIY a NE555 obvod pro generování sinusové vlny: 6 kroků
DIY a NE555 obvod pro generování sinusoidy: Tento tutoriál vás naučí, jak vytvořit obvod NE555 pro generování sinusové vlny. Tyto cenově dostupné sady pro kutily vám velmi pomohou porozumět tomu, jak mohou kondenzátory pracovat s odpory pro řízení doby nabíjení a vybíjení, která může generovat
Skateboard s mikrokontrolérem PIC a LED: 8 kroků (s obrázky)
Skateboard s mikrokontrolérem PIC a diodami LED: Co získáte, když elektrotechnik postaví od začátku skateboard pro 13letý vánoční dárek? Získáte skateboard s osmi bílými LED diodami (světlomety), osmi červenými LED diodami (tailight), vše ovládané pomocí mikrořadiče PIC! A migruji