Dear Team,
One of my customers has the following problem with the ICE v2 evaluation board (Sitara - AM3359)
Could you please help us with that.
=============================================================
Currently I am trying to run the CAN loopback example included with the SYS/BIOS Industrial SDK 2.1.0.1. Unfortunately I have experienced some issues with this sample project, so I hope you could give me some guidance to understand and overcome these problems. Our development kit consists of a ICE v2 evaluation board with an AM3359 processor. And the issues I have found are described below.
- I had to comment out some function calls that identify the board and the processor on which the firmware is running since they hang in an endless loop. I just got sure that these function calls were not setting members of configuration data structures (otherwise I set them by hand to the values of our board and processor). This is not a problem at all, but I think it is worth mentioning it – I hope I did not break anything.
- The sample program asks for one to ten data frames to send in loopback mode. After introducing the data, nothing seems to happen. Only if you pause the program and hit “play” again, some characters are displayed on the terminal. After several pause/play cycles, the output buffer is completely flushed. Should it not display the characters smoothly and without user actions?
- According to the technical reference manual of the processor (TI literature number SPRUH73P), fig. 23-6, the CAN module should send the frame to the TX pin, also in loopback mode. We are not able to see anything on the pin, on both sides of the CAN transceiver. The jumpers for the pins found next to the transceiver are connected as explained on the hardware schematics of the board.
By the way, I realized that the pin mux table of the board did not include the control registers to configure the pins as CAN TX/RX, so I wrote the configuration by hand:
*can0_tx_pinmux = PAD_MUX_SELECT_CAN | PAD_PULLUP_DISABLE | PAD_SLEW_CONTROL_FAST; // this produces 0x0009
Where can0_tx_pinmux points to 0x44E1 0000 (base address of the control module) + 0x091C (offset for the MII1_TXD3 pin, which is multiplexed to DCAN0_TX). Nevertheless, the Memory Viewer of Code Composer Studio indicates that the proper address of that register has an offset of 0x0928. None of these addresses produce activity on the CAN TX pin. Except for the changes noted here, I have not modified the CAN driver from the example of the SDK.
Could you please confirm which the right offset of the pin mux is? Am I forgetting to configure any other register in order to make the pin mux work?
=============================================================
Thank you in advance for your help,
Regards,
Bilal MALIK