Skip to content

Commit

Permalink
[bsp][pico]: support pwm adc iic for pico rtduino (RT-Thread#8512)
Browse files Browse the repository at this point in the history
  • Loading branch information
Z8MAN8 authored Jan 28, 2024
1 parent 06d3f29 commit c9abc1b
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 75 deletions.
49 changes: 30 additions & 19 deletions bsp/raspberry-pico/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,27 @@ menu "Onboard Peripheral Drivers"
default y
endif

config BSP_USING_ARDUINO
config BSP_USING_ARDUINO
bool "Compatible with Arduino Ecosystem (RTduino)"
select PKG_USING_RTDUINO
select BSP_USING_UART0
select BSP_UART0_TX_PIN_0
select BSP_UART0_RX_PIN_1
select BSP_USING_UART1
select BSP_UART1_TX_PIN_8
select BSP_UART1_RX_PIN_9
select BSP_USING_GPIO
select BSP_USING_ADC
select BSP_USING_ADC0
select BSP_USING_ADC1
select BSP_USING_ADC2
select BSP_USING_PWM
select BSP_USING_PWM0
select BSP_USING_PWM1
select BSP_USING_PWM2
select BSP_USING_PWM3
select BSP_USING_PWM4
select BSP_USING_PWM5
select BSP_USING_PWM6
select BSP_USING_PWM7
select BSP_USING_I2C
select BSP_USING_I2C0
imply RTDUINO_USING_SERVO
default n

config BSP_USING_ON_CHIP_FLASH
Expand Down Expand Up @@ -121,7 +132,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "uart1 tx pin number (GP)"
depends on BSP_USING_UART1
default BSP_UART1_TX_PIN_4
default BSP_UART1_TX_PIN_8
config BSP_UART1_TX_PIN_4
bool "4"
config BSP_UART1_TX_PIN_8
Expand All @@ -135,7 +146,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "uart1 rx pin number (GP)"
depends on BSP_USING_UART1
default BSP_UART1_RX_PIN_5
default BSP_UART1_RX_PIN_9
config BSP_UART1_RX_PIN_5
bool "5"
config BSP_UART1_RX_PIN_9
Expand Down Expand Up @@ -393,7 +404,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice A pin number (GP)"
depends on BSP_USING_PWM0
default BSP_PWM0_A_PIN_0
default BSP_PWM0_A_PIN_16
config BSP_PWM0_A_PIN_0
bool "0"
config BSP_PWM0_A_PIN_16
Expand All @@ -406,7 +417,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice B pin number (GP)"
depends on BSP_USING_PWM0
default BSP_PWM0_B_PIN_1
default BSP_PWM0_B_PIN_17
config BSP_PWM0_B_PIN_1
bool "1"
config BSP_PWM0_B_PIN_17
Expand All @@ -431,7 +442,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice A pin number (GP)"
depends on BSP_USING_PWM1
default BSP_PWM1_A_PIN_2
default BSP_PWM1_A_PIN_18
config BSP_PWM1_A_PIN_2
bool "2"
config BSP_PWM1_A_PIN_18
Expand All @@ -444,7 +455,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice B pin number (GP)"
depends on BSP_USING_PWM1
default BSP_PWM1_B_PIN_3
default BSP_PWM1_B_PIN_19
config BSP_PWM1_B_PIN_3
bool "3"
config BSP_PWM1_B_PIN_19
Expand All @@ -469,7 +480,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice A pin number (GP)"
depends on BSP_USING_PWM2
default BSP_PWM2_A_PIN_4
default BSP_PWM2_A_PIN_20
config BSP_PWM2_A_PIN_4
bool "4"
config BSP_PWM2_A_PIN_20
Expand All @@ -482,7 +493,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice B pin number (GP)"
depends on BSP_USING_PWM2
default BSP_PWM2_B_PIN_5
default BSP_PWM2_B_PIN_21
config BSP_PWM2_B_PIN_5
bool "5"
config BSP_PWM2_B_PIN_21
Expand All @@ -507,7 +518,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice A pin number (GP)"
depends on BSP_USING_PWM3
default BSP_PWM3_A_PIN_6
default BSP_PWM3_A_PIN_22
config BSP_PWM3_A_PIN_6
bool "6"
config BSP_PWM3_A_PIN_22
Expand All @@ -520,7 +531,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice B pin number (GP)"
depends on BSP_USING_PWM3
default BSP_PWM3_B_PIN_7
default BSP_PWM3_B_PIN_23
config BSP_PWM3_B_PIN_7
bool "7"
config BSP_PWM3_B_PIN_23
Expand All @@ -545,7 +556,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice A pin number (GP)"
depends on BSP_USING_PWM4
default BSP_PWM4_A_PIN_8
default BSP_PWM4_A_PIN_24
config BSP_PWM4_A_PIN_8
bool "8"
config BSP_PWM4_A_PIN_24
Expand All @@ -558,7 +569,7 @@ menu "On-chip Peripheral Drivers"
choice
prompt "pwm slice B pin number (GP)"
depends on BSP_USING_PWM4
default BSP_PWM4_B_PIN_9
default BSP_PWM4_B_PIN_25
config BSP_PWM4_B_PIN_9
bool "9"
config BSP_PWM4_B_PIN_25
Expand Down Expand Up @@ -604,7 +615,7 @@ menu "On-chip Peripheral Drivers"
endchoice
config BSP_PWM5_B_PIN
int
default 10 if BSP_PWM5_B_PIN_10
default 11 if BSP_PWM5_B_PIN_11
default 27 if BSP_PWM5_B_PIN_27
config BSP_PWM5_A_ALL
bool "pwm slice use all A pin"
Expand Down
10 changes: 5 additions & 5 deletions bsp/raspberry-pico/applications/arduino_main.cpp
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
* Copyright (c) 2006-2023, RT-Thread Development Team
* Copyright (c) 2006-2024, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-11-27 ShichengChu first version
* 2024-01-25 ShichengChu first version
*/

#include <Arduino.h>

void setup(void)
{
/* put your setup code here, to run once: */
Serial.begin();
Serial2.begin();
Serial2.println("Hello RTduino!");
}

void loop(void)
{
/* put your main code here, to run repeatedly: */
Serial.println("Hello Arduino!");
delay(800);
delay(1000);
}
39 changes: 21 additions & 18 deletions bsp/raspberry-pico/applications/arduino_pinout/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,28 +25,31 @@ Hardware Drivers Config --->
| 1 (D1) | P | 是/否 | Serial-RX,默认被RT-Thread的UART设备框架uart1接管 |
| 2 (D2) | P | 是/否 | |
| 3 (D3) | P | 是/否 | |
| 4 (D4) | P | 是/否 | |
| 5 (D5) | P | 是/否 | |
| 4 (D4) | P | 是/否 | I2C0-SDA,默认被RT-Thread的I2C设备框架i2c0接管 |
| 5 (D5) | P | 是/否 | I2C0-SCL,默认被RT-Thread的I2C设备框架i2c0接管 |
| 6 (D6) | P | 是/否 | |
| 7 (D7) | P | 是/否 | |
| 8 (D8) | P | 是/否 | Serial2-TX,默认被RT-Thread的UART设备框架uart2接管 |
| 9 (D9) | P | 是/否 | Serial2-RX,默认被RT-Thread的UART设备框架uart2接管 |
| 10 (D10) | P | 是/否 | |
| 11 (D11) | P | 是/否 | |
| 12 (D12) | P | 是/否 | |
| 13 (D13) | P | 是/否 | |
| 14 (D14) | P | 是/否 | |
| 15 (D15) | P | 是/否 | |
| 16 (D16) | P | 是/否 | |
| 17 (D17) | P | 是/否 | |
| 18 (D18) | P | 是/否 | |
| 19 (D19) | P | 是/否 | |
| 20 (D20) | P | 是/否 | |
| 21 (D21) | P | 是/否 | |
| 22 (D22) | P | 是/否 | |
| 23 (D23) | P | 是/否 | 板载用户LED |
| 24 (D24) | P | 是/否 | |
| 25 (D25) | P | 是/否 | |
| 10 (D10) | P | 是/否 | PWM5-CH0,默认被RT-Thread的PWM设备框架pwm5接管 |
| 11 (D11) | P | 是/否 | PWM5-CH1,默认被RT-Thread的PWM设备框架pwm5接管 |
| 12 (D12) | P | 是/否 | PWM6-CH0,默认被RT-Thread的PWM设备框架pwm6接管 |
| 13 (D13) | P | 是/否 | PWM6-CH1,默认被RT-Thread的PWM设备框架pwm6接管 |
| 14 (D14) | P | 是/否 | PWM7-CH0,默认被RT-Thread的PWM设备框架pwm7接管 |
| 15 (D15) | P | 是/否 | PWM7-CH1,默认被RT-Thread的PWM设备框架pwm7接管 |
| 16 (D16) | P | 是/否 | PWM0-CH0,默认被RT-Thread的PWM设备框架pwm0接管 |
| 17 (D17) | P | 是/否 | PWM0-CH1,默认被RT-Thread的PWM设备框架pwm0接管 |
| 18 (D18) | P | 是/否 | PWM1-CH0,默认被RT-Thread的PWM设备框架pwm1接管 |
| 19 (D19) | P | 是/否 | PWM1-CH1,默认被RT-Thread的PWM设备框架pwm1接管 |
| 20 (D20) | P | 是/否 | PWM2-CH0,默认被RT-Thread的PWM设备框架pwm2接管 |
| 21 (D21) | P | 是/否 | PWM2-CH1,默认被RT-Thread的PWM设备框架pwm2接管 |
| 22 (D22) | P | 是/否 | PWM3-CH0,默认被RT-Thread的PWM设备框架pwm3接管 |
| 23 (D23) | P | 是/否 | PWM3-CH1,默认被RT-Thread的PWM设备框架pwm3接管 |
| 24 (D24) | P | 是/否 | PWM4-CH0,默认被RT-Thread的PWM设备框架pwm4接管 |
| 25 (D25) | P | 是/否 | PWM4-CH1,默认被RT-Thread的PWM设备框架pwm4接管 |
| 26 (A0) | P | 是/否 | ADC0-CH0,默认被RT-Thread的ADC设备框架adc0接管 |
| 27 (A1) | P | 是/否 | ADC1-CH1,默认被RT-Thread的ADC设备框架adc1接管 |
| 28 (A2) | P | 是/否 | ADC2-CH2,默认被RT-Thread的ADC设备框架adc2接管 |

> 注意:
>
Expand Down
51 changes: 27 additions & 24 deletions bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/*
* Copyright (c) 2006-2023, RT-Thread Development Team
* Copyright (c) 2006-2024, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-11-27 ShichengChu first version
* 2024-01-25 ShichengChu first version
*/

#include <Arduino.h>
Expand All @@ -21,30 +21,33 @@
*/
const pin_map_t pin_map_table[]=
{
{D0, 0, "uart1"}, /* Serial-TX */
{D1, 1, "uart1"}, /* Serial-RX */
{D0, 0, "uart0"}, /* Serial-TX */
{D1, 1, "uart0"}, /* Serial-RX */
{D2, 2},
{D3, 3},
{D4, 4},
{D5, 5},
{D4, 4, "i2c0"}, /* I2C-SDA (Wire) */
{D5, 5, "i2c0"}, /* I2C-SCL (Wire) */
{D6, 6},
{D7, 7},
{D8, 8, "uart2"}, /* Serial2-TX */
{D9, 9, "uart2"}, /* Serial2-RX */
{D10, 10},
{D11, 11},
{D12, 12},
{D13, 13},
{D14, 14},
{D15, 15},
{D16, 16},
{D17, 17},
{D18, 18},
{D19, 19},
{D20, 20},
{D21, 21},
{D22, 22},
{D23, 25}, /* LED_BUILTIN */
{D24, 26},
{D25, 27},
{D8, 8, "uart1"}, /* Serial2-TX */
{D9, 9, "uart1"}, /* Serial2-RX */
{D10, 10, "pwm5", 0}, /* PWM */
{D11, 11, "pwm5", 1}, /* PWM */
{D12, 12, "pwm6", 0}, /* PWM */
{D13, 13, "pwm6", 1}, /* PWM */
{D14, 14, "pwm7", 0}, /* PWM */
{D15, 15, "pwm7", 1}, /* PWM */
{D16, 16, "pwm0", 0}, /* PWM */
{D17, 17, "pwm0", 1}, /* PWM */
{D18, 18, "pwm1", 0}, /* PWM */
{D19, 19, "pwm1", 1}, /* PWM */
{D20, 20, "pwm2", 0}, /* PWM */
{D21, 21, "pwm2", 1}, /* PWM */
{D22, 22, "pwm3", 0}, /* PWM */
{D23, 23, "pwm3", 1}, /* PWM */
{D24, 24, "pwm4", 0}, /* PWM */
{D25, 25, "pwm4", 1}, /* LED_BUILTIN */
{A0, 26, "adc0", 0}, /* ADC */
{A1, 27, "adc1", 1}, /* ADC */
{A2, 28, "adc2", 2}, /* ADC */
};
11 changes: 7 additions & 4 deletions bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/*
* Copyright (c) 2006-2023, RT-Thread Development Team
* Copyright (c) 2006-2024, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-11-27 ShichengChu first version
* 2024-01-25 ShichengChu first version
*/

#ifndef Pins_Arduino_h
Expand Down Expand Up @@ -38,12 +38,15 @@
#define D23 (23)
#define D24 (24)
#define D25 (25)
#define A0 (26)
#define A1 (27)
#define A2 (28)

#define F_CPU 133000000L /* CPU:133MHz */

#define LED_BUILTIN D23 /* Default Built-in LED */
#define LED_BUILTIN D25 /* Default Built-in LED */

/* Serial2 : P-TX P-RX */
#define RTDUINO_SERIAL2_DEVICE_NAME "uart2"
#define RTDUINO_SERIAL2_DEVICE_NAME "uart1"

#endif /* Pins_Arduino_h */
10 changes: 5 additions & 5 deletions bsp/raspberry-pico/drivers/drv_adc.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@
#define __DRV_ADC_H__

#include <rtdevice.h>
#if defined BSP_USING_ADC
#ifdef BSP_USING_ADC

/* pico i2c dirver class */
static struct pico_adc
/* pico adc dirver class */
struct pico_adc
{
struct rt_adc_ops ops;
struct rt_adc_device pico_adc_device;
};

/* pico config class */
static struct pico_adc_config
struct pico_adc_config
{
rt_uint8_t pin;
rt_uint8_t channel;
Expand All @@ -46,7 +46,7 @@ static struct pico_adc_config
}
#endif
#ifdef BSP_USING_ADC2
#define ADC1_CONFIG \
#define ADC2_CONFIG \
{ \
.pin = 28, \
.channel = 2, \
Expand Down
1 change: 1 addition & 0 deletions bsp/raspberry-pico/drivers/drv_pwm.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include "drv_pwm.h"
#include "board.h"
#include "hardware/pwm.h"
#include "hardware/gpio.h"

#ifdef BSP_USING_PWM

Expand Down

0 comments on commit c9abc1b

Please sign in to comment.