I've been developing hardware around the DRV8353RS. The registers seem identical to the already supported DRV8323R so I made some hardware configuration files based on the HD files to test with. The problem is that at power up the controller doesn't make it through the full boot process and blinks the fault LED. Additionally, I have fault LED being driven from the DRV8353RS fault pin. The controller fault light is blinking and the DRV fault light is on. USB does not connect so I'm not able to pull fault codes via the VESC tool terminal. I am also debugging the hardware to see what could be tripping the DRV in case it's a hardware issue. Is there any way to pull fault codes from the controller through the STlink, BLE, or something besides the USB?
Update: Removing the STM32 from the board relieves the DRV of the fault status at power up. Seems like something that the STM32 is doing to cause the fault.
Can't you just use BLE and connect over vesc tool?
Figured out it's my USB receptacle on the controller. It's a crappy no-name part with a datasheet that doesn't describe which pin is which. Managed to connect via USB with some jumpers soldered onto a hacked up USB cable. Problem now is that the DRV is flagging every fault possible when pulling faults from the VESC terminal. Will continue this fight later this weekend.
UPDATE: I found that I swapped MISO and MOSI in my hardware design by mistake. I've adjusted the code accordingly. Won't have time to compile and test until later today.
Nice to hear its something that can be fixed in software and no need for a new PCB.
Yeah but the battle isn't over yet. The DRV still immediately throws faults. The faults seem kinda random. I can clear them via the VESC terminal but the real time data readings are wacky. 200%+ duty cycle reading with no input and current readings all over the place with nothing happening. I may have damaged the DRV before so I'm gunna swap it out with a fresh one tomorrow and try again.
One other potential issue is that the code in the drv8323s.c file is grey highlighted. I think this means it's not active. Its strange because I declare that the FOCer is using the drv8323s and I would think this code would be active. This is not the case on the drv8301.c file since it's code is not grey highlighted. Has anyone run into something like this when using a device besides the drv8301?
EDIT: I messed up a #define. Code is not greyed out anymore.