[bsp][pico]: support pwm adc iic for pico rtduino (#8512)

This commit is contained in:
Shicheng Chu 2024-01-28 21:02:26 +08:00 committed by GitHub
parent 06d3f29035
commit c9abc1ba25
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 96 additions and 75 deletions

View File

@ -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"

View File

@ -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>
@ -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);
}

View File

@ -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接管 |
> 注意:
>

View File

@ -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>
@ -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 */
};

View File

@ -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 */

View File

@ -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;
@ -46,7 +46,7 @@ static struct pico_adc_config
}
#endif
#ifdef BSP_USING_ADC2
#define ADC1_CONFIG \
#define ADC2_CONFIG \
{ \
.pin = 28, \
.channel = 2, \

View File

@ -10,6 +10,7 @@
#include "drv_pwm.h"
#include "board.h"
#include "hardware/pwm.h"
#include "hardware/gpio.h"
#ifdef BSP_USING_PWM