• 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) » OMAP™ Processors » OMAP-L13x, AM1x and C674x Processors Forum » OMAP L138 I2C1 interface doesn't work
Share
OMAP™ Processors
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Resources
  • OMAP-L1x DSP+ARM9™-based Processors Product Folder
  • OMAP3525/30 DSP+ARM Cortex™-A8-based SOCs Product Folder

  • Top OMAPL Wiki Links
  • OMAPL3x Schematic Review Checklist
  • OMAPL13x Boot resources

  • OMAPL Document Resources
  • OMAPL137 Technical reference manual
  • OMAPL138 Technical reference manual
  • OMAPL Boot loader App Notes
  • Forums

    OMAP L138 I2C1 interface doesn't work

    This question is answered
    Roland Stark
    Posted by Roland Stark
    on Dec 12 2011 04:10 AM
    Prodigy220 points

    Since I had an I2C address conflict on LogicPD EVM I was forced to switch to I2C1 interface on OMAP L138 (code runs on DSP). As I can see, this interface does not work. After starting bus activitiy by setting start bit in ICMDR, I observed the follwing:

    1. SDA turns to lo state.
    2. SCL produces exactly 1 cycle
    3. SDA turns back to hi state
    4. No more bus activity (slave address is not sent)

    The driver I have programmed works on I2C0. To run it on I2C1 I did the following changes:

    • Switched to base address of I2C1 register set
    • Re-Calculated bus frequency to SYSCLK2 input clock
    • Switched I2C1 on in PINMUX.
    • All peripherals are turned on (GEL file)

    I also have attached a TMS320C6748 SOM to the baseboard to run the same code on it and it worked perfectly! So this seems to be a silicon bug to me. To prove that I attached a 2nd OMAP SOM to the baseboard and observed the same problems.

    Any ideas or is there a workaround?

    Thanks in advance.

    Roland

    i2c OMAP-L138 OMAPl138 DSP C674x l138 omap-l138 L138 L-138 c6748
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Paul.Yin
      Posted by Paul.Yin
      on Dec 14 2011 13:21 PM
      Genius14385 points

      Hi Roland,

      Are you saying the same code works when you drop a C6748 SOM, but not when you drop in a OMAPL138 part? If that's the case, I would first check on logicPD website to make sure the SOM and baseboard are compatible. You also need to make sure you OMAPL138 SOM is not damaged. =)

       

      regards,

      Paul

      PS: Please mark this post as answered via the Verify Answer button below if you think it answers your question.  Thanks!

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Roland Stark
      Posted by Roland Stark
      on Dec 15 2011 01:23 AM
      Prodigy220 points

      Hi Paul,

      that's true, C6748 SOM works, OMAPL138 does not (with identical code). Following your recommendation I came to these results:

      • I couldn't find any indication regarding incompatibility of SOM and baseboard. Furthermore, baseboard and SOM cam with the same ZOOM EVM, so they should be compatible, right?
      • I also dropped another OMAP L138 SOM, which did not work as well (so OMAP seems not to be damaged).

      After all, to me it seems that OMAP I2C is not working. When I attach a logic analyzer to the SDA and SCKL wires, I can see bus activity (start bit) but it stops before slave address appears. On the baseboard the were a RS232 transceiver attached to the I2C1 pin, but I removed it prior to my checks. SOM has no I2C slaves on I2C1, so my 2 external I2C devices are the onlöy slaves that are attached to I2C1.

      Any other ideas?

      Regards,

      Roland

       

      i2c omap l138 OMAP-L138 OMAPl138 l138 omap-l138 L138 L-138 OMAP_L138 OMAP L-138
      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Paul.Yin
      Posted by Paul.Yin
      on Dec 15 2011 15:54 PM
      Genius14385 points

      Roland,

      This is really weird. Is there a simple testcase that you can send it to me to quick test it out locally? Preferablly with a failure/pass checking mechanism.

       

      regards,

      Paul

      PS: Please mark this post as answered via the Verify Answer button below if you think it answers your question.  Thanks!

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Roland Stark
      Posted by Roland Stark
      on Dec 21 2011 01:47 AM
      Prodigy220 points

      Paul,

      sorry I'm not allowed to post an example. If you send me your email address to my registered email address, I'll send you a reduced and modified code that shows the effect.

      Regards,

      Roland

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Brad Griffis
      Posted by Brad Griffis
      on Dec 23 2011 11:37 AM
      Guru57330 points

      What's the ARM core doing while you're running this code on the DSP?  Are you sure it's not running Linux and perhaps getting in the way?

      What's the SCL frequency for the little bit of activity that you're seeing?  Please dump the I2C registers just before you kick off the transaction and just after it fails.

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

      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.
    • Roland Stark
      Posted by Roland Stark
      on Jan 10 2012 04:37 AM
      Prodigy220 points

      Hi Brad,

      • ARM core does nothing, it's just turned on. I don't run Linux on it.
      • SCL frequency of the single clock signal is 400 kHz as expected.
      • I2C registers have correct content (driver works on single core C6748 and register content is identical to OMAP).

      Regards,

      Roland

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Brad Griffis
      Posted by Brad Griffis
      on Jan 20 2012 11:01 AM
      Guru57330 points

      I assume this issue is still unresolved?  After you've unsuccessfully attempted to run your code, can you load this gel file and do the "Run All" script:

      http://processors.wiki.ti.com/index.php/OMAP-L1x_Debug_Gel_Files

      Please paste the results into a txt file and attach to a reply.

      Thanks,
      Brad

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

      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.
    • Roland Stark
      Posted by Roland Stark
      on Jan 23 2012 01:19 AM
      Prodigy220 points

      Hi Brad,

      here is the output:

      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |             Device Information            |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: DEV_INFO_00 = 0x1B7D102F
      C674X_0: GEL Output: DEV_INFO_01 = 0x00000000
      C674X_0: GEL Output: DEV_INFO_02 = 0x0000000C
      C674X_0: GEL Output: DEV_INFO_03 = 0x00000032
      C674X_0: GEL Output: DEV_INFO_04 = 0x00000000
      C674X_0: GEL Output: DEV_INFO_05 = 0x000003E0
      C674X_0: GEL Output: DEV_INFO_06 = 0x08000200
      C674X_0: GEL Output: DEV_INFO_07-DEV_INFO_08-DEV_INFO_09-DEV_INFO_10-DEV_INFO_11-DEV_INFO_12 = 0-0-5929125-14-48-26
      C674X_0: GEL Output: DEV_INFO_13,DEV_INFO_14,DEV_INFO_15,DEV_INFO_16 = 2,0,0,10514
      C674X_0: GEL Output: -----
      C674X_0: GEL Output: DEV_INFO_17 = 0x00030003
      C674X_0: GEL Output: DEV_INFO_18 = 0x00000000
      C674X_0: GEL Output: DEV_INFO_19 =C674X_0: GEL Output: 0C674X_0: GEL Output: 0C674X_0: GEL Output: 0C674X_0: GEL Output: 0C674X_0: GEL Output: 0C674X_0: GEL Output:
      C674X_0: GEL Output: -----
      C674X_0: GEL Output: DEV_INFO_20 = 0x30303864
      C674X_0: GEL Output: DEV_INFO_21 = 0x3630306B
      C674X_0: GEL Output: DEV_INFO_22 = 0x00000000
      C674X_0: GEL Output: DEV_INFO_23 = 0x00000000
      C674X_0: GEL Output: -----
      C674X_0: GEL Output: DEV_INFO_24 = 0x0E01A030
      C674X_0: GEL Output: DEV_INFO_25 = 0x005A78A5
      C674X_0: GEL Output: DEV_INFO_06 = 0x08000200
      C674X_0: GEL Output: DEV_INFO_26 = 0x52240002
      C674X_0: GEL Output:

      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |               BOOTROM Info                |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: ROM ID: d800k006
      C674X_0: GEL Output: Silicon Revision 2.0
      C674X_0: GEL Output: Boot pins: 12
      C674X_0: GEL Output: Boot Mode: SPI1 Flash
      C674X_0: GEL Output:
      ROM Status Code: 0x00000000
      Description:C674X_0: GEL Output: No error
      C674X_0: GEL Output:
      Program Counter (PC) = 0xC316194C
      C674X_0: GEL Output:
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |              Clock Information             |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output:
      C674X_0: GEL Output: PLLs configured to utilize crystal.
      C674X_0: GEL Output: ASYNC3 = PLL0_SYSCLK2
      C674X_0: GEL Output:
      C674X_0: GEL Output: NOTE:  All clock frequencies in following PLL sections are based
      C674X_0: GEL Output: off OSCIN = 24 MHz.  If that value does not match your hardware
      C674X_0: GEL Output: you should change the #define in the top of the gel file, save it,
      C674X_0: GEL Output: and then reload.
      C674X_0: GEL Output:
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |              PLL0 Information             |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output:
      C674X_0: GEL Output: PLL0_SYSCLK1 = 300 MHz
      C674X_0: GEL Output: PLL0_SYSCLK2 = 150 MHz
      C674X_0: GEL Output: PLL0_SYSCLK3 = 25 MHz
      C674X_0: GEL Output: PLL0_SYSCLK4 = 75 MHz
      C674X_0: GEL Output: PLL0_SYSCLK5 = 100 MHz
      C674X_0: GEL Output: PLL0_SYSCLK6 = 300 MHz
      C674X_0: GEL Output: PLL0_SYSCLK7 = 50 MHz
      C674X_0: GEL Output:
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |              PLL1 Information             |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output:
      C674X_0: GEL Output: PLL1_SYSCLK1 = 300 MHz
      C674X_0: GEL Output: PLL1_SYSCLK2 = 150 MHz
      C674X_0: GEL Output: PLL1_SYSCLK3 = 100 MHz
      C674X_0: GEL Output:
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |              PSC0 Information             |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output:
      C674X_0: GEL Output: State Decoder:
      C674X_0: GEL Output:  0 = SwRstDisable (reset asserted, clock off)
      C674X_0: GEL Output:  1 = SyncReset (reset assered, clock on)
      C674X_0: GEL Output:  2 = Disable (reset de-asserted, clock off)
      C674X_0: GEL Output:  3 = Enable (reset de-asserted, clock on)
      C674X_0: GEL Output: >3 = Transition in progress
      C674X_0: GEL Output:
      C674X_0: GEL Output: Module 0:    EDMA3CC (0)        STATE = 3
      C674X_0: GEL Output: Module 1:    EDMA3 TC0          STATE = 3
      C674X_0: GEL Output: Module 2:    EDMA3 TC1          STATE = 3
      C674X_0: GEL Output: Module 3:    EMIFA (BR7)        STATE = 3
      C674X_0: GEL Output: Module 4:    SPI 0              STATE = 3
      C674X_0: GEL Output: Module 5:    MMC/SD 0           STATE = 3
      C674X_0: GEL Output: Module 6:    AINTC              STATE = 3
      C674X_0: GEL Output: Module 7:    ARM RAM/ROM        STATE = 3
      C674X_0: GEL Output: Module 9:    UART 0             STATE = 3
      C674X_0: GEL Output: Module 10:    SCR 0 (BR0/1/2/8)  STATE = 3
      C674X_0: GEL Output: Module 11:    SCR 1 (BR4)        STATE = 3
      C674X_0: GEL Output: Module 12:    SCR 2 (BR3/5/6)    STATE = 3
      C674X_0: GEL Output: Module 13:    PRUSS              STATE = 0
      C674X_0: GEL Output: Module 14:    ARM                STATE = 3
      C674X_0: GEL Output: Module 15:    DSP                STATE = 3
      C674X_0: GEL Output:
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output: |              PSC1 Information             |
      C674X_0: GEL Output: ---------------------------------------------
      C674X_0: GEL Output:
      C674X_0: GEL Output: State Decoder:
      C674X_0: GEL Output:  0 = SwRstDisable (reset asserted, clock off)
      C674X_0: GEL Output:  1 = SyncReset (reset assered, clock on)
      C674X_0: GEL Output:  2 = Disable (reset de-asserted, clock off)
      C674X_0: GEL Output:  3 = Enable (reset de-asserted, clock on)
      C674X_0: GEL Output: >3 = Transition in progress
      C674X_0: GEL Output:
      C674X_0: GEL Output: Module 0:    EDMA3CC (1)        STATE = 3
      C674X_0: GEL Output: Module 1:    USB0 (2.0)         STATE = 3
      C674X_0: GEL Output: Module 2:    USB1 (1.1)         STATE = 3
      C674X_0: GEL Output: Module 3:    GPIO               STATE = 3
      C674X_0: GEL Output: Module 4:    UHPI               STATE = 3
      C674X_0: GEL Output: Module 5:    EMAC               STATE = 3
      C674X_0: GEL Output: Module 6:    DDR2 and SCR F3    STATE = 3
      C674X_0: GEL Output: Module 7:    MCASP0 + FIFO      STATE = 3
      C674X_0: GEL Output: Module 8:    SATA               STATE = 3
      C674X_0: GEL Output: Module 9:    VPIF               STATE = 3
      C674X_0: GEL Output: Module 10:    SPI 1              STATE = 3
      C674X_0: GEL Output: Module 11:    I2C 1              STATE = 3
      C674X_0: GEL Output: Module 12:    UART 1             STATE = 3
      C674X_0: GEL Output: Module 13:    UART 2             STATE = 3
      C674X_0: GEL Output: Module 14:    MCBSP0 + FIFO      STATE = 3
      C674X_0: GEL Output: Module 15:    MCBSP1 + FIFO      STATE = 3
      C674X_0: GEL Output: Module 16:    LCDC               STATE = 3
      C674X_0: GEL Output: Module 17:    eHRPWM (all)       STATE = 3
      C674X_0: GEL Output: Module 18:    MMC/SD 1           STATE = 3
      C674X_0: GEL Output: Module 19:    UPP                STATE = 3
      C674X_0: GEL Output: Module 20:    eCAP (all)         STATE = 3
      C674X_0: GEL Output: Module 21:    EDMA3 TC2          STATE = 3
      C674X_0: GEL Output: Module 24:    SCR-F0 Br-F0       STATE = 3
      C674X_0: GEL Output: Module 25:    SCR-F1 Br-F1       STATE = 3
      C674X_0: GEL Output: Module 26:    SCR-F2 Br-F2       STATE = 3
      C674X_0: GEL Output: Module 27:    SCR-F6 Br-F3       STATE = 3
      C674X_0: GEL Output: Module 28:    SCR-F7 Br-F4       STATE = 3
      C674X_0: GEL Output: Module 29:    SCR-F8 Br-F5       STATE = 3
      C674X_0: GEL Output: Module 30:    Br-F7 (DDR Contr)  STATE = 3
      C674X_0: GEL Output: Module 31:    L3 RAM, SCR-F4, Br-F6 STATE = 3

      Regards,

      Roland

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Brad Griffis
      Posted by Brad Griffis
      on Jan 25 2012 13:28 PM
      Guru57330 points

      Looks normal...

      Can you dump your I2C registers before and after the transaction?

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

      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.
    • Roland Stark
      Posted by Roland Stark
      on Apr 11 2012 04:56 AM
      Verified Answer
      Verified by Roland Stark
      Prodigy220 points

      Hello Brad,

      I found out, that I2C1 doesn't work while ARM is in Suspend (not running any code). I2C0 does ... no idea why this is different.

      When I run the ARM at the debugger (even if there's no executable code) I2C1 is working as it should.

      Anyhow, thanks for your help.

      Regards,

      Roland

      i2c OMAP-L138 OMAPl138 l138 L-138
      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Brad Griffis
      Posted by Brad Griffis
      on Apr 16 2012 13:36 PM
      Guru57330 points

      Hi Roland,

      Thank you for reporting back this info to the forum.  It's very strange indeed.  A colleague suggested that perhaps the behavior is related to the Suspend Source Register (SUSPSRC).  You can find that register documented in Section 11.5.11 of the TRM.

      Best regards,
      Brad

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

      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.
    • Paul Singh
      Posted by Paul Singh
      on Jun 04 2012 08:50 AM
      Expert1930 points

      Has this problem get be solved? We met the same problem as Roland, however the difference is that even when code is running on the ARM side, the I2C1 is still not working.

      One TI employee Franklin Cooper suggested (thread link) that the problem might be related to the fact that I2C1 PSC module is not enabled by default at startup. I did two things: 1)using GEL function to turn on PSC1 module 11(I2C1), 2) also repeated the process using C code. After doing these the PSC1.MDSTAT11 (0x01e2782c) register reads 0x00001E03, of which bits [5-0]=00,0011=3=ENABLE. Even with this I2C1 is still not working.

      For what Brad suggested (SUSPSRC register at 0x01c14170), it reads 0xFFFFFFFF, and its bit 17 I2C1SRC is showing that :1 - DSP is the source of the emulation suspend, which is the same as bit 16 I2C0SRC as well as all other bits.

      If I configure the I2C1 pins as GPIO output, I was able to generate square waves of arbitrary shape and frequency. But when they are configured as I2C1 pins there is simply no output. I don’t have a logic analyzer but with an oscilloscope powerful enough there is simply no appreciable SCL and SDA signal on the lines.


         
      Regards,
      Paul

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Paul Singh
      Posted by Paul Singh
      on Jun 04 2012 09:13 AM
      Expert1930 points

      Just need a confirm from TI whether the L138 I2C1 is faulty or unstable. If true, I would use the workaround of configuring the two I2C1 pins as GPIO and simulate the simple protocol.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Brad Griffis
      Posted by Brad Griffis
      on Jun 04 2012 09:52 AM
      Guru57330 points

      There are no known issues with respect to I2C1.  I was just looking at the LogicPD EVM schematics and wondering if perhaps there's some kind of board issue related to using I2C1.  There's a lot of pin muxing on those pins, e.g. they also happen to be UART pins.  In fact, I see a TRS3386ECPWR device hooked up to those pins.  In particular that device has a /PWRDOWN pin on it which would disable the outputs.  Have you tried changing the population of that pin such that you disable the TRS3386E?  Also, what is the voltage level of whatever you've connected to the I2C bus?  Seems like there could be opportunity for things to get mixed up due to the dual-voltage support on these pins.

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

      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.
    • Paul Singh
      Posted by Paul Singh
      on Jun 04 2012 15:14 PM
      Expert1930 points

      Brad,

      We are using a customized board. Though the I2C1 pins are multipled with others, it should not be a cause of problem as long as Pinmux registers are set. However one question I have with pinmuxing is:

      // pinmux defines.
      #define PINMUX_I2C0_REG       (4)
      #define PINMUX_I2C0_MASK      (0x0000FF00)
      #define PINMUX_I2C0_VAL       (0x00002200)
      #define PINMUX_I2C1_REG       (4)
      #define PINMUX_I2C1_MASK      (0x00FF0000)
      #define PINMUX_I2C1_VAL       (0x00440000)

      Though pinmux register for both I2C0 and I2C1 are pinmux 4, the value to set them as I2C pins are different (2 for I2C0 and 4 for I2C1). I had suspected that 4 for I2C1 was a typo both in the TRM and the BSL. However changing it to 2 as I2C0 doesn't solve the problem.

      Regarding power group, DVDD3318_A, DVDD3318_B and DVDD3318_C all use the same 1.8V voltage and have been merged as one single group.

      On the logic PD EVM does the I2C1 really work? Could someone run a test and measure the pins to make sure it is really error-free?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    12
    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