[bsp/at32] 1.add support hwi2c driver, 2.update all firmware libraries. (#9241)

* 1.add support hwi2c driver, 2.update all firmware libraries

* update some files and fixed errors

* add support a423 at hwi2c driver

* add .ignore_format.yml
This commit is contained in:
sheltonyu
2024-07-24 23:22:50 +08:00
committed by GitHub
parent c8914c7f2b
commit d1c7712bfb
410 changed files with 13985 additions and 3598 deletions
+1
View File
@@ -41,6 +41,7 @@ AT32A403A-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1/2 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -265,6 +265,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -129,6 +129,60 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32A423-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF10 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -277,6 +277,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -19,5 +19,6 @@ void at32_msp_hwtmr_init(void *instance);
void at32_msp_can_init(void *instance);
void at32_msp_usb_init(void *instance);
void at32_msp_dac_init(void *instance);
void at32_msp_i2c_init(void *instance);
#endif /* __AT32_MSP_H__ */
@@ -134,6 +134,68 @@ void at32_msp_spi_init(void *instance)
/* add others */
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_PWM
void at32_msp_tmr_init(void *instance)
+1
View File
@@ -41,6 +41,7 @@ AT32F402-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| PWM | 支持 | TMR1/2 |
+51
View File
@@ -288,6 +288,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -127,6 +127,69 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_10;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE3, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_PWM
void at32_msp_tmr_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F403A-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1/2 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -265,6 +265,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -129,6 +129,60 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F405-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| PWM | 支持 | TMR1/2 |
+51
View File
@@ -307,6 +307,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -127,6 +127,69 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_10;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE3, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_PWM
void at32_msp_tmr_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F407-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1/2 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -282,6 +282,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -131,6 +131,60 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F413-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF5 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1/2 |
| PWM | 支持 | TMR1/2 |
+36
View File
@@ -253,6 +253,42 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -129,6 +129,44 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F415-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF5 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| PWM | 支持 | TMR1/2 |
+36
View File
@@ -268,6 +268,42 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -129,6 +129,44 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F421-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| PWM | 支持 | TMR1 |
+36
View File
@@ -203,6 +203,42 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -16,5 +16,6 @@ void at32_msp_spi_init(void *instance);
void at32_msp_tmr_init(void *instance);
void at32_msp_adc_init(void *instance);
void at32_msp_hwtmr_init(void *instance);
void at32_msp_i2c_init(void *instance);
#endif /* __AT32_MSP_H__ */
@@ -116,6 +116,50 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_1);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_1);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_1);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_1);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_PWM
void at32_msp_tmr_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F423-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF10 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -277,6 +277,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -19,5 +19,6 @@ void at32_msp_hwtmr_init(void *instance);
void at32_msp_can_init(void *instance);
void at32_msp_usb_init(void *instance);
void at32_msp_dac_init(void *instance);
void at32_msp_i2c_init(void *instance);
#endif /* __AT32_MSP_H__ */
@@ -135,6 +135,69 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_PWM
void at32_msp_tmr_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F425-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PF7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1 |
| PWM | 支持 | TMR1/2 |
+36
View File
@@ -277,6 +277,42 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -18,5 +18,6 @@ void at32_msp_adc_init(void *instance);
void at32_msp_hwtmr_init(void *instance);
void at32_msp_can_init(void *instance);
void at32_msp_usb_init(void *instance);
void at32_msp_i2c_init(void *instance);
#endif /* __AT32_MSP_H__ */
@@ -135,6 +135,50 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_1);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_1);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_1);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_1);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_PWM
void at32_msp_tmr_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F437-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PH7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1/2 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -314,6 +314,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -126,6 +126,69 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+1
View File
@@ -41,6 +41,7 @@ AT32F437-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
| UART | 支持 | USART1/2/3 |
| GPIO | 支持 | PA0...PH7 |
| IIC | 支持 | GPIO模拟I2C |
| HWIIC | 支持 | I2C1/2/3 |
| SPI | 支持 | SPI1/2 |
| ADC | 支持 | ADC1/2 |
| DAC | 支持 | DAC1 |
+51
View File
@@ -331,6 +331,57 @@ menu "On-chip Peripheral Drivers"
endif
endif
menuconfig BSP_USING_HARD_I2C
bool "Enable I2C BUS (hardware driver)"
default n
select RT_USING_I2C
if BSP_USING_HARD_I2C
config BSP_USING_HARD_I2C1
bool "Enable I2C1 BUS"
default n
config BSP_I2C1_TX_USING_DMA
bool "Enable I2C1 TX DMA"
depends on BSP_USING_HARD_I2C1
default n
config BSP_I2C1_RX_USING_DMA
bool "Enable I2C1 RX DMA"
depends on BSP_USING_HARD_I2C1
select BSP_I2C1_TX_USING_DMA
default n
config BSP_USING_HARD_I2C2
bool "Enable I2C2 BUS"
default n
config BSP_I2C2_TX_USING_DMA
bool "Enable I2C2 TX DMA"
depends on BSP_USING_HARD_I2C2
default n
config BSP_I2C2_RX_USING_DMA
bool "Enable I2C2 RX DMA"
depends on BSP_USING_HARD_I2C2
select BSP_I2C2_TX_USING_DMA
default n
config BSP_USING_HARD_I2C3
bool "Enable I2C3 BUS"
default n
config BSP_I2C3_TX_USING_DMA
bool "Enable I2C3 TX DMA"
depends on BSP_USING_HARD_I2C3
default n
config BSP_I2C3_RX_USING_DMA
bool "Enable I2C3 RX DMA"
depends on BSP_USING_HARD_I2C3
select BSP_I2C3_TX_USING_DMA
default n
endif
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -127,6 +127,69 @@ void at32_msp_spi_init(void *instance)
}
#endif /* BSP_USING_SPI */
#ifdef BSP_USING_HARD_I2C
void at32_msp_i2c_init(void *instance)
{
gpio_init_type gpio_init_struct;
i2c_type *i2c_x = (i2c_type *)instance;
gpio_default_para_init(&gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
#ifdef BSP_USING_HARD_I2C1
if(I2C1 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C2
if(I2C2 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
}
#endif
#ifdef BSP_USING_HARD_I2C3
if(I2C3 == i2c_x)
{
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOC, &gpio_init_struct);
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
}
#endif
/* add others */
}
#endif /* BSP_USING_HARD_I2C */
#ifdef BSP_USING_SDIO
void at32_msp_sdio_init(void *instance)
{
+15
View File
@@ -0,0 +1,15 @@
# files format check exclude path, please follow the instructions below to modify;
# If you need to exclude an entire folder, add the folder path in dir_path;
# If you need to exclude a file, add the path to the file in file_path.
dir_path:
- AT32A403A_Firmware_Library
- AT32A423_Firmware_Library
- AT32F402_405_Firmware_Library
- AT32F403A_407_Firmware_Library
- AT32F413_Firmware_Library
- AT32F415_Firmware_Library
- AT32F421_Firmware_Library
- AT32F423_Firmware_Library
- AT32F425_Firmware_Library
- AT32F435_437_Firmware_Library
@@ -179,6 +179,50 @@ void system_core_clock_update(void)
system_core_clock = system_core_clock >> div_value;
}
/**
* @brief reduce power consumption initialize
* If OTGHS is not used, call this function to reduce power consumption.
* PLL or HEXT should be enabled when calling this function.
*
* If OTGHS is required, initialize OTGHS to reduce power consumption,
* without the need to call this function.
* @param none
* @retval none
*/
void reduce_power_consumption(void)
{
volatile uint32_t delay = 0x34BC0;
if(CRM->ctrl_bit.hextstbl)
{
*(__IO uint32_t *)0x40023878 = 0x00;
}
else if(CRM->ctrl_bit.pllstbl == SET)
{
CRM->pllcfg_bit.plluen = TRUE;
while(CRM->ctrl_bit.pllstbl != SET || CRM->ctrl_bit.pllustbl != SET);
*(__IO uint32_t *)0x40023878 = 0x10;
}
else
{
/* the pll or hext need to be enable */
return;
}
CRM->ahben1 |= 1 << 29;
*(__IO uint32_t *)0x40040038 = 0x210000;
*(__IO uint32_t *)0x4004000C |= 0x40000000;
*(__IO uint32_t *)0x40040804 &= ~0x2;
while(delay --)
{
if(*(__IO uint32_t *)0x40040808 & 0x1)
break;
}
*(__IO uint32_t *)0x40040038 |= 0x400000;
*(__IO uint32_t *)0x40040E00 |= 0x1;
*(__IO uint32_t *)0x40040038 &= ~0x10000;
*(__IO uint32_t *)0x40023878 = 0x0;
return;
}
/**
* @}
*/
@@ -52,6 +52,7 @@ extern unsigned int system_core_clock; /*!< system clock frequency (core clock)
extern void SystemInit(void);
extern void system_core_clock_update(void);
extern void reduce_power_consumption(void);
/**
* @}
@@ -178,6 +178,7 @@ uint16_t acc_read_c1(void);
uint16_t acc_read_c2(void);
uint16_t acc_read_c3(void);
flag_status acc_flag_get(uint16_t acc_flag);
flag_status acc_interrupt_flag_get(uint16_t acc_flag);
void acc_flag_clear(uint16_t acc_flag);
/**
@@ -1,7 +1,7 @@
/**
**************************************************************************
* @file at32f425_adc.h
* @brief at32f425 adc header file
* @file at32f402_405_adc.h
* @brief at32f402_405 adc header file
**************************************************************************
* Copyright notice & Disclaimer
*
@@ -34,7 +34,7 @@ extern "C" {
/* Includes ------------------------------------------------------------------*/
#include "at32f402_405.h"
/** @addtogroup AT32F425_periph_driver
/** @addtogroup AT32F402_405_periph_driver
* @{
*/
@@ -688,6 +688,7 @@ flag_status adc_preempt_software_trigger_status_get(adc_type *adc_x);
uint16_t adc_ordinary_conversion_data_get(adc_type *adc_x);
uint16_t adc_preempt_conversion_data_get(adc_type *adc_x, adc_preempt_channel_type adc_preempt_channel);
flag_status adc_flag_get(adc_type *adc_x, uint8_t adc_flag);
flag_status adc_interrupt_flag_get(adc_type *adc_x, uint8_t adc_flag);
void adc_flag_clear(adc_type *adc_x, uint32_t adc_flag);
void adc_ordinary_oversample_enable(adc_type *adc_x, confirm_state new_state);
void adc_preempt_oversample_enable(adc_type *adc_x, confirm_state new_state);
@@ -1018,6 +1018,7 @@ can_error_record_type can_error_type_record_get(can_type* can_x);
uint8_t can_receive_error_counter_get(can_type* can_x);
uint8_t can_transmit_error_counter_get(can_type* can_x);
void can_interrupt_enable(can_type* can_x, uint32_t can_int, confirm_state new_state);
flag_status can_interrupt_flag_get(can_type* can_x, uint32_t can_flag);
flag_status can_flag_get(can_type* can_x, uint32_t can_flag);
void can_flag_clear(can_type* can_x, uint32_t can_flag);
@@ -461,8 +461,7 @@ typedef enum
CRM_CLKOUT_ADC = 0x11, /*!< output adcclk to clkout pin */
CRM_CLKOUT_HICK = 0x12, /*!< output high speed internal clock to clkout pin */
CRM_CLKOUT_LICK = 0x13, /*!< output low speed internal clock to clkout pin */
CRM_CLKOUT_LEXT = 0x14, /*!< output low speed external crystal to clkout pin */
CRM_CLKOUT_USBHS = 0x15 /*!< output usbhsclk to clkout pin */
CRM_CLKOUT_LEXT = 0x14 /*!< output low speed external crystal to clkout pin */
} crm_clkout_select_type;
/**
@@ -1179,6 +1178,7 @@ void crm_reset(void);
void crm_lext_bypass(confirm_state new_state);
void crm_hext_bypass(confirm_state new_state);
flag_status crm_flag_get(uint32_t flag);
flag_status crm_interrupt_flag_get(uint32_t flag);
error_status crm_hext_stable_wait(void);
void crm_hick_clock_trimming_set(uint8_t trim_value);
void crm_hick_clock_calibration_set(uint8_t cali_value);

Some files were not shown because too many files have changed in this diff Show More