• AVR Freaks

Hot!Issue in getting signal from CAN TX pin of dsPIC33EV32GM104

Author
vijayakumar.sargunam
Starting Member
  • Total Posts : 33
  • Reward points : 0
  • Joined: 2012/10/12 22:59:47
  • Location: 0
  • Status: offline
2021/01/20 22:23:20 (permalink)
0

Issue in getting signal from CAN TX pin of dsPIC33EV32GM104

Hi,
 
       I am testing CAN program generating through MCC plugin for dsPIC33EV32GM104. I try to transmit a CAN message with ID 0x220 continuously and testing it using CAN bus analyzer. I assigned pin no 43 as CAN Tx and pin no 44 as CAN RX pin. I tested pin no 43 for any transmission of CAN message but the pin is always high. I cant able to trace the problem. with this i attached the CAN, clock, DMA setting through MCC plugin as images and also attached the code i was testing. 
 
#include "mcc_generated_files/system.h"
#include "mcc_generated_files/can1.h"

int main(void)
{
 uint8_t data[8] = {0};
 uint8_t msgObjData[8] = {0};
 CAN_MSG_OBJ rxCanMsg;
 rxCanMsg.data = data;
 CAN_MSG_OBJ txCanMsg;
 txCanMsg.data = msgObjData;
 
 
 // initialize the device
 SYSTEM_Initialize();
 CAN1_TransmitEnable();
 CAN1_ReceiveEnable();
 CAN1_OperationModeSet(CAN_CONFIGURATION_MODE);
 
 if(CAN_CONFIGURATION_MODE == CAN1_OperationModeGet())
 {
  if(CAN_OP_MODE_REQUEST_SUCCESS == CAN1_OperationModeSet(CAN_NORMAL_2_0_MODE))
  {
   while(1)
   {
          // Your code
          txCanMsg.msgId = 0x220;
          txCanMsg.field.idType = CAN_FRAME_EXT;
          txCanMsg.field.frameType = CAN_FRAME_DATA;
          txCanMsg.field.dlc = CAN_DLC_8;
          txCanMsg.data[0] = 0x20;
          txCanMsg.data[1] = 0x30;
          txCanMsg.data[2] = 0x1F;
          txCanMsg.data[3] = 0x2F;
          txCanMsg.data[4] = 0x22;
          txCanMsg.data[5] = 0x23;
          txCanMsg.data[6] = 0xFC;
          txCanMsg.data[7] = 0x3D;
          
          CAN1_Transmit(0, &txCanMsg);
    
    
   }
  }
 }

 while(1);
 return 0;
}

post edited by vijayakumar.sargunam - 2021/01/21 23:38:20

Attached Image(s)

#1

