2015年07月27日

RX630 TPUでPWM

RX630

ルネサスのRX630マイコンを使用してPWMの確認を行いました。

メーカから提供されているPWMのサンプルはMTU(マルチファンクションタイマパルスユニット)を使用したものですが、今回はTPUa(16ビットタイマパルスユニット)を使用しての確認です。

 ・PWMモードは1です。
 ・TIOCA0 と TIOCC0 を使用。

基本的には「ユーザーズマニュアル」のPWMの項目の説明に沿っていますが
赤字の「端子機能制御レジスタ(PxnPFS)」については忘れがちです。

TIOCC0端子(PWM設定周期1kHz・20%)の波形は↓

RX630 TPUでPWM

ソースコードは下記のような感じになります。

/************************************************
*    RX630 16ビットタイマパルスユニット(TPUa)
*        PWM(Mode:1) TIOCA0/TIOCC0 設定
************************************************/
void Init_16bitTimer_PWM(void)
{
    /* Configure pin  as an output */
    PORT3.PDR.BIT.B2 = 1;        // (TIOCC0)
    PORTA.PDR.BIT.B0 = 1;        // (TIOCA0)
    
    /* Configure pin for peripheral function */
    PORT3.PMR.BIT.B2 = 1;
    PORTA.PMR.BIT.B0 = 1;

    /* Enable write to PFSWE bit */
    MPC.PWPR.BYTE = 0x00;
    /* Disable write protection to PFS registers */
    MPC.PWPR.BYTE = 0x40;
    
    /* Configure pin for TIOCxx outputs */
    MPC.P32PFS.BYTE = 0x03;
    MPC.PA0PFS.BYTE = 0x03;

    
    /* Enable write protection to PFS registers */
    MPC.PWPR.BYTE = 0x80;

    /* Protection off */
    SYSTEM.PRCR.WORD = 0xA503;

    /* Cancel the TPU0 module clock stop mode */
    MSTP_TPU0 = 0;
        
    /* Protection on */
    SYSTEM.PRCR.WORD = 0xA500;
    
    /* Select PCLK(48Mz)/16, clock counted at
       falling edge, no clearing of TCNT counter. */
    TPU0.TCR.BYTE = 0x22;
    
    /* Initial TICCxx output is 1 and toggled at
       TGRA compare match. toggled by TRGB. */
    TPU0.TIORH.BYTE = 0x37;
    TPU0.TIORL.BYTE = 0x37;
    
    /* Operate timers in pwm mode-1 */
    TPU0.TMDR.BYTE = 0x02;
    
    /* Use TGRA/TGRC to set the pwm cycle to
       PCLK(48Mz)/16/3000 = 1kHz */
    TPU0.TGRA = 3000;
    TPU0.TGRC = 3000;
    
    /* TGRB/TGRD used to set the pwm duty cycle to xx% */
    TPU0.TGRB = 300;    // 10% (3000*0.1=300)
    TPU0.TGRD = 600;    // 20%
    
    /* Start the TSTR counter */    
    TPUA.TSTR.BIT.CST0 = 0x1;
}






同じカテゴリー(マイコン開発)の記事
Fusion PCBでエレキー
Fusion PCBでエレキー(2020-04-01 19:00)


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
RX630 TPUでPWM
    コメント(0)