Module Operation
1256
SPNU563A – March 2018
Copyright © 2018, Texas Instruments Incorporated
FlexRay Module
In addition bits OBCR.OBRH(6-0) are swapped with the output buffer command request registers internal
storage and bits OBCM.RHSH, OBCM.RDSH are swapped with the output buffer command mask
registers internal storage thus assuring that the message buffer number stored in OBCR.OBRH(6-0) and
the mask configuration stored in OBCM.RHSH, OBCM.RDSH matches the transferred data stored in OBF
host (see
Now the host can read the transferred message buffer from OBF host while the message handler may
transfer the next message from the message RAM to OBF shadow.
NOTE:
If bits REQ and VIEW are set to 1 with the same write access while OBSYS is 0, OBSYS is
automatically set to 1 and OBF shadow and OBF host are swapped. Additionally mask bits
OBCM.RDSH and OBCM.RHSH are swapped with the registers internal storage to keep
them attached to the corresponding Output Buffer transfer. Afterwards OBRS (6-0) is copied
to the register internal storage, mask bits OBCM.RDSS and OBCM.RHSS are copied to
register OBCM internal storage, and the transfer of the selected message buffer from the
Message RAM to OBF shadow is started. While the transfer is ongoing the Host can read
the message buffer transferred by the previous transfer from OBF Host. When the current
transfer between Message RAM and OBF shadow has completed, this is signaled by setting
OBSYS back to 0.
Example of an 8/16/32-bit host access to a single message buffer:
If a single message buffer has to be read out, two separate write accesses to OBCR.REQ and
OBCR.VIEW are necessary:
•
Wait until OBCR.OBSYS is reset
•
Write Output Buffer Command Mask OBCM.RHSS, OBCM.RDSS
•
Request transfer of message buffer to OBF Shadow by writing OBCR.OBRS(6-0) and OBCR.REQ (in
case of and 8-bit Host interface, OBCR.OBRS(6-0) has to be written before OBCR.REQ).
•
Wait until OBCR.OBSYS is reset
•
Toggle OBF Shadow and OBF Host by writing OBCR.VIEW = 1
•
Read out transferred message buffer by reading RDDSn, RDHS1,2,3, and MBS
Example of an 8/16/32-bit host access sequence:
Request transfer of 1st message buffer to OBF shadow
•
Wait until OBCR.OBSYS is reset
•
Write Output Buffer Command Mask OBCM.RHSS, OBCM.RDSS for 1st message buffer
•
Request transfer of 1st message buffer to OBF Shadow by writing OBCR.OBRS(6-0) and OBCR.REQ
(in case of an 8-bit Host interface, OBCR.OBRS(6-0) has to be written before OBCR.REQ).
Toggle OBF Shadow and OBF Host to read out 1st transferred message buffer and request transfer of
2nd message buffer:
Request transfer of 2nd message buffer to OBF shadow, read out 1st message buffer from OBF host
•
Wait until OBCR.OBSYS is reset
•
Write Output Buffer Command Mask OBCM.RHSS, OBCM.RDSS for 2nd message buffer
•
Toggle OBF Shadow and OBF Host and start transfer of 2nd message buffer to OBF Shadow
simultaneously by writing OBCR.OBRS(6-0) of 2nd message buffer, OBCR.REQ, and OBCR.VIEW (in
case of and 8-bit Host interface, OBCR.OBRS(6-0) has to be written before OBCR.REQ and
OBCR.VIEW).
•
Read out 1st transferred message buffer by reading RDDSn, RDHS13, and MBS
For further transfers continue the same way.
Demand access to last requested message buffer without request of another message buffer:
•
Wait until OBCR.OBSYS is reset
•
Demand access to last transferred message buffer by writing OBCR.VIEW
•
Read out last transferred message buffer by reading RDDSn, RDHS1,2,3, and MBS