TI中文支持网
TI专业的中文技术问题搜集分享网站

UCD3xxx系列芯片, 如何操作内部的DFlash!!

大家好!

我想问下, 如何对UCD3xxx系列芯片的内部DFlash进行操作!

我司有电源使用该系列芯片, 在生产过程中, 发现有些参数由于器件离散性比较大, 造成某些指标不合适,

比如VIN过,欠压保护点, 不合格!

想通过在生产过程中, 通过软件调整到合格范围, 但不是很清楚, 该芯片内部对DFlash的操作,

所以, 请高手指点一下!

最好详细些! 或者有pdf文件最好!

先谢过!!

you lee1:

没人知道吗??

you lee1:

回复 you lee1:

我看到TI操作DFlash的程序是:

1. 定义

//初始化存储在DFlahs中存储的ADC采样结构体的常量值为0#pragma DATA_SECTION(threshold_constants_dflash,".dflash")const    struct    ADC_VALUES_STRUCT_SIGNED    threshold_constants_dflash ={    //LDG700模块代码    0,    // Sint32 isec;                    //adc采样值:iout,     RESULT0~AD02;    0,    // Sint32 temp_sense;    //adc采样值:基板温度,RESULT1~AD03;    0,    // Sint32 vin;                      //adc采样值:Vin,     RESULT2~AD04;    0,    // Sint32 VO;                      //adc采样值:Vout,     RESULT3~AD05;    0,    // Sint32 device_temp;    //adc采样值:芯片温度,RESULT4~AD15;    0,    // Sint32 ishare_mon;     //adc采样值:跟踪电压,RESULT6~AD07    0,    // Sint32 trim;                    //adc采样值:Trim电压,RESULT7~AD08    0,    // Sint32 tracking;             //adc采样值:均流电压,RESULT5~AD06    0,    // Sint32 power_out;        //计算值   :输出功率=Vout*Iout    0,    // Sint32 current_temp;   //adc采样值:电流温度    0     // Sint32 i_pri_a;               //adc采样值:原边电流};

 

2. 相应的头文件定义: 

    extern    struct    ADC_VALUES_STRUCT_SIGNED    threshold_constants_dflash;

 

3. 相应的.cmd文件中有

    .dflash  : {} > (DFLASH align(32))

4. 结果是:

对Dflash进行设置的, 然后在项目的.out文件中会出现相应的链接:

   ".\debug\LDG700.out"   ==> .dflash

 

我照猫画虎进行如下定义:

1. 定义

