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.

dm8168 + smartreflex

Other Parts Discussed in Thread: TPS40400

Hi, We have a custom board develop around dm8168.

We have a tps40400 as power regulator and until now we have never use smartreflex and avs algorithem to control the pmic that always control cvdd to 1.0v

We use dsp and cortex at maximum performance but we don't use any video accelerator.

On same boards it happens that the dsp core hangs (but not the dma at specific soc temperature). This is a critical issue for us.

After some specific test on a set of boards that have the problem we have notice that changing the CVDD the problem disappears. So we have implemented the AVS algorithem taking it from DVR RDK.

But at the and the CVDD go to the maximum 1.05V on all the board that we have tested. We don'k know if it is correct. And we have no way to check it because it is undocumented.

And also the datasheet says:

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

Supply voltage, Variable Core, Adaptive Voltage Scaling (CVDD) 

                                        MIN                                     NOM                             MAX

Initial Startup :            VINITnom × 0.95               1.00 or 1.10 (2)                 VINITnom × 1.05

CYGA2 & CYG4:           SRnom × 0.95                    0.85 - 1.00                      SRnom × 1.05

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

SRnom refers to the unique SmartReflex core supply voltage set from the factory for each individual device.

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

This device supports, and requires the use of, SmartReflex technology with Adaptive Voltage Scaling based on die temperature and performance.

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

SmartReflex can significantly lower the power consumption of this device and its use is required for proper device operation

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

The device contains SmartReflex modules that are required to minimize power consumption on the
voltage domains using external variable-voltage power supplies. Based on the device process,
temperature, and desired performance, the SmartReflex modules advise the host processor to raise or
lower the supply voltage to each domain for minimal power consumption. The communication link between
the host processor and the external regulators is a system-level decision and can be accomplished using
GPIOs or I2C.
The major technique employed by SmartReflex in the device is adaptive voltage scaling (AVS). Based on
the silicon process and temperature, the SmartReflex modules guide software in adjusting the core 1-V
supply voltage within the desired range. This technique is called adaptive voltage scaling (AVS). AVS
occurs continuously and in real time, helping to minimize power consumption in response to changing
operating conditions.
NOTE
Implementation of SmartReflex AVS is required for proper device operation.

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

 


At the end:

1. it is not so clear if AVS and smartreflex is MANDATORY or it is only usefull. Only on http://processors.wiki.ti.com/index.php/DM816x_Design_Resources#AVS_.28Current.2C_voltage_range.2C_stability.2C_tolerance.2C_noise.2C_AVS.29 it is crearly write that: "AVS is required for DM816x devices. Using a fixed supply voltage level will violate max/min operating conditions for some devices which may fall at the edges of the process corners. This will in turn lead to long term reliability issues and may cause complete device failure.". This is a really crucial aspect and I have not found this in any official document (datasheets ....). Is it true?

