CAN protocol | Cypress Semiconductor

CAN protocol

Summary: 2 Replies, Latest post by Attilio Ciaccio on 07 Aug 2016 07:40 PM PDT
Verified Answers: 0
Last post
Log in to post new comments.
Attilio Ciaccio's picture
2 posts

Dear all
Could some one that have a good and working application for the CY8C5868 or PSOC5PL about CAN application just to send recive message give me one copy?
I am trying strong but no way. The micro start to sen message and never stop and never up grade the data. I have also open a case but nothing. ..
Best regards and many thanks in advance
Attilio Ciaccio Il Gruppo

HIMA's picture
Cypress Employee
169 posts


Can you please have a look at the application note:



Attilio Ciaccio's picture
2 posts

Hi   Hima

Thanks for the suggest but i have seen already this AN, but anyway looking deeper on the code, i note i difference betwen the AN52701 and the code generate for the KIT CY8CKIT-059.

The AN52701, have file CAN_Data_TX_RX_func.c , where we can found the function called by the main.c :   CAN_SendMsgTxMessage1(void)

following the code:

uint8 CAN_SendMsgTxMessage1(void)
        uint8 result = CYRET_SUCCESS;
        if ((CAN_TX[0u].txcmd.byte[0u] & CAN_TX_REQUEST_PENDING) ==
            result = CAN_FAIL;
            /* `#START MESSAGE_TxMessage1_TRASMITTED` */

            /* `#END` */
            CY_SET_REG32((reg32 *) &CAN_TX[0u].txcmd, CAN_SEND_MESSAGE);

As you can see the condiction,      if ((CAN_TX[0u].txcmd.byte[0u] & CAN_TX_REQUEST_PENDING) ==
have a compare with  "CAN_TX_REQUEST_PENDING"  define as 01u, but to the kit code we have:

#if (CY_PSOC3 || CY_PSOC5)

if ((CAN_Data_TX[0u].txcmd.byte[0u] & CAN_Data_TX_REQUEST_PENDING) != 0u).

This means that we have always the  CAN_FAIL due to 0u and not 01u.

Actually i am doing a service to the Bolivia  forest , and no way to do any test until next week

Please anyway could you give to  me your opinion?

Best regards


Log in to post new comments.