This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I am working with a TMDSCNCD28035 Control Card hosting a 28035 Piccolo. I have the card set up so I can experiment with the CAN interface and the goal is to see if I can get the unit to communicate at 1MBits/sec. So far the fastest I've got it to run at is 500KBits/sec but that's with a BRP (prescaler) setting of 1; to go faster I would have to change the system clock using the PLL divider DSP28_DIVSEL which gives me CAN packets of apparently the right length but only if I use non-standard (and so non-functioning) TSEG values.
We use the 28F12 extensively in our products so we're used to CAN and the idiosyncrasies of TI's processors and peripherals. The part we normally use has a much faster SYSCLK so finding parameters for various CAN speeds is straightforward - we use 7 & 5 for the two TSEGs and BRP that vary from 9 to 79.
I notice that the documentation and sample code hasn't changed much since whenever which leaves new users with the headache of figuring out setup combinations, figuring out the best way to resolve the 32 bit access problem and for all I know tussling with issues like the SPRZ193E write race problem. These sorts of things really need to be sorted out before new features are added to these parts because even with ample sample code they make setting up and using these parts unnecessarily tedious. These are the days when just about any cheap and cheerful single chip processor comes with one or more USB 2.0 interfaces so it should not be too difficult to tame an old and rather primitive serial interface such as CAN.
Having played with this some more the settings for the CANBTC register that communicate OK with an external CAN device are:-
0x0003013D for 1MBit
0x0007013D for 500KBits
0x000F013D for 250KBits
0x001F013D for 125KBits
DSP28_DIVSEL is set to 3 ( /4 PLL) which I presume is OK....the processor runs, at least.