|
|
@@ -143,14 +143,54 @@ void gpio_brk_light_init(void) {
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+void gpio_board_id_init(void) {
|
|
|
+#ifdef BOOT_PIN_0_GROUP
|
|
|
+ gpio_init(BOOT_PIN_0_GROUP, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, BOOT_PIN_0_PIN);
|
|
|
+ gpio_init(BOOT_PIN_1_GROUP, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, BOOT_PIN_1_PIN);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
+u8 gpio_hw_board_id(void) {
|
|
|
+ u8 id = BOARD_105_VERSION_4;
|
|
|
+#ifdef BOOT_PIN_0_GROUP
|
|
|
+ u8 b0 = gpio_input_bit_get(BOOT_PIN_0_GROUP, BOOT_PIN_0_PIN);
|
|
|
+ u8 b1 = gpio_input_bit_get(BOOT_PIN_1_GROUP, BOOT_PIN_1_PIN);
|
|
|
+ id = ((b1 << 1) | b0);
|
|
|
+#endif
|
|
|
+ return id;
|
|
|
+}
|
|
|
+
|
|
|
+void gpio_repear_key_init(void) {
|
|
|
+#ifdef REPEAR_IN_GROUP
|
|
|
+ gpio_init(REPEAR_IN_GROUP, REPEAR_IN_MODE, GPIO_OSPEED_50MHZ, REPEAR_IN_PIN);
|
|
|
+#endif
|
|
|
+}
|
|
|
+static u8 _board_id = BOARD_105_VERSION_4;
|
|
|
void mc_gpio_init(void) {
|
|
|
gpio_mlock_init();
|
|
|
gpio_mc_brk_init();
|
|
|
gpio_fan_det_init();
|
|
|
gpio_led_init();
|
|
|
gpio_brk_light_init();
|
|
|
+ gpio_board_id_init();
|
|
|
+ gpio_repear_key_init();
|
|
|
+ int count = 10;
|
|
|
+ do {
|
|
|
+ delay_ms(5);
|
|
|
+ _board_id = gpio_hw_board_id();
|
|
|
+ if (_board_id == BOARD_105_VERSION_3 || _board_id == BOARD_105_VERSION_4) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }while(count-- > 0);
|
|
|
}
|
|
|
|
|
|
+bool gpio_is_repear_mode(void) {
|
|
|
+#ifndef REPEAR_IN_GROUP
|
|
|
+ return false;
|
|
|
+#else
|
|
|
+ return gpio_input_bit_get(REPEAR_IN_GROUP, REPEAR_IN_PIN) == RESET;
|
|
|
+#endif
|
|
|
+}
|
|
|
|
|
|
void gpio_led_enable(bool enable) {
|
|
|
#ifdef GPIO_LED_OUT_GROUP
|
|
|
@@ -164,6 +204,9 @@ void gpio_brk_light_enable(bool enable) {
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+u8 gpio_board_id(void) {
|
|
|
+ return _board_id;
|
|
|
+}
|
|
|
|
|
|
bool mc_get_gpio_brake(void) {
|
|
|
return gpio_input_bit_get(GPIO_BRAKE_IN_GROUP, GPIO_BRAKE_IN_PIN) == SET;
|
|
|
@@ -186,6 +229,8 @@ bool gpio_motor_locked(void) {
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
void gpio_ir2136_enable(bool enable) {
|
|
|
#ifdef GD32_FOC_DEMO
|
|
|
gpio_bit_write(_pins[IR2136S_Enable_pin].group, _pins[IR2136S_Enable_pin].pin, (enable)?SET:RESET);
|