From 7e93e196e2f15d8b4234e6d5a3c579329da17116 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Tue, 19 Apr 2022 19:38:04 +1000 Subject: [PATCH] qc draft --- source/Core/BSP/Magic/QC_GPIO.cpp | 30 ++++++++++++++------------- source/Core/BSP/Magic/configuration.h | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/source/Core/BSP/Magic/QC_GPIO.cpp b/source/Core/BSP/Magic/QC_GPIO.cpp index c3edea37..a765fbff 100644 --- a/source/Core/BSP/Magic/QC_GPIO.cpp +++ b/source/Core/BSP/Magic/QC_GPIO.cpp @@ -13,40 +13,42 @@ void QC_DPlusZero_Six() { // pull down D+ // #TODO + gpio_write(QC_DP_LOW_Pin, 0); } void QC_DNegZero_Six() { - // gpio_bit_set(QC_DM_HIGH_GPIO_Port, QC_DM_HIGH_Pin); - // gpio_bit_reset(QC_DM_LOW_GPIO_Port, QC_DM_LOW_Pin); + gpio_write(QC_DM_HIGH_Pin, 1); + gpio_write(QC_DM_LOW_Pin, 0); } void QC_DPlusThree_Three() { // pull up D+ - // gpio_bit_set(QC_DP_LOW_GPIO_Port, QC_DP_LOW_Pin); + gpio_write(QC_DP_LOW_Pin, 1); } void QC_DNegThree_Three() { - // gpio_bit_set(QC_DM_LOW_GPIO_Port, QC_DM_LOW_Pin); - // gpio_bit_set(QC_DM_HIGH_GPIO_Port, QC_DM_HIGH_Pin); + gpio_write(QC_DM_LOW_Pin, 1); + gpio_write(QC_DM_HIGH_Pin, 1); } -void QC_DM_PullDown() { // gpio_init(USB_DM_LOW_GPIO_Port, GPIO_MODE_IPD, GPIO_OSPEED_2MHZ, USB_DM_Pin); +void QC_DM_PullDown() { + // Turn on pulldown on D- + gpio_set_mode(USB_DM_Pin, GPIO_INPUT_PD_MODE); } -void QC_DM_No_PullDown() { // gpio_init(USB_DM_LOW_GPIO_Port, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_2MHZ, USB_DM_Pin); +void QC_DM_No_PullDown() { + // Turn off pulldown on d- + gpio_set_mode(USB_DM_Pin, GPIO_INPUT_MODE); } void QC_Init_GPIO() { // Setup any GPIO into the right states for QC // D+ pulldown as output - // gpio_init(QC_DP_LOW_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, QC_DP_LOW_Pin); + gpio_set_mode(QC_DP_LOW_Pin, GPIO_OUTPUT_MODE); // Make two D- pins floating QC_DM_PullDown(); } void QC_Post_Probe_En() { // Make two D- pins outputs - // gpio_init(QC_DM_LOW_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, QC_DM_LOW_Pin); - // gpio_init(QC_DM_HIGH_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, QC_DM_HIGH_Pin); + gpio_set_mode(QC_DM_LOW_Pin, GPIO_OUTPUT_MODE); + gpio_set_mode(QC_DM_HIGH_Pin, GPIO_OUTPUT_MODE); } -uint8_t QC_DM_PulledDown() { - // return gpio_input_bit_get(USB_DM_LOW_GPIO_Port, USB_DM_Pin) == RESET ? 1 : 0; - return false; -} +uint8_t QC_DM_PulledDown() { return gpio_read(USB_DM_Pin) == 0; } #endif void QC_resync() { #ifdef POW_QC diff --git a/source/Core/BSP/Magic/configuration.h b/source/Core/BSP/Magic/configuration.h index c95b945e..2445c421 100644 --- a/source/Core/BSP/Magic/configuration.h +++ b/source/Core/BSP/Magic/configuration.h @@ -134,7 +134,7 @@ #define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F #define POW_PD 1 -#define POW_QC 0 +#define POW_QC 1 #define POW_DC 1 #define POW_QC_20V 1 #define ENABLE_QC2 1