Skip to content

Commit 09df3eb

Browse files
committed
Changed PWM period setting register for RZ/A1
1 parent 7021733 commit 09df3eb

File tree

1 file changed

+15
-33
lines changed

1 file changed

+15
-33
lines changed

targets/TARGET_RENESAS/TARGET_RZ_A1XX/pwmout_api.c

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -114,36 +114,22 @@ typedef struct {
114114
__IO uint16_t * pulse1;
115115
__IO uint16_t * pulse2;
116116
__IO uint16_t * period1;
117+
__IO uint16_t * period2;
118+
__IO uint8_t * tior;
117119
__IO uint8_t * tcr;
118120
__IO uint8_t * tmdr;
119121
int max_period;
120122
} st_mtu2_ctrl_t;
121123

122124
static st_mtu2_ctrl_t mtu2_ctl[] = {
123-
{ TIOC0A, &MTU2TGRA_0, &MTU2TGRC_0, &MTU2TGRB_0, &MTU2TCR_0, &MTU2TMDR_0, 125000 }, // PWM_TIOC0A
124-
{ TIOC0C, &MTU2TGRC_0, &MTU2TGRA_0, &MTU2TGRD_0, &MTU2TCR_0, &MTU2TMDR_0, 125000 }, // PWM_TIOC0C
125-
{ TIOC1A, &MTU2TGRA_1, NULL , &MTU2TGRB_1, &MTU2TCR_1, &MTU2TMDR_1, 503000 }, // PWM_TIOC1A
126-
{ TIOC2A, &MTU2TGRA_2, NULL , &MTU2TGRB_2, &MTU2TCR_2, &MTU2TMDR_2, 2000000 }, // PWM_TIOC2A
127-
{ TIOC3A, &MTU2TGRA_3, &MTU2TGRC_3, &MTU2TGRB_3, &MTU2TCR_3, &MTU2TMDR_3, 2000000 }, // PWM_TIOC3A
128-
{ TIOC3C, &MTU2TGRC_3, &MTU2TGRA_3, &MTU2TGRD_3, &MTU2TCR_3, &MTU2TMDR_3, 2000000 }, // PWM_TIOC3C
129-
{ TIOC4A, &MTU2TGRA_4, &MTU2TGRC_4, &MTU2TGRB_4, &MTU2TCR_4, &MTU2TMDR_4, 2000000 }, // PWM_TIOC4A
130-
{ TIOC4C, &MTU2TGRC_4, &MTU2TGRA_4, &MTU2TGRD_4, &MTU2TCR_4, &MTU2TMDR_4, 2000000 }, // PWM_TIOC4C
131-
};
132-
133-
static __IO uint8_t *TIORH_MATCH[] = {
134-
&MTU2TIORH_0,
135-
&MTU2TIOR_1,
136-
&MTU2TIOR_2,
137-
&MTU2TIORH_3,
138-
&MTU2TIORH_4,
139-
};
140-
141-
static __IO uint8_t *TIORL_MATCH[] = {
142-
&MTU2TIORL_0,
143-
NULL,
144-
NULL,
145-
&MTU2TIORL_3,
146-
&MTU2TIORL_4,
125+
{ TIOC0A, &MTU2TGRA_0, &MTU2TGRC_0, &MTU2TGRB_0, &MTU2TGRD_0, &MTU2TIORH_0, &MTU2TCR_0, &MTU2TMDR_0, 125000 }, // PWM_TIOC0A
126+
{ TIOC0C, &MTU2TGRC_0, &MTU2TGRA_0, &MTU2TGRB_0, &MTU2TGRD_0, &MTU2TIORL_0, &MTU2TCR_0, &MTU2TMDR_0, 125000 }, // PWM_TIOC0C
127+
{ TIOC1A, &MTU2TGRA_1, NULL , &MTU2TGRB_1, NULL , &MTU2TIOR_1 , &MTU2TCR_1, &MTU2TMDR_1, 503000 }, // PWM_TIOC1A
128+
{ TIOC2A, &MTU2TGRA_2, NULL , &MTU2TGRB_2, NULL , &MTU2TIOR_2 , &MTU2TCR_2, &MTU2TMDR_2, 2000000 }, // PWM_TIOC2A
129+
{ TIOC3A, &MTU2TGRA_3, &MTU2TGRC_3, &MTU2TGRB_3, &MTU2TGRD_3, &MTU2TIORH_3, &MTU2TCR_3, &MTU2TMDR_3, 2000000 }, // PWM_TIOC3A
130+
{ TIOC3C, &MTU2TGRC_3, &MTU2TGRA_3, &MTU2TGRB_3, &MTU2TGRD_3, &MTU2TIORL_3, &MTU2TCR_3, &MTU2TMDR_3, 2000000 }, // PWM_TIOC3C
131+
{ TIOC4A, &MTU2TGRA_4, &MTU2TGRC_4, &MTU2TGRB_4, &MTU2TGRD_4, &MTU2TIORH_4, &MTU2TCR_4, &MTU2TMDR_4, 2000000 }, // PWM_TIOC4A
132+
{ TIOC4C, &MTU2TGRC_4, &MTU2TGRA_4, &MTU2TGRB_4, &MTU2TGRD_4, &MTU2TIORL_4, &MTU2TCR_4, &MTU2TMDR_4, 2000000 }, // PWM_TIOC4C
147133
};
148134

149135
static uint16_t init_mtu2_period_ch[5] = {0};
@@ -381,11 +367,7 @@ void pwmout_period_us(pwmout_t* obj, int us) {
381367
}
382368
wk_cycle = (uint32_t)(wk_cycle_mtu2 / 1000000);
383369

384-
if (((uint8_t)p_mtu2_ctl->port & 0x0F) == 0x02) {
385-
tmp_tcr_up = 0xC0;
386-
} else {
387-
tmp_tcr_up = 0x40;
388-
}
370+
tmp_tcr_up = 0x40;
389371
if ((obj->ch == 4) || (obj->ch == 3)) {
390372
tmp_tstr_st = (1 << (obj->ch + 3));
391373
} else {
@@ -396,12 +378,12 @@ void pwmout_period_us(pwmout_t* obj, int us) {
396378
MTU2TSTR &= ~tmp_tstr_st;
397379
wk_last_cycle = *p_mtu2_ctl->period1;
398380
*p_mtu2_ctl->tcr = tmp_tcr_up | wk_cks;
399-
*TIORH_MATCH[obj->ch] = 0x21;
400-
if ((obj->ch == 0) || (obj->ch == 3) || (obj->ch == 4)) {
401-
*TIORL_MATCH[obj->ch] = 0x21;
402-
}
381+
*p_mtu2_ctl->tior = 0x65;
403382
// Set period
404383
*p_mtu2_ctl->period1 = (uint16_t)wk_cycle;
384+
if (p_mtu2_ctl->period2 != NULL) {
385+
*p_mtu2_ctl->period2 = (uint16_t)wk_cycle;
386+
}
405387
// Set duty again
406388
set_mtu2_duty_again(p_mtu2_ctl->pulse1, wk_last_cycle, wk_cycle);
407389
if (p_mtu2_ctl->pulse2 != NULL) {

0 commit comments

Comments
 (0)