I have a working driver for DCAN on AM335xEVM. It works properly upto 500KHz but it appears that there are a few errors on the line when I try to communicate at 1MHz.
I am using Komodo as both analyzer and network node. The problem specifically arises when I try to send data from Komodo to DCAN at 1MHz. The line shows Form, Stuff and Bit errors but the received data in DCAN is correct with all parameters and flags properly set in the message object.
Is there a known issue with DCAN? Or has anyone tried using DCAN at 1MHz without this issue?
I'd suggest checking for noise or grounding issues: different transceivers can react differently to different conditions (some can "clean up" dirty signals better than others). Have you looked at the quality of the signal with a scope?
(admittedly I haven't tried the DCAN at 1MHz, so I can't comment on that: this is just based on my past experiences with CAN in general, which may be of no help to you).
We are using the DCAN0 port out of the AM3359 processor on a custom board at 1 MHz with no errors. We have not tried it on the AM335xEVM board.
@Darrin, thanks for the tip. It is possible that it might be a noise issue and its getting more pronounced at high speeds. I've already tried to increase the tolerance of network but that does not seem to solve the issue. I'll mitigating network noise in connection and see if that helps.
@Stephanie, I don't get any errors in DCAN controller either but I'm also monitoring the line and it seems that the line has errors (which is probably because write operations of the other node in the network is causing issue). But my concern is that we are using the same node to communicate at 1MHz with HECC and other can controllers as well and the errors pop up only in DCAN's case.
What about the case if you connect AM335x DCAN with HECC? Are you seeing any issues in this case?
Are you properly taken case of terminating resistors? How are you connecting AM335x DCAN transceiver with komodo?
Please mark this Forum post as answered via the Verify Answer button below if it helps answer your question. Thanks!
No problem on contacting me directly. Here are some ideas that come to mind:
1) Check that you have two 120 Ohm terminating resistors.
2) Check the slope settings of the CAN transceivers (i.e. the slope input pin). Sometimes transceivers are wired for lower speeds, like 250K. For full speed, you normally ground the slope pin.
3) I don't think this is it, but it is possible that there is PLL jitter. PLL jitter does affect higher baud rates more than lower. You should scope the CAN bus and see if every bit is exactly 1.00 us in length (when running at 1Mbps).
I hope the above helps.
JR Simma The CAN Experts!
Thanks for your suggestions, let me work on these suggestions and I'll share the results.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.