diff --git a/bsp/raspberry-pico/Kconfig b/bsp/raspberry-pico/Kconfig index 56bda50324..b254741c62 100644 --- a/bsp/raspberry-pico/Kconfig +++ b/bsp/raspberry-pico/Kconfig @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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" diff --git a/bsp/raspberry-pico/applications/arduino_main.cpp b/bsp/raspberry-pico/applications/arduino_main.cpp index d04447ae44..25169bef76 100644 --- a/bsp/raspberry-pico/applications/arduino_main.cpp +++ b/bsp/raspberry-pico/applications/arduino_main.cpp @@ -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 @@ -13,12 +13,12 @@ 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); } diff --git a/bsp/raspberry-pico/applications/arduino_pinout/README.md b/bsp/raspberry-pico/applications/arduino_pinout/README.md index 60e936910d..271ad36d91 100644 --- a/bsp/raspberry-pico/applications/arduino_pinout/README.md +++ b/bsp/raspberry-pico/applications/arduino_pinout/README.md @@ -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接管 | > 注意: > diff --git a/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c index 2bd98a1340..f497891722 100644 --- a/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c +++ b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c @@ -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 @@ -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 */ }; diff --git a/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h index 6d412fb493..efd89587f4 100644 --- a/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h +++ b/bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h @@ -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 @@ -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 */ diff --git a/bsp/raspberry-pico/drivers/drv_adc.h b/bsp/raspberry-pico/drivers/drv_adc.h index a566f688b1..24f75a5d9c 100644 --- a/bsp/raspberry-pico/drivers/drv_adc.h +++ b/bsp/raspberry-pico/drivers/drv_adc.h @@ -12,17 +12,17 @@ #define __DRV_ADC_H__ #include -#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; @@ -46,7 +46,7 @@ static struct pico_adc_config } #endif #ifdef BSP_USING_ADC2 -#define ADC1_CONFIG \ +#define ADC2_CONFIG \ { \ .pin = 28, \ .channel = 2, \ diff --git a/bsp/raspberry-pico/drivers/drv_pwm.c b/bsp/raspberry-pico/drivers/drv_pwm.c index 22251aa42a..1c30b9ae1a 100644 --- a/bsp/raspberry-pico/drivers/drv_pwm.c +++ b/bsp/raspberry-pico/drivers/drv_pwm.c @@ -10,6 +10,7 @@ #include "drv_pwm.h" #include "board.h" #include "hardware/pwm.h" +#include "hardware/gpio.h" #ifdef BSP_USING_PWM