I have problems to get the CAN controller on my Infineon XC886 CM running. Have someone example code for sending a CAN message via CAN node 0 (CAN RXD Port 1_6, CAN TXD Port 1_7)? I have tryed to use Dave-generated code with the following code in my main-function:
un_32bit canTestObject;
canTestObject.ubDB[0] = 0x77; canTestObject.ubDB[1] = 0x76; canTestObject.ubDB[2] = 0x75; canTestObject.ubDB[3] = 0x74;
CAN_vLoadData(0x00, &canTestObject.ulVal); CAN_vSetMSGVAL(0x00); CAN_vTransmit(0x00);
But it only works in the software-simulator (in der Peripherals->MultiCAN->CAN Communication 0 window the sended messages appear) but not on my self-made board (nothing to see with oscilliscope on the MCU-Pins 1_6 and 1_7).
"But it only works in the software-simulator"
So why do you think another example will help?
If it works in the simulator, then the logic must be basically correct - the problem must be down to some hardware-dependency; eg,
* The hardware design is flawed; * The hardware design is good, but you've built it wrong; * The hardware design is good, you've built it right, but some component(s) is/are faulty; * The hardware's all good, but your software is not correctly configured for it; * The hardware's all good, but your software has some timing issue or other hardware dependency/interaction that doesn't show up in simulation; etc, etc,...
You need to locate the problem first!
Actually I dont know what is the problem, maybe its the hardware. But I have build two boards which are based on the schematic of the Keil evaluation boards. All other functions on both boards working fine, only CAN does not. So I thought the problem is the software. I will check the hardware again to see what is maybe wrong.
Thank you for your comment!
View all questions in Keil forum