Hi.. I'm trying to use the S12XE devkit on a vehicle application and have run into some issues with the MC33903 SBC on the board.. The eval board is setup in DEBUG mode.
First off the demo code (lab4_CAN) has some rather long delays (in the s12xe) after waiting for the SPI tx to be ready before loading SPI0DRH/L for transmit.. is this really needed? Also it seems this code was brought in from elsewhere as it uses 0x5e90 to "enable 5V-CAN and Vaux" but best I can tell the 33903 doesn't have a Vaux..
Anyway.. my problem is that while cranking the engine the SAFE comes on and CAN0 shuts down (Vsense detect?). I can also get a fault on the bench by powering up the lab supply (vs plugging in 12V hot.. presumably too long a Vsup ramp from the power supply?). If left alone it will shut down VDD in 8 seconds.
The startup is:
0xdf80 (read Vreg H.. presumably to clear the BATFAIL)
0x5a00 (enter into normal mode)
0x5e90 (I changes this to 0x5e08 just to turn on 5V-CAN)
0x60c0 (setup CAN)
At this point I would just like to have it NOT kill CAN0 and potentially power down if it gets a fault. Is this possible?
If not, and I do have to monitor to check for faults (not using interrupts), should I just send 0x1d80 to read the mode
and possibly turn off the SAFE (it just comes back on again)? Best I can tell when it faults it's in NORMAL-request mode. When I read the fix and extend device status (16 bit return from 0x5a00) it looks like the RST bit is on. The data sheet says "reset has occurred and the flags reporting the reset source are pending to be read" What are they talking about here?
In short, is there any way in advance to prevent RST/fail/safe from a Vsense under voltage or slow Vsup ramp?
If not, what is the most efficient set of SPI commands to detect the fault and bring the system back online quickly?
For our first product I'm looking into the more advanced FS6500 but before I go down that path I really need to have the basics working here..