Mini Mainboard design flaw
Posted: Tue Nov 05, 2024 4:26 pm
I'm currently working on the Zoe inverter, more specifically on the rotor exciter controller. While testing I noticed a strange, periodic sound from my little test inductor. Scoping the PWM showed it dropping out every second
To cut it short it turned out to be caused by the SDO bursts from the wifi module. The CAN transceiver pulls so much power from the 3.3V rail that the ADC reference voltage dips and thus all ADC readings are off: Regular periodic CAN messages have the same effect, just not as pronounced: I also checked the 5V rail but it is not or hardly at all affected.
I think the problem never showed because nobody used oic or ESP for periodic data polls. Also the other channels use more of the ADC dynamic range. The 50 mV/A from the exciter current feedback completely vanish in the noise floor and the P controller diligently tries to counter the seemingly excessive current by shutting down the PWM.
I will look for various hardware fixes, probably just more decoupling for the CAN transceiver. I'm thinking not all hardware may be affected because mostly a stronger 3.3V LDO is used and also more decoupling. Most of all Tesla boards have chunky tantalum caps on the 3.3V rail. The Mini mainboard is a bit minimalist in that regard.
Also I think the sine firmware won't care at all as it only uses heavily filtered ADC readings.
For now the recommendations are, mostly for Mini Mainboard based designs:
- Do not poll large amounts of data via OIC or the ESP wifi module while driving
- Try to use 100ms CAN send interval if practical
- Try to stuff most data into a single CAN message
To cut it short it turned out to be caused by the SDO bursts from the wifi module. The CAN transceiver pulls so much power from the 3.3V rail that the ADC reference voltage dips and thus all ADC readings are off: Regular periodic CAN messages have the same effect, just not as pronounced: I also checked the 5V rail but it is not or hardly at all affected.
I think the problem never showed because nobody used oic or ESP for periodic data polls. Also the other channels use more of the ADC dynamic range. The 50 mV/A from the exciter current feedback completely vanish in the noise floor and the P controller diligently tries to counter the seemingly excessive current by shutting down the PWM.
I will look for various hardware fixes, probably just more decoupling for the CAN transceiver. I'm thinking not all hardware may be affected because mostly a stronger 3.3V LDO is used and also more decoupling. Most of all Tesla boards have chunky tantalum caps on the 3.3V rail. The Mini mainboard is a bit minimalist in that regard.
Also I think the sine firmware won't care at all as it only uses heavily filtered ADC readings.
For now the recommendations are, mostly for Mini Mainboard based designs:
- Do not poll large amounts of data via OIC or the ESP wifi module while driving
- Try to use 100ms CAN send interval if practical
- Try to stuff most data into a single CAN message