STM32F446 CAN bus initialisation
Hi everybody,
I used a STM32F446 to communicate on NMEA2000 (CAN bus).
The two pins (RX/TX) of my µc are connected to an isolator SI8621 (https://www.skyworksinc.com/-/media/Skyworks/SL/documents/public/data-sheets/si861x-2x-datasheet.pdf) and then, a can transceiver is connected MCP2542 (https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP2542FD-MCP2542WFD-4WFD-Data-Sheet-DS20005514C.pdf)
My board doesn't supply the NMEA2000 (the +12V is provided by T-bone of CAN bus - (I have a voltage regulator 12V to 5V on my board).
When I supplied the NMEA2000, it works fine. But, NMEA2000 is an option, and by default nothing will be connected on the connector, so no there is no supply on the CAN bus transceiver, so the initialization of CAN bus doesn't work (timeout error).
It's no use to put a pull-up resistor on RX or a end of line resistor because there is no voltage.
For me the only solution that I see, is that the user (I've a screen) says if NMEA2000 is used or not. If this one is not used, I didn't initialize it, and if it's actived by user, I can initialize it.
Do you think there is another solution to do it ?