2. the final constrain for CVDD is:     SRnom × 0.95  -  SRnom × 1.05 (and not only 0.85 - 1.00). So it is mandatory to know how to read SRnom (but it is undocumented). And also the linux kernel (smartreflex-ti816x.c) does not check that constrains and never read any SRnom. So I need to know how to read SRnom.

  • Michele Dionisio said:
    So we have implemented the AVS algorithem taking it from DVR RDK.

    Make sure you are using the latest version of the RDK linux kernel:

    Michele Dionisio said:
    But at the and the CVDD go to the maximum 1.05V on all the board that we have tested. We don'k know if it is correct. And we have no way to check it because it is undocumented.

    What exactly is not documented?

    Michele Dionisio said:
    1. it is not so clear if AVS and smartreflex is MANDATORY or it is only usefull. Only on http://processors.wiki.ti.com/index.php/DM816x_Design_Resources#AVS_.28Current.2C_voltage_range.2C_stability.2C_tolerance.2C_noise.2C_AVS.29 it is crearly write that: "AVS is required for DM816x devices. Using a fixed supply voltage level will violate max/min operating conditions for some devices which may fall at the edges of the process corners. This will in turn lead to long term reliability issues and may cause complete device failure.". This is a really crucial aspect and I have not found this in any official document (datasheets ....). Is it true?

    SmartReflex/AVS is required for proper device operation. It's not only power saving but also device long term reliability. See the below e2e threads:

    Also below is what we have in DM816x TRM, section 3.2.3.2 SmartReflex Adaptive Voltage Scaling:


    Not using AVS will result in a considerable increase in device power consumption and the voltage applied to the device may be too high for devices from the hot end of the process distribution which can lead to hold timing violations, and hence incorrect operation. Therefore, AVS is required for reliable operation.

    Michele Dionisio said:
    2. the final constrain for CVDD is:     SRnom × 0.95  -  SRnom × 1.05 (and not only 0.85 - 1.00). So it is mandatory to know how to read SRnom (but it is undocumented). And also the linux kernel (smartreflex-ti816x.c) does not check that constrains and never read any SRnom. So I need to know how to read SRnom.

    SRnom refers to the unique SmartReflex core supply voltage set from the factory for each individual device.

    SRnom is SmartReflex nominal, see the CVDD NOM column. See also the below e2e thread for more info:

    Regards,
    Pavel

     

  • Yes, I'm using the last latest version of the RDK linux kernel.

    it is not documented the meaning of register inside the smarteflex and how the AVS has to work. So it is impossible for me to verify if the kernel is working well and I have to check it because testing the kernel on 5 different machine I always say that the AVS control the pmic to go to the maximum 1.05V.

    you say:

    Not using AVS will result in a considerable increase in device power consumption and the voltage applied to the device may be too high for devices from the hot end of the process distribution which can lead to hold timing violations, and hence incorrect operation. Therefore, AVS is required for reliable operation.

    and this is clear but I can avoid to use the avs to dynamically control the pmic and only read the SRnom and control the pmic according to it.

    The documentation says that: SRnom refers to the unique SmartReflex core supply voltage set from the factory for each individual device.

    so I need to know how to read SRnom. Also the AVS algorithem implemented in the last RDK does not check the SRnom to be sure that the cdvcc is ok. So I think that also the last RDK linux kernel can be dangerous.

    I think that it is MANDATORY to have documentation about smartreflex register and SRnom otherwise it is not possible be sure about the stability and life of dm816x.

    Many thank for any help

    Michele

  • Michele,

    AVS driver is mature and proven to be working fine. I will try to find more info regarding SRnom and will come back to you. Meanwhile you can also see the below e2e thread:

    e2e.ti.com/.../530331

    Regards,
    Pavel
  • Michele,

    The nominal range of expected AVS operating voltages is 0.85V to 1.05V. Since power supply components have tolerances and PCB traces have loss, all nominal voltages are stated to an accuracy of +/-5%. This has led to some confusion when the terms are mixed. We have tried to make this very clear in the datasheet. Due to silicon process variation, different devices may have different AVS voltage levels during normal operation.

    Tom

  • Michele,

    AVS use is mandatory. This is stated multiple times in the Data Manual excerpts above.  TI cannot guarantee reliability targets will be met without use of AVS. TI provides example AVS drivers in both EZSDK and the RDK code branches. The RDK code branch specifically supports the TPS40400. This is field-proven code. There are multiple 3rd party partners that can help with this implementation.

    Tom

  • Michele,

    The AVS driver for DM816x does not read a single voltage value to set the AVS voltage. It does read a value that defines a performance target unique to each chip.  Then it reads sensor values to let the software know whether the performance is too high or too low before demanding a CVDD voltage change.  If the software is not properly implemented, the results are not deterministic.

    Tom

  • Ok. I understand that AVS is mandatory.

    I see AVS driver in EZSDK and RDK branches. But that implementation is (for me) "magic" and not based from any public TI document.

    So there is no way for me to check if I do what is required because I don't knwon what has to be done.

  • Yes, I known. I have read it. But my question is: where is officially document what the AVS driver has to do. Is the code the only available documentation?
  • Michele,

    The AVS implementation is proprietary.  There is no public documentation available for it.  Also, the implementation is complex which causes the support burden to be significant.  Therefore, we are supporting this mature device through a team of 3rd party partners.  Please see this post: https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/426680.

    Tom

  • ok. it is clear but there is no way to check if the software is properly implemented because nothing is officially documented.

    So at the end the official documentation is not enouph to properly use the dm816x.

    I think that this is not accettable.

    Michele