Skip to content

Commit c5b01bf

Browse files
committed
Add PWM pin for GR-LYCHEE
1 parent 9c8d263 commit c5b01bf

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_GR_LYCHEE/PeripheralNames.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ typedef enum {
5151
PWM_TIOC0A = 0x20,
5252
PWM_TIOC0C,
5353
PWM_TIOC1A,
54+
PWM_TIOC1B,
5455
PWM_TIOC2A,
56+
PWM_TIOC2B,
5557
PWM_TIOC3A,
5658
PWM_TIOC3C,
5759
PWM_TIOC4A,

targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_GR_LYCHEE/PeripheralPins.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,14 @@ const PinMap PinMap_PWM[] = {
246246
{P7_9 , PWM_TIOC1A, 6},
247247
{P9_2 , PWM_TIOC1A, 5}, /* for 208QFP */
248248
{P2_7 , PWM_TIOC1A, 3},
249+
{P9_3 , PWM_TIOC1B, 5}, /* for 208QFP */
250+
{P4_0 , PWM_TIOC1B, 3},
251+
{P2_6 , PWM_TIOC2A, 3},
252+
{P5_14 , PWM_TIOC2A, 4},
253+
{P7_0 , PWM_TIOC2A, 5},
254+
{P9_4 , PWM_TIOC2A, 5}, /* for 208QFP */
255+
{P9_5 , PWM_TIOC2B, 5}, /* for 208QFP */
256+
{P4_1 , PWM_TIOC2B, 3},
249257
{P6_7 , PWM_TIOC3A, 5},
250258
{P2_5 , PWM_TIOC3A, 3},
251259
{P3_11 , PWM_TIOC3A, 3},

targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_RZ_A1H/PeripheralNames.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ typedef enum {
5454
PWM_TIOC0A = 0x20,
5555
PWM_TIOC0C,
5656
PWM_TIOC1A,
57+
PWM_TIOC1B,
5758
PWM_TIOC2A,
59+
PWM_TIOC2B,
5860
PWM_TIOC3A,
5961
PWM_TIOC3C,
6062
PWM_TIOC4A,

targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_VK_RZ_A1H/PeripheralNames.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ typedef enum {
5454
PWM_TIOC0A = 0x20,
5555
PWM_TIOC0C,
5656
PWM_TIOC1A,
57+
PWM_TIOC1B,
5758
PWM_TIOC2A,
59+
PWM_TIOC2B,
5860
PWM_TIOC3A,
5961
PWM_TIOC3C,
6062
PWM_TIOC4A,

targets/TARGET_RENESAS/TARGET_RZ_A1XX/pwmout_api.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,9 @@ static st_mtu2_ctrl_t mtu2_ctl[] = {
125125
{ TIOC0A, &MTU2TGRA_0, &MTU2TGRC_0, &MTU2TGRB_0, &MTU2TGRD_0, &MTU2TIORH_0, &MTU2TCR_0, &MTU2TMDR_0, 125000 }, // PWM_TIOC0A
126126
{ TIOC0C, &MTU2TGRC_0, &MTU2TGRA_0, &MTU2TGRB_0, &MTU2TGRD_0, &MTU2TIORL_0, &MTU2TCR_0, &MTU2TMDR_0, 125000 }, // PWM_TIOC0C
127127
{ TIOC1A, &MTU2TGRA_1, NULL , &MTU2TGRB_1, NULL , &MTU2TIOR_1 , &MTU2TCR_1, &MTU2TMDR_1, 503000 }, // PWM_TIOC1A
128+
{ TIOC1B, &MTU2TGRB_1, NULL , &MTU2TGRA_1, NULL , &MTU2TIOR_1 , &MTU2TCR_1, &MTU2TMDR_1, 503000 }, // PWM_TIOC1B
128129
{ TIOC2A, &MTU2TGRA_2, NULL , &MTU2TGRB_2, NULL , &MTU2TIOR_2 , &MTU2TCR_2, &MTU2TMDR_2, 2000000 }, // PWM_TIOC2A
130+
{ TIOC2B, &MTU2TGRB_2, NULL , &MTU2TGRA_2, NULL , &MTU2TIOR_2 , &MTU2TCR_2, &MTU2TMDR_2, 2000000 }, // PWM_TIOC2B
129131
{ TIOC3A, &MTU2TGRA_3, &MTU2TGRC_3, &MTU2TGRB_3, &MTU2TGRD_3, &MTU2TIORH_3, &MTU2TCR_3, &MTU2TMDR_3, 2000000 }, // PWM_TIOC3A
130132
{ TIOC3C, &MTU2TGRC_3, &MTU2TGRA_3, &MTU2TGRB_3, &MTU2TGRD_3, &MTU2TIORL_3, &MTU2TCR_3, &MTU2TMDR_3, 2000000 }, // PWM_TIOC3C
131133
{ TIOC4A, &MTU2TGRA_4, &MTU2TGRC_4, &MTU2TGRB_4, &MTU2TGRD_4, &MTU2TIORH_4, &MTU2TCR_4, &MTU2TMDR_4, 2000000 }, // PWM_TIOC4A
@@ -250,7 +252,11 @@ void pwmout_write(pwmout_t* obj, float value) {
250252
} else {
251253
if ((wk_pulse == wk_cycle) || (wk_pulse == 0)) {
252254
MTU2TSTR &= ~tmp_tstr_st;
253-
*p_mtu2_ctl->tior = 0x65;
255+
if (((uint8_t)p_mtu2_ctl->port & 0x0F) == 0x01) {
256+
*p_mtu2_ctl->tior = 0x56;
257+
} else {
258+
*p_mtu2_ctl->tior = 0x65;
259+
}
254260
}
255261
}
256262
*p_mtu2_ctl->pulse1 = (uint16_t)((float)wk_cycle * value);
@@ -392,7 +398,11 @@ void pwmout_period_us(pwmout_t* obj, int us) {
392398
}
393399
wk_cycle = (uint32_t)(wk_cycle_mtu2 / 1000000);
394400

395-
tmp_tcr_up = 0x40;
401+
if (((uint8_t)p_mtu2_ctl->port & 0x0F) == 0x01) {
402+
tmp_tcr_up = 0x20;
403+
} else {
404+
tmp_tcr_up = 0x40;
405+
}
396406
if ((obj->ch == 4) || (obj->ch == 3)) {
397407
tmp_tstr_st = (1 << (obj->ch + 3));
398408
} else {
@@ -414,7 +424,11 @@ void pwmout_period_us(pwmout_t* obj, int us) {
414424
set_mtu2_duty_again(p_mtu2_ctl->pulse2, wk_last_cycle, wk_cycle);
415425
}
416426
// Set mode
417-
*p_mtu2_ctl->tmdr = 0x02; // PWM mode 1
427+
if (((uint8_t)p_mtu2_ctl->port & 0x0F) == 0x01) {
428+
*p_mtu2_ctl->tmdr = 0x03; // PWM mode 2
429+
} else {
430+
*p_mtu2_ctl->tmdr = 0x02; // PWM mode 1
431+
}
418432
// Counter Start
419433
MTU2TSTR |= tmp_tstr_st;
420434
// Save for future use

0 commit comments

Comments
 (0)