Jump to content

    
Sign in to follow this  
well_done

ШИМ в at90pwm3

Recommended Posts

PSC в at90pwm3 удобная вещь.Представляет собой ШИМ по типу: один счётчик-два регистра сравнения-два выхода.Т.е.записав в оба регистра одну величину по идее должны получить на выходах идентичные импульсы.

Собственно вопрос:в документации at90pwm2_3.pdf указано ,что при работе PSC в Center Aligned Mode импульсы на выходах в вышеуказанном случае должны быть в противофазе.В реальности же они абсолютно идентичны.

Вопрос конечно специфичный.В других темах по этому МК всё замерло на вопросах приобретения и программирования.Но хотелось бы знать ляп ли это Atmel и неизбежно ли внешнее инвертирование.

Если кто-то может прояснить буду очень признателен и возможно не только я.

Share this post


Link to post
Share on other sites

А erratа Пушкин читать будет?

 

5. PSC: Output Polarity in Centered Mode

In centered mode, PSCOUTn1 outputs are not inverted, so they are active at the same time as PSCOUTn0.

Workaround:

Use an external inverter (or a driver with inverting output) to drive the load on PSCOUTn1.

 

А errata там знатная, из 18 пунктов....

В tiny45 всего 5, зато какие...

Share this post


Link to post
Share on other sites

не могу запустить шим, что я делаю не так?

void PWM_ini(void)
{
	Start_pll_64_mega();
	Wait_pll_ready();
	//PSOC2 имеет возможность управлять мостом (четыре выхода)
	PSOC2|=(1<<POEN2D)//PSCOUT23 подключен к PSC2 
	     |(1<<POEN2B)//PSCOUT21 подключен к PSC2 
		 |(1<<POEN2C)//PSCOUT22 подключен к PSC2 
		 |(1<<POEN2A);//PSCOUT20 подключен к PSC2 
	PSOC2&=~(1<<POS23)//PSCOUT23 подключен к генератору В
		 |(1<<POS22);//PSCOUT22 подключен к генератору A
	//PSOC2&=~(1<<PSYNC2_0);PSOC2|=(1<<PSYNC2_1);//no synchronization signal
		
    PCNF2|=PSC_FOUR_RAMP//Four Ramp Mode
	     |(1<<PCLKSEL2)//выбираем CLK PLL дш. стр.162 таб.16-9
	     |OUTPUT_ACTIVE_LOW;//выходы закрыты
	
	PCTL2|=(1<<PBFM2)//ширина импульса будет меняться на On-Time 0 и On-Time 1.
		 |(1<< PAOC2B)//сигнал неисправности для генератора B действует на PSCOUT21 и  PSCOUT23
		 |(1<<PAOC2A);//сигнал неисправности для генератора A действует на PSCOUT20 и  PSCOUT22
	PCTL2|=(1<<PPRE20);PCTL2&=~(1<<PPRE21);//делитель CLK PLL на 4 дш. стр.162 таб.16-9
	PCTL2|=(1<<PRUN2);//запускаем PSC
	//генератор А
	//режим аварии 7 (остановка PSC и ожидание действия програмного обеспечения)
	PFRC2A|=(1<<PRFM2A0)|(1<<PRFM2A1)|(1<<PRFM2A2);PFRC2A&=~(1<<PRFM2A3);
	
	PFRC2A|=(1<<PFLTE2A)//шумоподавление в 4 цикла
	      |(1<<PELEV2A);//аварией будет появление 1 на выбраном канале
	
	//генератор В
	//режим аварии 7 (остановка PSC и ожидание действия програмного обеспечения)
	PFRC2B|=(1<<PRFM2B0)|(1<<PRFM2B1)|(1<<PRFM2B2);PFRC2B&=~(1<<PRFM2B3);
	
	PFRC2B|=(1<<PFLTE2B)//шумоподавление в 4 цикла
	      |(1<<PELEV2B);//аварией будет появление 1 на выбраном канале
	
	//PIM2|=(1<<PEOPE2);//когда этот бит установлен прерывание генерируется когда PSC 
	//достигает конца цикла (один цикл по сути это период)
	On_time=OCR2RA=OCR2RB=200;//ширина импульса
	OCR2SA=OCR2SB=50;//dead-time   
}

преобразователь мостовой. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this