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.

OMAPL138 CPU核心电压

Other Parts Discussed in Thread: OMAP-L138, TPS65070

TI专家,各位朋友:

        我想把OMAPL138 CPU核心电压由1.2V提高到1.3V我该怎么做呢?这个可以修改寄存器直接配置吗?我翻了下手册,没找到这方面的内容。

  • 你好,

    首先,你的omap-l138要支持456MHz, 才有必要提高到1.3v

    1.2v提高到1.3v需要修改电源芯片的电路。

  • 你好,我看了UBL的源码中,有一下几行代码,好像是对CPU频率所对应的核心电压配置的,

    / /Set the higher voltage first OPP(300MHz, 1.2V)
       status  = TPS65070_set_DCDC3_voltage(0, TPS_VDCDC3_MILLIVOLT_1200);

    函数的原型如下:

     

    Uint32 TPS65070_set_DCDC3_voltage(Uint32 instance, Uint16 volt)
    {
      Uint32  status  = E_PASS;

      if(instance >= TPS_MAX_NUM_DEVICES) return E_FAIL;

      status = TPS65070_open(instance);
      
      switch (volt)
      {
        /* For valid values just go and set the register value */
        case TPS_VDCDC3_MILLIVOLT_725  :
        case TPS_VDCDC3_MILLIVOLT_750  :
        case TPS_VDCDC3_MILLIVOLT_775  :
        case TPS_VDCDC3_MILLIVOLT_800  :
        case TPS_VDCDC3_MILLIVOLT_825  :
        case TPS_VDCDC3_MILLIVOLT_850  :
        case TPS_VDCDC3_MILLIVOLT_875  :
        case TPS_VDCDC3_MILLIVOLT_900  :
        case TPS_VDCDC3_MILLIVOLT_925  :
        case TPS_VDCDC3_MILLIVOLT_950  :
        case TPS_VDCDC3_MILLIVOLT_975  :
        case TPS_VDCDC3_MILLIVOLT_1000 :
        case TPS_VDCDC3_MILLIVOLT_1025 :
        case TPS_VDCDC3_MILLIVOLT_1050 :
        case TPS_VDCDC3_MILLIVOLT_1075 :
        case TPS_VDCDC3_MILLIVOLT_1100 :
        case TPS_VDCDC3_MILLIVOLT_1125 :
        case TPS_VDCDC3_MILLIVOLT_1150 :
        case TPS_VDCDC3_MILLIVOLT_1175 :
        case TPS_VDCDC3_MILLIVOLT_1200 :
        case TPS_VDCDC3_MILLIVOLT_1225 :
        case TPS_VDCDC3_MILLIVOLT_1250 :
        case TPS_VDCDC3_MILLIVOLT_1275 :
        case TPS_VDCDC3_MILLIVOLT_1300 :
        case TPS_VDCDC3_MILLIVOLT_1325 :
        case TPS_VDCDC3_MILLIVOLT_1350 :
        case TPS_VDCDC3_MILLIVOLT_1375 :
        case TPS_VDCDC3_MILLIVOLT_1400 :
        case TPS_VDCDC3_MILLIVOLT_1425 :
        case TPS_VDCDC3_MILLIVOLT_1450 :
        case TPS_VDCDC3_MILLIVOLT_1475 :
        case TPS_VDCDC3_MILLIVOLT_1500 :
        case TPS_VDCDC3_MILLIVOLT_1550 :
        case TPS_VDCDC3_MILLIVOLT_1600 :
        case TPS_VDCDC3_MILLIVOLT_1650 :
        case TPS_VDCDC3_MILLIVOLT_1700 :
        case TPS_VDCDC3_MILLIVOLT_1750 :
        case TPS_VDCDC3_MILLIVOLT_1800 :
        case TPS_VDCDC3_MILLIVOLT_1850 :
        case TPS_VDCDC3_MILLIVOLT_1900 :
        case TPS_VDCDC3_MILLIVOLT_1950 :
        case TPS_VDCDC3_MILLIVOLT_2000 :
        case TPS_VDCDC3_MILLIVOLT_2050 :
        case TPS_VDCDC3_MILLIVOLT_2100 :
        case TPS_VDCDC3_MILLIVOLT_2150 :
        case TPS_VDCDC3_MILLIVOLT_2200 :
        case TPS_VDCDC3_MILLIVOLT_2250 :
        case TPS_VDCDC3_MILLIVOLT_2300 :
        case TPS_VDCDC3_MILLIVOLT_2350 :
        case TPS_VDCDC3_MILLIVOLT_2400 :
        case TPS_VDCDC3_MILLIVOLT_2450 :
        case TPS_VDCDC3_MILLIVOLT_2500 :
        case TPS_VDCDC3_MILLIVOLT_2550 :
        case TPS_VDCDC3_MILLIVOLT_2600 :
        case TPS_VDCDC3_MILLIVOLT_2650 :
        case TPS_VDCDC3_MILLIVOLT_2700 :
        case TPS_VDCDC3_MILLIVOLT_2750 :
        case TPS_VDCDC3_MILLIVOLT_2800 :
        case TPS_VDCDC3_MILLIVOLT_2850 :
        case TPS_VDCDC3_MILLIVOLT_2900 :
        case TPS_VDCDC3_MILLIVOLT_3000 :
        case TPS_VDCDC3_MILLIVOLT_3100 :
        case TPS_VDCDC3_MILLIVOLT_3200 :
        case TPS_VDCDC3_MILLIVOLT_3300 :
             /*
              1. Set the value of desired voltage in DEFDCDC3 register (DEFDCDC pin 
                 is high, hence DEFDCDC3 register defines the output voltage.
             */
            
            status = TPS65070_reg_write(instance, TPS_REG_OFFSET_DEFDCDC3_HIGH, volt);
            
            if(status == E_PASS) {
            /* 
              2. Start the transition
              Set GO bit in CTRL2 register
             */
             status = TPS65070_reg_write(instance, TPS_REG_OFFSET_CONCTRL2, 0x80);
            }
            
        break;

        default:
            status = E_FAIL;
        break;    
      }
      
      return status;
    }
    是不是源码中配置对应的硬件的电源芯片是可配置,当在我自己板子上是固定1.2V的时候,就只能改变电源设计来提高到1.3V,同时移植UBL的时候,将那个CPU核心电压配置的代码给注释掉。
  • 是的,你的理解正确的,这要看你用的电源芯片的输出电压是否可配置的,如果可配置,可以通过UBL来配置,如果不可配置,只能通过修改硬件。