This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Message Control Register

I'm using a Infineon C515C, with the RTX51 Full package. However I'm having difficulty addressing the Message Control Register (MCR0 and MCR1) specifically the TXRQ bit in MCR1. Does anyone know where I would find this registers definition?

Parents
  • Pages 6-92 and 6-93.

    http://www.keil.com/dd/docs/datashts/infineon/c515c_um.pdf

    Transmit request
    Indicates that the transmission of this message object is requested by the CPU or via a remote frame and is not yet done. TXRQ can be disabled by CPUUPD. 1) 3)

    1) In message object 15 (last message) these bits are hardwired to "0" (inactive) in order to prevent transmission of message 15.

    3) When the microcontroller requests the transmission of a receive-object, a remote frame will be sent instead of a data frame to request a remote node to send the corresponding data frame.
    This bit will be cleared by the CAN controller along with bit RMTPND when the message has been successfully transmitted, if bit NEWDAT has not been set. If there are several valid message objects with pending transmission request, the message with the lowest message number is transmitted first.

Reply
  • Pages 6-92 and 6-93.

    http://www.keil.com/dd/docs/datashts/infineon/c515c_um.pdf

    Transmit request
    Indicates that the transmission of this message object is requested by the CPU or via a remote frame and is not yet done. TXRQ can be disabled by CPUUPD. 1) 3)

    1) In message object 15 (last message) these bits are hardwired to "0" (inactive) in order to prevent transmission of message 15.

    3) When the microcontroller requests the transmission of a receive-object, a remote frame will be sent instead of a data frame to request a remote node to send the corresponding data frame.
    This bit will be cleared by the CAN controller along with bit RMTPND when the message has been successfully transmitted, if bit NEWDAT has not been set. If there are several valid message objects with pending transmission request, the message with the lowest message number is transmitted first.

Children
  • Carefully read page 6-92 of the C515C User's Manual, it says:

    Each element of the message control register is made of two complementary bits. This special mechanism allows to selectively set or reset specific elements (leaving others unchanged) without requiring read-modify-write cycles.

    TXRQ bit is not directly addressable, but must be set using the special mechanism described in that manual page.

    If you still have troubles, on Infineon web site there is a full appnote with full source code.

    http://www.infineon.com/cgi/ecrm.dll/ecrm/scripts/prod_ov.jsp?oid=13734&cat_oid=-8136

  • Thanx for that however, when I said the registers definition I meant in Keil. I know I should have made it clearer.

    Here is the crux of the mater: I have a piece of code to transmit 6 CAN messages across a CAN bus. When I'm simulating I can see that the message objects have been configure using the CAN Tools, in the peripherals menu, as they appear with the correct Data length direction and ID. However these messages will not transmit until the TXRQ checkbox/bit is set high. I can see that the message appears to be transmitted in the CAN Communications tab.

    When I have searched the included files (reg515c.h, rtxcan.h) to find where the Message Control Register is defined: I can't find it anywhere. So perhaps the question should be: How do I set the TXRQ bit in the message control register on the siemens c515c?