Technical discussions about Freescale (Motorola) DSPs (including the DSP56000, DSP56300, DSP56600, 56800 DSPs).
Hi All
How are people initializing the 56F8300/E FlexCan Control/Status register "CODE" field for mailboxes that are not in use?
I have been setting these to "1000" , meaning "Transmit Buffer, but not ready for Transmit". I had no problems I was aware of. I reasoned that an empty Transmit mailbox was somehow "safer" and "less busy" than a Receive mailbox that was marked inactive.
Now a phrase in the manual makes me think that maybe
"0000" would be a better way to initialize unused mailboxes.
Would anyone venture a guess?
(I have set FCMAXMB to "3" which seems to mean "0..3" not "0..2", since my Mailbox#3 can be made active.)
BACKGROUND:
I happen to be chasing some bug that looks like random
changes of a Receive message filter.
(It is probably a rouge pointer overwriting the filter
FCMB2_ID_LOW, until I learn differently.)
While searching for clues, I noticed a phrase in the Freescale Peripheral Manual for 56800/E:
The Control/Status word of all MBs must be written either as active or inactive MB
I'm guessing that "inactive" means CODE value "RX NOT ACTIVE".
Has anyone used a "CODE" value in the
FlexCAN message Buffer Control/Status register of
either
"1000" (TX but not Ready") or
"0000" (RX but not active)?
Would anyone guess which one is "better"?
Thanks in advance.
Msg Buffer registers: Figure 7.3
the field
"CODE" is bits
4-7 &n
bsp; &
nbsp; page 7-6 or PDF page 200
CODE values: Table 7-2 and 7-3 &n bsp; & nbsp; page 7-7 or PDF page 201
Section 7.6.10: FlexCAN Initialization / Reset Sequence page 7-17 or PDF page 211
Rick Corey
Sr. Software Engineer