• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Embedded Software » BIOS » BIOS forum » Concerto IPC -CAN protocols conflict
Share
BIOS
  • Forum
  • Announcements
Options
  • Subscribe via RSS

Concerto IPC -CAN protocols conflict

Concerto IPC -CAN protocols conflict

This question is answered
Sabina Greenberg101872
Posted by Sabina Greenberg101872
on Aug 02 2012 06:53 AM
Expert1310 points

Dear support,

We have a program on Concerto F28m35H52C1 (CCS 5.2.1, SYS/BIOS 6.33.5.46, xdtools 3.23.4.60) with CAN protocol working. After adding to the configuration file IPC support:
var IpcMgr = xdc.useModule('ti.sdo.ipc.family.f28m35x.IpcMgr');
IpcMgr.readAddr  = 0x20016000;
IpcMgr.writeAddr = 0x20014000;
IpcMgr.sharedMemoryOwnerMask = 128;
IpcMgr.messageQSize = 256;:

CAN stop working - we get ReceiveError in CAN bus.
We didn't find any operlap memory problem.

It is known about any conflict between CAN and IPC? TCP/IP and USB protocols works with IPC support properly.

Thanks,Sabina

 

 

Concerto IPC -CAN protocols conflict
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • judahvang
    Posted by judahvang
    on Aug 02 2012 16:40 PM
    Genius16715 points

    Sabina,

    I do not know much about CAN, but I do know about IPC.  I don't really see how IPC would interfere with CAN.

    Are there different threads in your system for handling CAN and IPC?

    Without more information its hard to say what's going on in your application.

    What would cause a ReceiveError?  Is the System too busy that it is not able to process things in time?

    Judah

    If my reply answers your question please mark the thread as answered

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Sabina Greenberg101872
    Posted by Sabina Greenberg101872
    on Aug 05 2012 03:07 AM
    Expert1310 points

    Hi Judah,

    The problem dissapeared after changing Boot.M3SSDIVSEL = Boot.M3Div_1; (in the problematic version Boot.M3SSDIVSEL = Boot.M3Div_2);

    if we set configuration to  M3 -75mhz, DSP-150Mhz , 
                       SysCtlClockGet(SYSTEM_CLOCK_SPEED) return 37500000 - that is problematic for the CAN,
    with Boot.M3SSDIVSEL = Boot.M3Div_1;(M3 -150mhz, DSP-150Mhz)
                       SysCtlClockGet(SYSTEM_CLOCK_SPEED) return 75000000 - that work with CAN properly

    we should work with M3 -75mhz, DSP-150Mhz, Can-1Mhz

    What is the properly configuration should be done for our purpose? As we see CAN doesn't work properly for all frequencies.

     Coul you please consult with Trey German and Mike (from http://e2e.ti.com/support/microcontrollers/tms320c2000_32-bit_real-time_mcus/f/171/t/199774.aspx)

    Thanks,Sabina

    Concerto F28M35x - can_loopback_m3 Bit Rate
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Trey German
    Posted by Trey German
    on Aug 17 2012 08:57 AM
    Verified Answer
    Verified by David Friedland
    Genius14440 points

    Sabina,

    The reason CAN is failing is because the bit rate is configured incorrectly.  It looks like there might be an error in the SysCtlClock get function which is causing it to return the wrong value.  That function should always return the M3 clock speed, and it appears it is returning the speed divided by 2.  I'll take a look at this function later today.

    For now, I would set you CAN bit timing values manually without using the SysCtlClockGet API.  Also, The M3 IS NOT designed to run at 150MHz.  Running the M3 at 150MHz may have unpredictable results.  If you are running the C28 at 150MHz, you must run the M3 at 75MHz.

    Regards,

    Trey

    Trey German

    C2000 Applications

    If a post answers your question, please mark it with the "verify answer" button.
    Visit these helpful C2000 Links!
    C2000 TI Wiki Pages
    TI Forum Sitemap
    ControlSUITE
    C2000 Getting Started
    CLA FAQs
    Workshop Material!
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Sabina Greenberg101872
    Posted by Sabina Greenberg101872
    on Aug 26 2012 00:13 AM
    Expert1310 points

    Hi Trey,

    For manually setting you use CANBitTimingSet() function. But how to know the values of tCANBitClkParms structure. I know only that CAN work in the 1Mhz speed. What values shoud be set for Concerto CAN ? Does exist any example with this function using?

    Thanks, Sabina

     

    Concerto IPC -CAN protocols conflict / CAN configuration
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Trey German
    Posted by Trey German
    on Aug 27 2012 08:46 AM
    Suggested Answer
    Genius14440 points

    Sabina,

    Bit rate calculations are talked about in detail in section 25.12 of the Concerto Technical Reference manual (spruh22).  Calculating the bit rate is a somewhat iterative process where you must first select the time quanta by setting the divider.  Then  you select the actual bit rate and sample point by setting the Tseg1 and Tseg2 values appropriately.  Please read the guide and give it a try yourself.

    Regards,

    Trey

    Trey German

    C2000 Applications

    If a post answers your question, please mark it with the "verify answer" button.
    Visit these helpful C2000 Links!
    C2000 TI Wiki Pages
    TI Forum Sitemap
    ControlSUITE
    C2000 Getting Started
    CLA FAQs
    Workshop Material!
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Sabina Greenberg101872
    Posted by Sabina Greenberg101872
    on Sep 05 2012 10:15 AM
    Expert1310 points

    Hi Trey,

    Thanks for the answer.
    We have two projects : one on the Piccolo and another one on the Concerto. Piccolo and Concerto speak by CAN protocol.

    The questions are the following:

    1. Is there is a reason of the oppositive mailbox priority in Piccolo(mailbox 31 has the highest receive priority) and Concerto (Message object 1 has the highest priority, while message object 32 has the lowest priority)?

    2.In Concerto technical doc #25.11.2 -"...The receive/transmit priority for the message objects is attached to the message number, not to the CAN identifier..."
    It is not clear what is 'message number' and what is 'CAN identifier'. Does it mean that messageID(CAN identifier??) doesn't influence on the priority during receive messages?

    3. Is there is a reason of the oppositive Filter Mask:
    in Concerto Msk[28:0]:1 -The corresponding bit in the message identifier is used for acceptance filtering.
    in Piccolo LAM[28:0]:  0 -Received identifier bit value must match the corresponding identifier bit of the MSGID register.

    May be I don't understand it propely... Could you please clarify it.

    Thanks,Sabina

    Concerto /Piccolo CAN protocol differences
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Trey German
    Posted by Trey German
    on Sep 06 2012 10:15 AM
    Suggested Answer
    Genius14440 points

    Sabina,

    You understand the differences just fine.  Concerto has a different CAN controller than the Piccolo devices.

    1. No reason, this is just an implementation differences between the two CAN controllers
    2. The message number refers to the mail box number.  You are correct, the message ID does not impact priority.
    3. Once again, this is just because of the two different CAN controller implementations.

    Trey

    Trey German

    C2000 Applications

    If a post answers your question, please mark it with the "verify answer" button.
    Visit these helpful C2000 Links!
    C2000 TI Wiki Pages
    TI Forum Sitemap
    ControlSUITE
    C2000 Getting Started
    CLA FAQs
    Workshop Material!
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Sabina Greenberg101872
    Posted by Sabina Greenberg101872
    on Sep 06 2012 10:27 AM
    Expert1310 points

    Hi Trey,

    Thanks for rapid and clear answer.

    Sabina

    Concerto IPC -CAN protocols conflict
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

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.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use