I designed and tested a bldc motor controller pcb.
I used the STM32F4 as the arm cpu, TI DRV8323 as the gate driver and used the AS5047 position sensor as the encoder and uses RS458 to communicate.