From eaf137b5b64ea23c5069cab7466f9ab1c72dbdf9 Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Thu, 15 Aug 2024 09:27:03 +0300 Subject: [PATCH] new USB pullup --- F3:F303/Multistepper/hardware.c | 4 ++-- F3:F303/Multistepper/hardware.h | 10 ++++++---- F3:F303/Multistepper/multistepper.bin | Bin 30316 -> 30580 bytes F3:F303/Multistepper/version.inc | 4 ++-- F3:F303/inc/ld/stm32f303xB.ld | 2 ++ F3:F303/inc/ld/stm32f303xD.ld | 2 ++ 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/F3:F303/Multistepper/hardware.c b/F3:F303/Multistepper/hardware.c index 436fc12..940d6e0 100644 --- a/F3:F303/Multistepper/hardware.c +++ b/F3:F303/Multistepper/hardware.c @@ -114,7 +114,7 @@ TRUE_INLINE void gpio_setup(){ GPIOA->OSPEEDR = OSPEED_MED(5) | OSPEED_MED(6) | OSPEED_MED(7) | OSPEED_HI(11) | OSPEED_HI(12) | OSPEED_HI(13) | OSPEED_HI(15); GPIOA->OTYPER = 0; - GPIOA->PUPDR = PUPD_PU(8) | PUPD_PU(9) | PUPD_PU(10); + GPIOA->PUPDR = PUPD_PU(9) | PUPD_PU(10); GPIOB->ODR = 0; GPIOB->AFR[0] = AFRf(2, 0) | AFRf(7, 3) | AFRf(10, 5); @@ -125,7 +125,7 @@ TRUE_INLINE void gpio_setup(){ GPIOB->OSPEEDR = OSPEED_HI(0) | OSPEED_HI(5) | OSPEED_HI(8) | OSPEED_MED(13) | OSPEED_MED(14) | OSPEED_MED(15); // USART2_Tx (PB3) and USART3_Tx (PB10) are pullup opendrain GPIOB->OTYPER = OTYPER_OD(3) | OTYPER_OD(10); - GPIOB->PUPDR = PUPD_PU(3) | PUPD_PU(7) | PUPD_PU(9) | PUPD_PU(7) | PUPD_PU(11); + GPIOB->PUPDR = PUPD_PU(3) | PUPD_PU(7) | PUPD_PU(9) | PUPD_PU(10) | PUPD_PU(11); GPIOC->ODR = 0; GPIOC->AFR[0] = AFRf(7, 4) | AFRf(7, 5) | AFRf(4, 6); diff --git a/F3:F303/Multistepper/hardware.h b/F3:F303/Multistepper/hardware.h index 41fb937..3a8c815 100644 --- a/F3:F303/Multistepper/hardware.h +++ b/F3:F303/Multistepper/hardware.h @@ -34,10 +34,12 @@ // USB pullup: PA8 #define USBPU_port GPIOA #define USBPU_pin (1<<8) -//#define USBPU_ON() pin_clear(USBPU_port, USBPU_pin) -//#define USBPU_OFF() pin_set(USBPU_port, USBPU_pin) -#define USBPU_ON() pin_set(USBPU_port, USBPU_pin) -#define USBPU_OFF() pin_clear(USBPU_port, USBPU_pin) +// Pullup by P-channel MOSFET +#define USBPU_ON() pin_clear(USBPU_port, USBPU_pin) +#define USBPU_OFF() pin_set(USBPU_port, USBPU_pin) +// direct pullup connected to pin +//#define USBPU_ON() pin_set(USBPU_port, USBPU_pin) +//#define USBPU_OFF() pin_clear(USBPU_port, USBPU_pin) // temporary LED: PD9 #define LED_blink() pin_toggle(GPIOD, 1<<9) diff --git a/F3:F303/Multistepper/multistepper.bin b/F3:F303/Multistepper/multistepper.bin index 5ed070ab15ac08c889d13ebfc9a4a1f116d5c128..2830ca3dd7f4a7ce919cc2a885a636e72643767a 100755 GIT binary patch delta 19457 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 HqL}{&eIm=} delta 19355 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 diff --git a/F3:F303/Multistepper/version.inc b/F3:F303/Multistepper/version.inc index 79833d0..84585f2 100644 --- a/F3:F303/Multistepper/version.inc +++ b/F3:F303/Multistepper/version.inc @@ -1,2 +1,2 @@ -#define BUILD_NUMBER "104" -#define BUILD_DATE "2023-03-02" +#define BUILD_NUMBER "107" +#define BUILD_DATE "2024-08-15" diff --git a/F3:F303/inc/ld/stm32f303xB.ld b/F3:F303/inc/ld/stm32f303xB.ld index 15b95fa..ae9c8be 100644 --- a/F3:F303/inc/ld/stm32f303xB.ld +++ b/F3:F303/inc/ld/stm32f303xB.ld @@ -5,5 +5,7 @@ MEMORY ccmram (rwx) : ORIGIN = 0x10000000, LENGTH = 8K } +PROVIDE(_BLOCKSIZE = 2048); + /* Include the common ld script. */ INCLUDE stm32f3.ld diff --git a/F3:F303/inc/ld/stm32f303xD.ld b/F3:F303/inc/ld/stm32f303xD.ld index 2022fdd..298e233 100644 --- a/F3:F303/inc/ld/stm32f303xD.ld +++ b/F3:F303/inc/ld/stm32f303xD.ld @@ -5,5 +5,7 @@ MEMORY ccmram (rwx) : ORIGIN = 0x10000000, LENGTH = 16K } +PROVIDE(_BLOCKSIZE = 2048); + /* Include the common ld script. */ INCLUDE stm32f3.ld