Hi, I am currently using a machine control carrier board with the Portenta module plugged in.
I was trying to use the FDCAN interface, and I noticed that as soon as I try to transmit a frame on the CANBUS, the FDCAN PSR register returns error code 5 con the LEC field: Bit0Errr, i.e. the system was unable to set the dominant bit.
After a lot of digging, I saw that the CAN transceiver U15, TJA1049T/3J needs at least 4.75V to work OK.
The Schottky diode used in the machine control carrier has a forward voltage of at least 0.3V, so we do not expect more than 4.7V on the +5V line on the carrier board.
I checked that in effect we have 4.67V, so I suppose this is not enough for the transceiver to start working properly...
Previously, I found that the STB signal is connected to one of the SWD pins of the H7, so if you want to use the SWD debugger, you can experiment some difficulties.
I preferred to cut the wire connecting the SWD pin to the STB pin of the transceiver; the STB line has a pull-down resistor, so by default the transceiver is enabled.
Furthermore, I found that the original schematic I was using was reporting a 27MHz frequency for the CPU oscillator, while in an updated version of the schematic it is set to 25MHz.
I had a glance of the mistake because the bit rate of the CANBUS was slightly off, about the 5%, so that there were a lot of errors in the CAN communication.
I had to find the schematic correction and adjust the oscillator nominal frequency to get the correct CANBUS bit rate.
You made a good observation, that little difference in voltage can cause big problems. Some parts may work but they will be operating out of there guaranteed operating range. For a relative simple solution take a look at the NXP TJA1049, it will operate at 3.3V.