
Gooser4
STDGooser4
License
:Public Domain
Description
After discovering that GooserCS only failed due to defective mosfets, Gooser3 has now also become unusable unless LCSC gets a new reel of SE3082G. I began toying with designs using 6 individual mosfets, and once I saw the potential to reduce the board width to 14mm per motor pair, I just had to see it completed.
This board is like a fusion of GooserCS and Gooser3. Like GooserCS it uses DRV8300 in 3PWM mode and two ACS711 hall current sensors, and like Gooser3 it's designed as a dual-motor board that can be copy-pasted for as many motors as you want on a single board or cut smaller if you only need one motor.
The VDRV, LV_IN, 3V, and I2C lines run across the width of the board to connect to the next copy, though 3V is not connected by default since each copy has its own 3.3V LDO and their outputs could interfere with eachother. It can be joined using the small solder pad labeled 3V on the back side of the board between the two encoder connectors (use solder to join it to the nearby 3V pin on the aux header). The I2C lines are exposed on the top layer just above and right of the encoder connector, so they can be cut if you want independent GPIOs on each board.
There are four power rails on the board: HV_IN (power to mosfets and optional buck converters, 40V max, minimum depends on whether buck converters are populated), VDRV (power to gate drivers, 20V max, minimum depends on mosfet Vgs), LV_IN (power to 3.3V LDO, 4-6V), and 3V (power to MCU, current sensors and encoder halls, typically 3.3V, though anything 3-3.6V is within spec).
HV_IN can be joined with VDRV if it is below 20V and the high voltage buck converter is not populated.
3V can be either input or output depending on whether LV_IN is powered.
LV_IN can be either input or output depending on whether the low voltage buck converter is populated, or left unpowered if 3V is supplied externally.
Going by Valentine's recommendation of >1000uF for Lepton this should have >2000uF of bulk capacitance. Unlike previous versions, you can't spam 1206 capacitors on the back, so all bulk capacitance must be provided by electrolytics. Each motor has holes for two capacitors.
Motor 0:
TIM3 ch1 PB0, ch2 PB4, ch3 PB5
Current sense ADC1 ch3 PA2, ADC12 ch1 PA0 (note: ADC12 means either ADC1 or ADC2 can be used to read this pin)
Hall encoder ADC2 ch17 PA4, ch13 PA5
Motor 1:
TIM1 ch1 PA8, ch2 PA9, ch3 PA10
Current sense ADC12 ch2 PA1, ADC1 ch4 PA3
Hall encoder ADC2 ch4 PA6, ch3 PA7
SWD: io PA13, clk PA14
UART2: rx PA15, tx PB3
I2C1: sda PB7, scl PB8
SPI1: nss PA4, sck PA5, miso PA6, mosi PA7 (these are the four GPIO pins on the encoder connectors).
SPI1: There are two options for this. The second encoder connector is required either way for mosi PA7 and miso PA6. The first encoder connector is nss PA4 and sck PA5, or you can use the UART pins on the programming connector, nss PA15 and sck PB3.
The reset pin is accessible as a solder pad on the back of the board. Next to it is a solder pad which is connected to both PF0 (ADC1 ch1) and PF1 (ADC2 ch1). This allows reading one external analog device using either ADC. I wish I could fit separate pads for each of them, but it's not worth increasing the board size for it.
PB6 is accessible on the aux pin header as a spare GPIO because it didn't take up much routing space. The only potentially useful alternate function it has is timer output TIM8_CH1 or TIM4_CH1. Together with the PF0/PF1 solder pad, you could monitor the bus voltage and PWM an external mosfet with braking resistor to protect non-battery power supplies from overvoltage.
Design Drawing

BOM


Project Members

Comment