6 Replies Related Threads

    J_D
    New Member
    • Total Posts : 14
    • Reward points : 0
    • Joined: 2019/02/26 23:28:25
    • Location: 0
    • Status: offline
    Re: Issue in getting signal from CAN TX pin of dsPIC33EV32GM104 2021/01/20 23:04:28 (permalink)
    0
    Hi Vijaykumar,

    Could you please attach the project and please specify the hardware details.
    post edited by J_D - 2021/01/21 00:17:18
    #2
    vijayakumar.sargunam
    Starting Member
    • Total Posts : 33
    • Reward points : 0
    • Joined: 2012/10/12 22:59:47
    • Location: 0
    • Status: offline
    Re: Issue in getting signal from CAN TX pin of dsPIC33EV32GM104 2021/01/21 00:19:11 (permalink)
    0
    @J_D
     
          I attached the project file plz verify.
    #3
    J_D
    New Member
    • Total Posts : 14
    • Reward points : 0
    • Joined: 2019/02/26 23:28:25
    • Location: 0
    • Status: offline
    Re: Issue in getting signal from CAN TX pin of dsPIC33EV32GM104 2021/01/21 01:05:28 (permalink)
    0
    Hi Vijaykumar,

    Could you please try with Transmit high priority and please make sure hardware connections and CAN Bus analyzer connections are proper.
    Note: We can't connect Microcontroller directly to CAN Bus Analyzer. Required CAN Transceiver intermediate module. (Refer https://ww1.microchip.com/downloads/en/DeviceDoc/50002311A.pdf, Page No:32)
    [image]data:image/png;base64,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RQFhWBG/xtIlAOOxRh3WJECAQCYBYZhpN1aoJYZgGa+wrCUIECCQWkAYpt6ezxdXAjAeP7+KGQkQINCWgDBsa7/erjaGYBm/PakJCBAg0LiAMGx8A58tvwRgPD47h/MJECCwNQFhuLUd/aOfGIJl/MclniZAgMDmBYTh5rf4ssESgPF4eYZ/ESBAYH8CwnBnex5DsIx3RqBdAgQIXAkIwyuSbT9QAjAet92x7ggQIPC3gDD822hTZ8QQLONNNagZAgQIvCAgDF9Aa/mSEoDx2HI/aidAgMAnBIThJxQbmiOGYBk3VL5SCRAgsIiAMFyENe+kJQDjMW+1KiNAgMA6AsJwHec0q8QQLOM0xSmEAAEClQSEYSX4WsuWAIzHWrVYlwABAlkEHgrD+MZpfOi2ZpDlxagOAgQI1BIQhofthduzYV3rxWddAgQIZBEQhsIwy2tRHQQIEKgmIAyFYbUXn4UJECCQRUAYCsMsr0V1ECBAoJrAVRhWq8TCBAgQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDIIyAM8+yFSggQIECgkoAwrARvWQIECBDII/AP3zA1K9PANt8AAAAASUVORK5CYII=[/image]

    Attached Image(s)

    #4
    vijayakumar.sargunam
    Starting Member
    • Total Posts : 33
    • Reward points : 0
    • Joined: 2012/10/12 22:59:47
    • Location: 0
    • Status: offline
    Re: Issue in getting signal from CAN TX pin of dsPIC33EV32GM104 2021/01/21 03:13:38 (permalink)
    0
    @J_D,
     
            I changed the priority to high and reprogrammed and did it get any result. The Tx pin is always high. Even i tried debugging the code using pickkit3 some of the images are attached plz verify. Yes i am using CAN transceiver IC for communication with the processor. 
    #5
    J_D
    New Member
    • Total Posts : 14
    • Reward points : 0
    • Joined: 2019/02/26 23:28:25
    • Location: 0
    • Status: offline
    Re: Issue in getting signal from CAN TX pin of dsPIC33EV32GM104 2021/01/21 08:10:54 (permalink)
    0
    Hi Vijaykumar,
     
    Could you please add a break point in this line "CAN1_Transmit(CAN_PRIORITY_HIGH, &txCanMsg);" and check code is reached this place.
    post edited by J_D - 2021/01/21 10:19:24
    #6
    vijayakumar.sargunam
    Starting Member
    • Total Posts : 33
    • Reward points : 0
    • Joined: 2012/10/12 22:59:47
    • Location: 0
    • Status: offline
    Re: Issue in getting signal from CAN TX pin of dsPIC33EV32GM104 2021/01/21 22:45:16 (permalink)
    0
    Hi J_D,
     
           As you told i set breakpoint near CAN1_Transmit(CAN_PRIORITY_HIGH, &txCanMsg); and started debugging. while doing so the status of txMsgStatus is shown as  CAN_TX_MESSAGE_REQUEST_FULL == 0X0003.  so the message send failed. how to clear this issue? i attached the image of the debugging screen for reference. I made changes to the code which i attached below. And also the message buffer is always showing NULL value even though i loaded the message object with values. while debugging i attached CAN bus analyzer the bus analyzer shows error passive when the cursor comes to breakpoint near CAN1_Transmit(CAN_PRIORITY_HIGH, &txCanMsg);. Related images are attached.
     
    #include "mcc_generated_files/system.h"
    #include "mcc_generated_files/can1.h"
    //#pragma config ICS = PGD2
    //_FICD(ICS_PGD2);
    int main(void)
    {
    uint8_t data[8] = {0,1,2,3,4,5,6,7};
    uint8_t msgObjData[8] = {0,1,2,3,4,5,6,7};
    CAN_MSG_OBJ rxCanMsg;
    rxCanMsg.data = data;
    CAN_MSG_OBJ txCanMsg;
    //txCanMsg.data = msgObjData;


    // initialize the device
    SYSTEM_Initialize();
    CAN1_TransmitEnable();
    CAN1_ReceiveEnable();
    CAN1_OperationModeSet(CAN_CONFIGURATION_MODE);

    if(CAN_CONFIGURATION_MODE == CAN1_OperationModeGet())
    {
    if(CAN_OP_MODE_REQUEST_SUCCESS == CAN1_OperationModeSet(CAN_NORMAL_2_0_MODE))
    {
    while(1)
    {
    // if(CAN1_ReceivedMessageCountGet() > 0)
    // {
    // if(true == CAN1_Receive(&rxCanMsg))
    // {
    // if(rxCanMsg.msgId == 0x108)
    //{
    // Your code
    txCanMsg.msgId = 0x220;
    txCanMsg.field.idType = CAN_FRAME_STD;
    txCanMsg.field.frameType = CAN_FRAME_DATA;
    txCanMsg.field.dlc = CAN_DLC_8;
    //txCanMsg.data = data;
    txCanMsg.data = msgObjData;

    CAN1_Transmit(CAN_PRIORITY_HIGH, &txCanMsg);
    // }
    //}
    //}
    }
    }
    }
    while(1);
    return 0;
    }
    post edited by vijayakumar.sargunam - 2021/01/21 23:39:12
    #7
    Jump to:
    © 2021 APG vNext Commercial Version 4.5