#pragma DATA_SECTION(PMBus_CMD, ".dflash")PMBUS_CMD    PMBus_CMD ={    //PMBus_Std_CMD    {        //PMBus_config        {            //PMBUS_CTRL_CMD            {                0,                    //page                    : 0x00                HARD_OFF,            //operation                : 0x01                PWR_ON_DIRECT,        //on_off_config            : 0x02                NO_WRITE_PROTECTION    //write protect            : 0x03            },            //PMBUS_VOUT_CONFIG_CMD            {                0,                    //VOUT_MODE                : 0x20                0,                    //VOUT_COMMAND            : 0x21                0,                    //VOUT_TRIM                : 0x22                0,                    //VOUT_CAL_OFFSET        : 0x23                0,                    //VOUT_MAX                : 0x24                0,                    //VOUT_MARGIN_HIGH        : 0x25                0,                    //VOUT_MARGIN_LOW        : 0x26                0,                    //VOUT_TRANSITION_RATE    : 0x27                0,                    //VOUT_DROOP            : 0x28                0                    //VOUT_SCALE_LOOP        : 0x29            },            //PMBUS_MODEL_CONFIG_CMD            {                0,                    //COEFFICIENTS            : 0x30                0,                    //POUT_MAX                : 0x31                0,                    //MAX_DUTY                : 0x32                0,                    //FERQUENCE_SWITCH        : 0x33                0,                    //VI_ON                    : 0x35                0,                    //VI_OFF                : 0x36                0,                    //INTERLEAVE            : 0x37                0,                    //TON_DELAY                : 0x60                0,                    //TON_RISE                : 0x61                0,                    //TON_MAX_FAULT_LIMIT    : 0x62                0,                    //TON_MAX_FAULT_RESPONSE: 0x63                0,                    //TOFF_DELAY            : 0x64                0                    //TOFF_FALL                : 0x65            },            //PMBUS_IOUT_CONFIG_CMD            {                0,                    //IOUT_CAL_GAIN            : 0x38                0                    //IOUT_CAL_OFFSET        : 0x39            }        },        //PMBus_fault        {            //PMBUS_VOUT_FAULT_CMD            {                0,                    //VOUT_OV_FAULT_LIMIT    : 0x40                0,                    //VOUT_OV_FAULT_RESPONSE: 0x41                0,                    //VOUT_OV_WARN_LIMIT    : 0x42                0,                    //VOUT_UV_WARN_LIMIT    : 0x43                0,                    //VOUT_UV_FAULT_LIMIT    : 0x44                0                    //VOUT_UV_FAULT_RESPONSE: 0x45            },            //PMBUS_IOUT_FAULT_CMD            {                0,                    //IOUT_OC_FAULT_LIMIT    : 0x46                0,                    //IOUT_OC_FAULT_RESPONSE: 0x47                0,                    //IOUT_OC_WARN_LIMIT    : 0x48                0,                    //IOUT_OC_LV_FAULT_LIMIT: 0x49                0,                    //IOUT_OC_LV_FAULT_RESPONSE    : 0x4A                0,                    //IOUT_UC_FAULT_LIMIT    : 0x4B                0                    //IOUT_UC_FAULT_RESPONSE: 0x4C            },            //PMBUS_TEMP_FAULT_CMD            {                0,                    //OT_FAULT_LIMIT        : 0x4F                0,                    //OT_FAULT_RESPONSE        : 0x50                0,                    //OT_WARN_LIMIT            : 0x51                0,                    //UT_WARN_LIMIT            : 0x52                0,                    //UT_FAULT_LIMIT        : 0x53                0                    //UT_FAULT_RESPONSE        : 0x54            },            //PMBUS_MODEL_FAULT_CMD            {                0,                    //VIN_OV_FAULT_LIMIT    : 0x55                0,                    //VIN_OV_FAULT_RESPONSE    : 0x56                0,                    //VIN_OV_WARN_LIMIT        : 0x57                0,                    //VIN_UV_WARN_LIMIT        : 0x58                0,                    //VIN_UV_FAULT_LIMIT    : 0x59                0,                    //VIN_UV_FAULT_RESPONSE    : 0x5A                0,                    //IIN_OC_FAULT_LIMIT    : 0x5B                0,                    //IIN_OC_FAULT_RESPONSE    : 0x5C                0,                    //IIN_OC_WARN_LIMIT        : 0x5D                0,                    //POWER_GOOD            : 0x5E                0,                    //POWER_GOOD_OFF        : 0x5F                0,                    //TOFF_MAX_WARN_LIMIT    : 0x66                0,                    //POUT_OP_FAULT_LIMIT    : 0x67                0,                    //POUT_OP_FAULT_RESPONSE: 0x68                0,                    //POUT_OP_WARN_LIMIT    : 0x69                0                    //PIN_OP_WARN_LIMIT        : 0x6A            }        },        //PMBus_status        {            0,                        //STATUS_BYTES            : 0X78            0,                        //STATUS_WORD            : 0x79            0,                        //STATUS_VOUT            : 0X7A            0,                        //STATUS_IOUT            : 0x7B            0,                        //STATUS_INPUT            : 0X7C            0,                        //STATUS_TEMP            : 0x7D            0,                        //STATUS_CML            : 0X7E            0,                        //STATUS_OTHER            : 0x7F            0                        //STATUS_MFR_SPECIFIC    : 0x80        },        //PMBus_read        {            0,                        //Vin                    : 0x88            0,                        //Iin                    : 0x89            0,                        //VCAP                    : 0x8A            0,                        //Vout                    : 0x8B            0,                        //Iout                    : 0x8C            0,                        //Temp1                    : 0x8D            0,                        //Temp2                    : 0x8E            0,                        //Temp3                    : 0x8F//            0,                        //FanSpeed1                : 0x90//            0,                        //FanSpeed2                : 0x91//            0,                        //READ_FAN_1            : 0x92//            0,                        //READ_FAN_2            : 0x93            0,                        //DutyCycle                : 0x94            0,                        //Freq                    : 0x95            0,                        //POUT                    : 0x96//            0                        //PIN                    : 0x97        }    },    //PMBus_MFR_CMD    {        //PMBUS_MFR_Info        {            0,                                    //PMBUS_REVISION        : 0x98        },        //PMBus_MFR_Param        {            0,                        //MFR_VIN_MIN            : 0xA0            0,                        //MFR_VIN_MAX            : 0xA1            0,                        //MFR_IIN_MAX            : 0xA2            0,                        //MFR_PIN_MAX            : 0xA3            0,                        //MFR_VOUT_MIN            : 0xA4            0,                        //MFR_VOUT_MAX            : 0xA5            0,                        //MFR_IOUT_MAX            : 0xA6            0,                        //MFR_POUT_MAX            : 0xA7            0,                        //MFR_TAMBIENT_MAX        : 0xA8            0,                        //MFR_TAMBIENT_MIN        : 0xA9            0,                        //MFR_EFFICIENCY_LL        : 0xAA            0                        //MFR_EFFICIENCY_HL        : 0xAB        }    },};

2.相应头文件中定义

    extern PMBUS_CMD    PMBus_CMD;

3. .dflash本身就已定义

 

结果下载程序后无法执行程序,  现象是无法切换到PFlash中!

请高手指点!!!!

you lee1:

回复 you lee1:

自己顶!!

Neil Li:

回复 you lee1:

您好,

UCD3028的DFlash只存储一些数据,比如欠压保护电,过压保护点的默认值等。但您的程序中却包含了PMBus的指令,这是不合适的。

回到您的问题,如果是产品加工完毕后,因为硬件参数有漂移,打算通过软件进行calibration,可以通过TI 免费提供的Fusion design online软件在线进行。
附件是操作的步骤,请参考。

当然,通过该软件实现在线的修改,前提是UCD3028的程序代码做好了定义,以实现UCD3028通过PMBus“接收”用户新写入的参数。
软件代码因涉及太多操作,建议您参考TI提供的EVM代码程序。

如果您打算索取TI免费提供的代码程序,可以联系我。 Neil-li@ti.com
谢谢。

you lee1:

回复 Neil Li:

hello neil,

你可能误会了, 我在DFlash中并未包括PMBus命令!!

包括的只是PMBus命令的数据!!

注释是我用来将数据与PMBus命令进行对应而做的!!

你的建议和可以考虑! 但是把这么复杂的操作交到产线, 可能会出错, 这可能是产线生产不允许的!!

这是我的邮箱, 欢迎一起讨论!!!

mr.leeyou@hotmail.com

赞(0)
未经允许不得转载:TI中文支持网 » UCD3xxx系列芯片, 如何操作内部的DFlash!!
分享到: 更多 (0)