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

Heterogenous platform CAN implementation .

Hi All,

We have 3 boards in all 1)MCB2300 development board (LPC2378 based) 2)MCBSTM32C development board (STM32F107VCT06 based) 3)OEM Base Board QVGA v1.1 from Embedded Artists (LPC2478 based)

We have established communication between the first 2 ,however communication with the third board is failing.

We have ensured that the following things were taken care of :
1) Baud rates were the same
2) acceptance filter is in bypass mode
3) bus is free after a certain portion of time
4) interrupts are enabled
5) the format of sending and receiving the data is the same.
6) the registers have been checked from time to time.

The problems we are facing are
1) the routine for the reception in lpc2478 is never getting called when trying to detect a transmission from the other board.

The status of the GSR is initially 3C and then C.
The Can_Handler provided in the demo code for the interrupts is never getting called.

The same routine when used for transmission within the same board between CAN1 and CAN2 controllers works perfectly well.

The errors being shown on the GSR vary from time to time ranging from 80005c-80007c.

2) the vice-versa also holds true . when the lpc2478 is transmitting the MCB2300 and MCBSTM32 are not able to recieve.

We are sure about the working of the routine in the other 2 boards as they can communicate with each other.

are we missing something. any help will be appreciated.

thank you.

Parents
  • A few things were brought to our notice while running the program in the debugger mode.
    When we were running the debugger , while receiving from another board, the few errors that we observed are :
    1) bits: ID 21:28 stuff error
    2) bit:error delimiter ,form error
    3) The IRQ priority 1 turns into an FIQ
    4) The control is never passed on to the correct address of the CAN_handler(interrupt routine).

    We would again say that the same routine without any changes works perfectly well if we were to send a message from CAN1 to CAN2 on the same board and fails if another board is brought into picture.

Reply
  • A few things were brought to our notice while running the program in the debugger mode.
    When we were running the debugger , while receiving from another board, the few errors that we observed are :
    1) bits: ID 21:28 stuff error
    2) bit:error delimiter ,form error
    3) The IRQ priority 1 turns into an FIQ
    4) The control is never passed on to the correct address of the CAN_handler(interrupt routine).

    We would again say that the same routine without any changes works perfectly well if we were to send a message from CAN1 to CAN2 on the same board and fails if another board is brought into picture.

Children