This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2732: I2C temperature sensor can not be accessed on TIDA-020047

Part Number: AM2732
Other Parts Discussed in Thread: TIDA-020047, SYSCONFIG, TMP112, MSP430F5529

Hi team

A new thread is posted  as below thread is closed.

AM2732: I2C temperature sensor can not be accessed on TIDA-020047 - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

It seems TIDA-020047 also has R78 and R81 as pull-up resistors,  

Customer try to call I2C_transfer directly (bypass I2C_probe). The waveform in TIDA_020047 and AM2732EVM shows very different results.

on TIDA020047, code return NACK error.  Waveform is as below:

on AM2732EVM, code did not show any NACK error.  Waveform is as below:

Could you pls help comment on the reason why the wave form looks so different?

Thanks

Ken

  • Hi Ken,

    I'm trying to sort through the latest information provided here.

    It seems TIDA-020047 also has R78 and R81 as pull-up resistors,  

    I think you mean R76 instead of R78 but I am seeing this now, I don't really understand why but that SOC_I2C node doesn't show up when searched so I was not aware of those.

    Regarding the waveforms, did you attach them in the wrong order?

    on AM2732EVM, code did not show any NACK error.  Waveform is as below:

    The waveform below this looks like one with an error in it?

    Customer try to call I2C_transfer directly (bypass I2C_probe). The waveform in TIDA_020047 and AM2732EVM shows very different results.

    Can the changes made be provided? Also were these changes tested on the AM273 EVM as well or was that just tested using the stock example?

    Best Regards,

    Ralph Jacobi

  • Is there any update to this problem? We have encountered the same problem: TIDA-020047 cannot normally use I2C to read the parameters of the temperature sensor.

  • Hello Dong,

    There was no further updates on my end regarding this, can you provide similar data as to what I had requested - waveforms from your board and the code used that is not working as expected?

    Best Regards,

    Ralph Jacobi

  • Hello Ralph,

    I captured the waveform of I2C on the hardware of TIDA-020047, as shown below,

    The software is:\mmwave_mcuplus_sdk_04_04_00_01\mcu_plus_sdk_awr294x_08_06_00_28\examples\drivers\i2c\i2c_temperature ,

    I also tried another version of the software: \mcu_plus_sdk_am273x_09_00_00_35\examples\drivers\i2c\i2c_temperature

    The two software cannot run properly, indicating that the device cannot be found. When viewed in debug state, the function I2C_probe is abnormal.

    I also used 2944 development board for comparison verification, the software used is: \mmwave_mcuplus_sdk_04_04_00_01\mcu_plus_sdk_awr294x_08_06_00_28\examples\drivers\i2c\i2c_temperature , working is ok.

    I've done that so far, hoping to come up with some solutions.

    Thanks a lot !

  • Hi Dong,

    Thanks for the details, it looks like the addressing here is accurate. I assume no changes made to the examples right? Based on the schematic I would expect that the examples you are referencing to work without an issue. Instead it looks like the clock is being held low which is very strange. Also the undershoot on the I2C line at the start is notable and concerning too. We'll need to try and replicate this on our end.

    I'm asking another team member to help with getting this board up and running to run some tests, if you can outline how you've done these tests on your end to get this result in terms of steps to load the firmware etc. that would help speed up our reproduction efforts.

    If we are able to reproduce this then we will need to investigate which device is pulling the bus low and what is causing the undershoot.

    Best Regards,

    Ralph Jacobi

  • Hello Ralph,

    The clock shown in the picture is 100KHz, and the sample software in the sdk is 400KHz. I also tested the software without changing the clock (the clock is 400KHz) for the same operation, but it also failed to work, so I used the sysconfig tool in the software to change the clock frequency to 100KHz, please understand this situation.

    The specific operation process is as follows:

    1. Import the demo Project from the sdk using ccs(12.1.0) (Project -> Import project)

    2. Open sysconfig, then modify the clock frequency of I2C to 100KHz, open debug console output, and then save the configuration

    3. Compiling project

    4. XDS was used for debugging, an oscilloscope was used to measure the I2C pin, and the output of the console was viewed

  • Hi Dong, 

    I ran the I2C temperature sensor example and am seeing the same result, with large undershoot on the I2C clock line (green):

    I am working with the board designer to diagnose the issue and find a solution.  I will resume work on this on Monday 12/4.

    Thanks,

    Brennan

  • Hi Brennan,

    Thanks for your support and hope it goes well.

  • Hi Dong, 

    I modified the board and installed two 100-ohm resistors in series on the SCL and SDA lines.  After running the example and probing the lines, I determined that the AM273 device is holding the SCL line low at the end of the transaction, thus responsible for the undershoot on the SCL line.  Also important to note, the undershoot on the SCL line reduced to ~0.7V, a slight improvement than without the series resistance on the I2C lines.

    The demo still fails, but this helps to understand the root cause.  I will continue work on this tomorrow.

    Regards,

    Brennan

  • Hi Brennan,

    I see. I hope everything goes well with your work.

  • Hello Dong,

    We are awaiting feedback from the team that originally designed this board. At this time we have isolated this as an issue with the AM273 and an issue that is isolated to this TI design board. Using identical software on AM273 EVM we are able to successfully read the temperature sensor without any undershoot.

    Best Regards,

    Ralph Jacobi

  • Hello Dong,

    Sorry for the lack of follow-up here. This past week, we've tried a number of fixes to this board to try and resolve the issue on the I2C lines but haven't had any successful tests yet.

    Best Regards,

    Ralph Jacobi

  • Hello Ralph,

    Thank you for your support! Will there be plans to solve this problem in the future?

  • Hi Dong,

    I can't make any commitments on that because our AM273 team does not own this design. I am trying to get clarity on that myself.

    Best Regards,

    Ralph Jacobi

  • Hello Ralph,

    Because our hardware is based on demo board design, sometimes it is necessary to use the communication function of I2C. So please let me know if there is a solution in the future, thanks

  • Hi Dong,

    We may have identified a root cause but due to holiday leaves won't be able to confirm until likely next week.

    An observation has been made that a difference between the TIDA-020047 board and the AM273 GP EVM where the temp sensor does work is that the address line on the TMP112 on the AM273 GP EVM is connected to 3.3V with a 0-ohm resistor, while on the TIDA-020047 board it is connected with a 10kOhm pull up.

    The TMP112 datasheet does not recommend a pull up resistor to be used and someone with past experience with this temperature sensor has informed that the sensor likely can't determine it's address correctly when a pull-up resistor is present because it won't be able to accurate compare the 3.3V input rail to the voltage at the Address pin due to the voltage drop over the resistor.

    If you are able to de-populate this resistor and switch it with a 0-ohm resistor, you can test if that recovers the temperature sensor operation.

    Best Regards,

    Ralph Jacobi

  • Hi Ralph,

    I tried to directly replace the 10KOhm resistor on the address bus to the short-circuit state, but it still could not be recognized. I am waiting for your verification result.

    Have a nice holiday

  • Dong - 

    Ralph has moved this over to me - In the interest of time, would you do me a favor here and let me know which TMP112 that you shorted and any current logic plot of the parts NACKing the address request? I am thinking you need to do both of them at same time.   

    i.e. shorting ADD0 to 3.3 (on U8) should be 7 bit address 0x49 or 8 bit 0x92 (which is what looks to be in all of your screen shots), the other one (U2) should be ADD0 to GND, for  7 bit address 0x48 or 8 bit 0x90.

  • Hello Josh,

    As shown in the figure, 1. I removed U2, but the surrounding devices remained the same; 2. I removed R70 and short-circuited it directly

  • Dong - 

    I have procured a board (I did not modify) and have connected to MSP430F5529 LaunchPad and Saleae logic analyzer with analog scope capability and written standalone I2C routine to retrieve temp values. The hardware looks OK to me as it is now,. as i am able to reach both sensors and analog looks OK to me, too. 

      

    I got the SDK from Ralph yesterday and I will try that next and report back to you what I find - it might be later today or by latest early next week. 

  • hello Josh,

    do you have any updates?

  • Dong - 

    yes - we have been troubleshooting this issue. I have written standalone firmware for another MCU to drive both sensors on that PCB, and they work fine with no modifications to the PCB. The processor team, yesterday, gave me a standalone version, running on their EVM to use to test further, to help determine if we have board issue or some deep level firmware problem. I expect to be able to look at this later today and report back. Sorry for the delay on this. 

  • Dong - 

    Today I was able to connect AM2732EVM to the two chip board and operate the TMP112 sensors successfully. I think this points to either a hardware issue between the processor and the I2C temp sensors that is not easily revealing itself (obviously) or something we are missing in the specific board processor setup (which we think should not be different between these two boards) - again sorry for the delay, this one is proving to be a challenge. As soon as we figure this out, I will update this post.     

  • Hello Josh,

    Thanks a lot. I'll wait for your good news.

  • Dong - we hope to have some news in the next few days. 

  • Dong - 

    Quick update - I am getting some help possibly from the person that designed the board and some of my folks, as it truly seems that something is going on with the power on this board as it relates to I2C on the temp sensor bus. I hope to get further on Monday - sorry for the extended delay in troubleshooting this.