Forum: Mikrocontroller und Digitale Elektronik Fast PWM mittels PLL


von Daniel L. (laberkeks)


Lesenswert?

Aloha,

arbeite gerade mit meinem AT90PWM3B rum und bin im Datenblatt im "Power 
Stage Controller"-Kapitel auf "fast PWM" gestoßen.

Hört sich spannend an und wollte es daher gleich mal ausprobieren...
1
int main(void)
2
{
3
  DDRD = (1<<PD0);  // Ausgang setzen
4
5
6
  //    Sync?     Sync?      PSCOUT01    PSCOUT00
7
  PSOC0 = (0<<PSYNC01)|(0<<PSYNC01)|(0<<POEN0B)|(1<<POEN0A);
8
  OCR0SAH = 0x00;  // setze PSCOUT0A bei 0x00;
9
  OCR0SAL = 0x00;
10
  OCR0RAH = 0x01;  // loesche PSCOUT0A bei 0x01FF
11
  OCR0RAL = 0xFF;
12
  PCNF0  = (0<<PMODE01)|(1<<PMODE00);  // Two Ramp Mode
13
  PCNF0 |= (1<<PCLKSEL0);        // select fast clock
14
15
16
  PLLCSR  = (1<<PLLF);  // =1: PLL output 64MHz;  =0: PLL output 32MHz
17
  PLLCSR |= (1<<PLLE);  // activating PLL
18
  _delay_us(100);      // after enabling PLL, it takes about 100ms the PLL to lock
19
  while( (PLLCSR & (1<<PLOCK)) == 0x00 );
20
21
22
//  while( ((~PLLCSR & (1<<PLOCK))>>PLOCK) );  // while bit is clear
23
//  PLLCSR |= (1<<PCKE);
24
25
  PCTL0 = (1<<PRUN0);    //starts running PSC 0
26
27
  while(1);
28
}

leider kann ich an PSCOUT00 kein PWM Signal messen. Habe ich irgendwas 
vergessen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hilft "AVR434: PSC Cookbook for AT90PWM devices" nicht weiter?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.