|
|
@@ -22,6 +22,8 @@ void gpio_init(void){
|
|
|
gpio_mode_input(GPIOA, GPIO_PUPD_NONE, GPIO_PIN_0);
|
|
|
//CS1180 cs
|
|
|
gpio_mode_output(GPIOA, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
|
|
|
+ cs1180_cs(1);
|
|
|
+ gpio_mode_analog_input(GPIOA, GPIO_PIN_8);
|
|
|
|
|
|
#elif (CONFIG_BOARD_TYPE==SHARK_BOARD_SP600)
|
|
|
//rs485 INT ,this can be used detect rs485 in/out, then open rs485 power, and then detect GPIOF0
|
|
|
@@ -36,16 +38,13 @@ void gpio_init(void){
|
|
|
gpio_mode_input(GPIOB, GPIO_PUPD_NONE, GPIO_PIN_12);
|
|
|
//CS1180 cs
|
|
|
gpio_mode_output(GPIOA, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8);
|
|
|
-
|
|
|
+ cs1180_cs(1);
|
|
|
//LED 0,1,2
|
|
|
gpio_mode_output(GPIOA, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_2|GPIO_PIN_3);
|
|
|
gpio_mode_output(GPIOF, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_6);
|
|
|
//LED3,4
|
|
|
gpio_mode_output(GPIOA, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_10|GPIO_PIN_9);
|
|
|
#endif
|
|
|
- //CS1180_PWR_ENABLE(0);
|
|
|
- //power good detect
|
|
|
- gpio_mode_input(GPIOF, GPIO_PUPD_NONE, GPIO_PIN_7);
|
|
|
//temp senser enable
|
|
|
gpio_mode_output(GPIOF, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_1);
|
|
|
//charger detect
|
|
|
@@ -62,7 +61,97 @@ void gpio_init(void){
|
|
|
gpio_mode_input(GPIOA, GPIO_PUPD_NONE, GPIO_PIN_12);
|
|
|
//ML5238 cs
|
|
|
gpio_mode_output(GPIOA, GPIO_PUPD_NONE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_15);
|
|
|
+#if (CONFIG_BOARD_TYPE==SHARK_BOARD_SP600)
|
|
|
+ RS485_PWR_ENABLE(1);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
+void charger_detect_irq_enable(int enable){
|
|
|
+ if (enable){
|
|
|
+ syscfg_exti_line_config(EXTI_SOURCE_GPIOB, EXTI_SOURCE_PIN10);
|
|
|
+ exti_init(EXTI_10, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn, 4U, 0U);
|
|
|
+ exti_interrupt_flag_clear(EXTI_10);
|
|
|
+ exti_interrupt_enable(EXTI_10);
|
|
|
+ }else {
|
|
|
+ //nvic_irq_disable(EXTI4_15_IRQn);
|
|
|
+ exti_interrupt_disable(EXTI_10);
|
|
|
+ exti_interrupt_flag_clear(EXTI_10);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void ml5238_irq_enable(int enable){
|
|
|
+ if (enable){
|
|
|
+ syscfg_exti_line_config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN12);
|
|
|
+ exti_init(EXTI_12, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn, 4U, 0U);
|
|
|
+ exti_interrupt_flag_clear(EXTI_12);
|
|
|
+ exti_interrupt_enable(EXTI_12);
|
|
|
+ }else {
|
|
|
+ //nvic_irq_disable(EXTI4_15_IRQn);
|
|
|
+ exti_interrupt_disable(EXTI_12);
|
|
|
+ exti_interrupt_flag_clear(EXTI_12);
|
|
|
+ }
|
|
|
+}
|
|
|
+#if (CONFIG_BOARD_TYPE==SHARK_BOARD_SP700)
|
|
|
+void hall_1_detect_irq_enable(int enable){
|
|
|
+ if (enable){
|
|
|
+ syscfg_exti_line_config(EXTI_SOURCE_GPIOC, EXTI_SOURCE_PIN15);
|
|
|
+ exti_init(EXTI_15, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn, 4U, 0U);
|
|
|
+ exti_interrupt_flag_clear(EXTI_15);
|
|
|
+ exti_interrupt_enable(EXTI_15);
|
|
|
+ }else {
|
|
|
+ //nvic_irq_disable(EXTI4_15_IRQn);
|
|
|
+ exti_interrupt_disable(EXTI_15);
|
|
|
+ exti_interrupt_flag_clear(EXTI_15);
|
|
|
+ }
|
|
|
+}
|
|
|
+#else
|
|
|
+void hall_1_detect_irq_enable(int enable){
|
|
|
+}
|
|
|
+#endif
|
|
|
+void hall_2_detect_irq_enable(int enable){
|
|
|
+ if (enable){
|
|
|
+ syscfg_exti_line_config(EXTI_SOURCE_GPIOC, EXTI_SOURCE_PIN13);
|
|
|
+ exti_init(EXTI_13, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn, 4U, 0U);
|
|
|
+ exti_interrupt_flag_clear(EXTI_13);
|
|
|
+ exti_interrupt_enable(EXTI_13);
|
|
|
+ }else {
|
|
|
+ //nvic_irq_disable(EXTI4_15_IRQn);
|
|
|
+ exti_interrupt_disable(EXTI_13);
|
|
|
+ exti_interrupt_flag_clear(EXTI_13);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void small_current_short_irq_enable(int enable){
|
|
|
+ if (enable){
|
|
|
+ syscfg_exti_line_config(EXTI_SOURCE_GPIOB, EXTI_SOURCE_PIN11);
|
|
|
+ exti_init(EXTI_11, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn, 4U, 0U);
|
|
|
+ exti_interrupt_flag_clear(EXTI_11);
|
|
|
+ exti_interrupt_enable(EXTI_11);
|
|
|
+ }else {
|
|
|
+ //nvic_irq_disable(EXTI4_15_IRQn);
|
|
|
+ exti_interrupt_disable(EXTI_11);
|
|
|
+ exti_interrupt_flag_clear(EXTI_11);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
+void dcdc_pwr_detect_irq_enable(int enable){
|
|
|
+ if (enable){
|
|
|
+ syscfg_exti_line_config(EXTI_SOURCE_GPIOF, EXTI_SOURCE_PIN7);
|
|
|
+ exti_init(EXTI_7, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn, 4U, 0U);
|
|
|
+ exti_interrupt_flag_clear(EXTI_7);
|
|
|
+ exti_interrupt_enable(EXTI_7);
|
|
|
+ }else {
|
|
|
+ //nvic_irq_disable(EXTI4_15_IRQn);
|
|
|
+ exti_interrupt_disable(EXTI_7);
|
|
|
+ exti_interrupt_flag_clear(EXTI_7);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|