• 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 » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » Uart in Interrupt Mode ?
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      A look back: Two years of Multicore Mix

      Posted 12 hours ago
      by Lauren Reed1
      A big thank you to everyone who participated in our contest last...
    • $core_v2_blog.Current.Name

      It’s our second anniversary, but you get the present!

      Posted 7 days ago
      by Lindsey Bare
      It’s hard to believe it’s already been two years...
    • $core_v2_blog.Current.Name

      Limited time offer: Save $100 on Keystone-based EVM!

      Posted 20 days ago
      by tscheck
      Have you been thinking about ordering a TI Keystone-based EVM...

    Uart in Interrupt Mode ?

    Uart in Interrupt Mode ?

    This question is answered
    Koray Korkmazer
    Posted by Koray Korkmazer
    on Aug 02 2012 06:35 AM
    Intellectual770 points

    Hello,

    I am trying to run uart in interrupt mode on my C6678L EVM. I want to use USB debug cable (not DB-9 one) for doing this. My application deploys Sys-Bios . Here is what I've done:

    1. I've programmed Corepac Intc: Enabled hwi 4, enabled primary event 63, assigned an interrupt handler to it.
    2. I 've programmed Chip Level Intc 0: I enabled System Interrupt 149 (Uart Rx Event), and mapped it to channel 3.
    3. I got cpintc_test example as referans design for me.
    4. I tested my application using test methods in 'cpintc_test', and test ran successfully : My test was including System Interrupt 149 mapped to channel 3, primary event 63 and hwi 4 as I described above. The interrupts were driven manually using STATUS_SET_INDEX_REG of CpIntc. And I saw interrupt hadler working and test running successfully.
    5. I programmed platform uart peripheral using platform library. The only modificaiton that I did was enabling ERBI interrupt. I recompiled platform_lib and deployed it in my application.
    6. But when I try to send any character from hyperterminal (with settings: 115200 bps, parity even, Flow control none ), the PC does not hit to the interrupt handler.

    Do I need to do any extra modification at platform library other than step 5 for achieving my goal ?

    Thanks in advance,
    koray

    uart interrupt
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Steven Ji
      Posted by Steven Ji
      on Aug 02 2012 09:35 AM
      Expert8595 points

      Koray,

      Based on the section 2.8 "Interrupt Support" in UART user guide, URXEVT and UTXEVT are DMA events, not CPU events.

      So instead of using system event #149 (URXEVT), please give a try of event #148 (UART interrupt). The receive data event (RDAINT) along with other UART interrupt requests are connected to that single interrupt event, which is forward to chip-level interrupt controller event #148 and then to CPU.

      Sincerely,

      Steven

      ------------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Koray Korkmazer
      Posted by Koray Korkmazer
      on Aug 03 2012 08:37 AM
      Intellectual770 points

      Hi Steven,

      I changed the system interrupt number to 148, but still unable to see the interrupts working.
      Also, I have some extra questions:

      1. At the link below, it says that jtag and Uart functionality can be used simultaneously at XDS100v2 emulators. And it says it is not officially supported. Does that mean that I shouldn't use jtag and Uart simultaneously ?
        http://processors.wiki.ti.com/index.php/XDS100#Q:_Can_I_use_port_B_as_a_UART.3F
      2. And on the 6678EVM, emulator is XDS100v1 , not v2.  Is Uart functionality valid in this version ? Beause, in the link above, it seems that Uart functionality is not supported at v1 type emulators.

      regards,
      koray.

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Aug 03 2012 16:48 PM
      Expert8595 points

      Koray,

      For the XDS100 emulator, "not officially supported" means the functionality does not be verified for XDS100v2, since it requires the customized hardware design.

      On C6678 EVM, the XDS100 should support both of JTAG and UART simultaneously since they are using different channels (Channel A&B) in the USB-JTAG converter. Please double check the COM_SEL1 that if shunts installed over COM_SEL1.3-COM_SEL1.1 and COM_SEL1.4-COM_SEL1.2 for the mini-USB connection. Please refer to the EVM manual for more details.

      For the UART interrupt, please double check if DLAB=0 in LCR register when you set 1 ERBI field of IER register.

      And when UART receives data, please also check the IIR register to see if the receive interrupt has been recorded in the registers. If there is no pending interrupt, it might indicate the UART interrupt has not been setup correctly.

      If you would like, you can also share your test case here and we can try to verify it in our setup as well. 

      Sincerely,

      Steven

      ------------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Koray Korkmazer
      Posted by Koray Korkmazer
      on Aug 08 2012 03:51 AM
      Intellectual770 points

      Hi Steven,

      Please find the attached project that I built for you. I also added the platform library that I am using.

      I checked the shunts, they are at the right place.
      I checked DLAB bit at LCR register, it is 0.
      I checked the IIR register when I stop PC manually, it always remain at 0. It seems there is a problem at UART setup as you suggested.

      regards,
      Koray0830.intcDeneme.zip


       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Koray Korkmazer
      Posted by Koray Korkmazer
      on Aug 10 2012 08:16 AM
      Intellectual770 points

      Hi Steven,

      I also attached the UartInit() function of the platform library that I am using. Please find it.

      Regards,
      Koray.7558.UartInit.txt

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Aug 10 2012 18:11 PM
      Expert8595 points

      Koray,

      Thanks for the example test project. I will look into it and hope to get back to you soon. 

      Sincerely,

      Steven

      ------------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • xiang_li
      Posted by xiang_li
      on Aug 11 2012 20:33 PM
      Intellectual925 points

      Hi Koray,

      As your example test, check your code about IER. I saw your interrupt is disable in code.

      Don't forget to verify answers to your forum questions by using the green "Verify Answer" button.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Aug 13 2012 13:57 PM
      Verified Answer
      Verified by Koray Korkmazer
      Expert8595 points

      Koray,

      I modified your example and attached below for your reference. 

      Basically, we have to specify the baud rate and enable ERBI bit in IER register.

      The modification is based on the "platform_test" project in the PDK.

      And the testing could be completed by using USB cable (XDS100 channel B). The XDS100 supports both JTAG and UART communications simultaneously.

      The following link could be helpful as well.

      http://processors.wiki.ti.com/index.php/Using_the_serial_adapter_of_XDS100

      6354.main.zip

      Sincerely,

      Steven

      ------------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Koray Korkmazer
      Posted by Koray Korkmazer
      on Aug 29 2012 06:35 AM
      Intellectual770 points

      Hi Steven,

      Sorry for responding late. I was on vacation for some time .

      I analyzed your project and found out that the problem at my project was PLL initialization. I haven't done any platform initialization and also PLL initialization. When I initialized it, it worked !!

      Your project helped me to see the PLL initialization part.

      By the way, I modified my platform library and set ERBI bit, baudrate there. That's why you didn't see any initialization code for these settings in my project. It was already included in my platform library and platform library file was in the project folder.

      Thanks and regards,
      koray.

      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