...
Figure out the main purpose(s) of the board
Major criteria, requirements, any parameters
Who is involved in the board, keeping up with those involved to adjust for any changes
Motor Controller Scope:
Main purpose(s) of the board:
Make an ODrive that is tailored towards our rover
BLDC controller - 3 phase H-bridge controller for the motor
CAN support
1 or 2 motors/encoders per board:
With 1 motor per board, power distribution is easier, control lines are more isolated and easier to handle, layout in general is much simpler, more freedom with wiring and mounting in-house assembly would likely be less difficult and more forgiving, especially since this is mainly a prototype board
This would use a lot of MCUs, not good
2 motors per board: Less expensive, better use of microcontroller
Would probably be best to start here, only populate one side during initial prototype testing
45 degree orientation for MCU is a must
Encoder support: Requires discussion with firmware and mechanical to determine what are the most likely protocols used with the encoders
Having just CAN support would be easier & cheaper but causes delay with correction from encoders
Providing support for all the protocols of the MCU used (i.e. I2C, SPI, UART, PWM, Quadrature, etc.) would probably be best and cover the widest range of encoders
Need to determine electrical specs needed: Voltage rating, current rating, PWM switching speed for H-bridge
Power architecture of controller needs to be determined - most likely will supply both motor power (48V) and encoder/logic power (5V) from PDB, onboard voltage conversion to 5V and low current would probably be too inefficient
Current sensing is important
Other GPIOs
Coordinate with mechanical and firmware to determine how many would be needed for hall effect sensors, limit switches, etc.
Might want to do some MOSFET tuning/testing to practice before
For example, select a motor driver and a MOSFET, practice driving one phase and look at rigging on gate, peak current, tuning gate resistor and RC snubber, making sure the gate driver isn’t killed, general stability
Could be done on a proto board, very small & simple setup
Could design the board and only populate MOSFET/motor driver to tune and test with before purchasing the rest of the parts and quantities - not recommended, restricts package choices and requires layout rework if testing fails