summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHao Zhu <[email protected]>2018-12-13 14:18:26 +0800
committerHao Zhu <[email protected]>2018-12-13 14:18:26 +0800
commitcabf2f5ee56522cb2b3cbba75835ec75dff60b8c (patch)
tree3c67250880754684f663efd435d561950fb9057b
parente0c2bf09e3e4ffe6bfd4c27cd1c9a94081d57395 (diff)
添加i2c支持
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.c7
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.h9
-rw-r--r--bsp/stm32/stm32f767-fire-challenger/README.md13
-rw-r--r--bsp/stm32/stm32f767-fire-challenger/board/Kconfig72
4 files changed, 89 insertions, 12 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.c b/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.c
index 5f8e300d08..81ea714cf0 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.c
@@ -18,7 +18,7 @@
#define LOG_TAG "drv.i2c"
#include <drv_log.h>
-#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3)
+#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4)
#error "Please define at least one BSP_USING_I2Cx"
/* this driver can be disabled at menuconfig → RT-Thread Components → Device Drivers */
#endif
@@ -32,7 +32,10 @@ static const struct stm32_soft_i2c_config soft_i2c_config[] =
I2C2_BUS_CONFIG,
#endif
#ifdef BSP_USING_I2C3
- I2C2_BUS_CONFIG,
+ I2C3_BUS_CONFIG,
+#endif
+#ifdef BSP_USING_I2C4
+ I2C4_BUS_CONFIG,
#endif
};
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.h b/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.h
index dc4238f3d0..4ded66505c 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.h
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_soft_i2c.h
@@ -56,6 +56,15 @@ struct stm32_i2c
}
#endif
+#ifdef BSP_USING_I2C4
+#define I2C4_BUS_CONFIG \
+ { \
+ .scl = BSP_I2C4_SCL_PIN, \
+ .sda = BSP_I2C4_SDA_PIN, \
+ .bus_name = "i2c4", \
+ }
+#endif
+
int rt_hw_i2c_init(void);
#endif
diff --git a/bsp/stm32/stm32f767-fire-challenger/README.md b/bsp/stm32/stm32f767-fire-challenger/README.md
index eaf4afa7b0..f3c85d7172 100644
--- a/bsp/stm32/stm32f767-fire-challenger/README.md
+++ b/bsp/stm32/stm32f767-fire-challenger/README.md
@@ -41,13 +41,14 @@
| :----------------- | :----------: | :------------------------------------- |
| USB 转串口 | 支持 | |
| RS232 | 支持 | 与以太网有引脚冲突 |
-| QSPI Flash | 暂不支持 | |
-| 电位器 | 暂不支持 | 使用 ADC1 |
-| 以太网 | 暂不支持 | |
-| MPU6050六轴传感器 | 暂不支持 | |
+| QSPI Flash | 支持 | |
+| 电位器 | 支持 | 使用 ADC1 |
+| 以太网 | 暂不支持 | 移植中 |
+| MPU6050六轴传感器 | 暂不支持 | 移植中 |
| SDRAM | 支持 | |
-| SD卡 | 暂不支持 | |
-| CAN | 暂不支持 | |
+| SD卡 | 即将支持 | |
+| CAN | 即将支持 | |
+| EMW1062 | 暂不支持 | |
| **片上外设** | **支持情况** | **备注** |
| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...176 |
| UART | 支持 | UART1/x/x |
diff --git a/bsp/stm32/stm32f767-fire-challenger/board/Kconfig b/bsp/stm32/stm32f767-fire-challenger/board/Kconfig
index fd7bf67079..5ee1fe6b77 100644
--- a/bsp/stm32/stm32f767-fire-challenger/board/Kconfig
+++ b/bsp/stm32/stm32f767-fire-challenger/board/Kconfig
@@ -22,12 +22,18 @@ menu "Onboard Peripheral Drivers"
default n
config BSP_USING_QSPI_FLASH
- bool "Enable QSPI FLASH (W25Q128 spi5)"
- select BSP_USING_SPI5
+ bool "Enable QSPI FLASH"
+ select BSP_USING_QSPI
select RT_USING_SFUD
- select RT_SFUD_USING_SFDP
+ select RT_SFUD_USING_QSPI
default n
-
+
+ config BSP_USING_MPU6050
+ bool "Enable MPU6050 (i2c4)"
+ select BSP_USING_I2C4
+ select PKG_USING_MPU6XXX
+ default n
+
endmenu
menu "On-chip Peripheral Drivers"
@@ -79,6 +85,12 @@ menu "On-chip Peripheral Drivers"
bool "Enable SPI DMA support"
default n
+ config BSP_USING_QSPI
+ bool "Enable QSPI BUS"
+ select RT_USING_QSPI
+ select RT_USING_SPI
+ default n
+
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
@@ -115,6 +127,58 @@ menu "On-chip Peripheral Drivers"
default 23
endif
+ menuconfig BSP_USING_I2C2
+ bool "Enable I2C2 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C2
+ config BSP_I2C2_SCL_PIN
+ int "i2c2 scl pin number"
+ range 1 176
+ default 47
+ config BSP_I2C2_SDA_PIN
+ int "I2C2 sda pin number"
+ range 1 176
+ default 48
+ endif
+
+ menuconfig BSP_USING_I2C3
+ bool "Enable I2C3 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C3
+ config BSP_I2C3_SCL_PIN
+ int "i2c3 scl pin number"
+ range 1 176
+ default 92
+ config BSP_I2C3_SDA_PIN
+ int "I2C3 sda pin number"
+ range 1 176
+ default 93
+ endif
+
+ menuconfig BSP_USING_I2C4
+ bool "Enable I2C4 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C4
+ comment "Notice: PD12 --> 60; PD13 --> 61"
+ config BSP_I2C4_SCL_PIN
+ int "i2c4 scl pin number"
+ range 1 176
+ default 60
+ config BSP_I2C4_SDA_PIN
+ int "I2C4 sda pin number"
+ range 1 176
+ default 61
+ endif
+
config BSP_USING_ONCHIP_RTC
bool "Enable RTC"
select RT_USING_RTC