第三代测试机编程手册  1.0
载入中...
搜索中...
未找到
DPSModule.h 文件参考

DPS操作函数 更多...

枚举

enum  DPS_FIXREAD { DPS_FIXREAD_NORMAL = 0 , DPS_FIXREAD_BUSY , DPS_FIXREAD_TIMEOUT }
 

函数

void DPS_Init (void)
 
void DPS_Reset (void)
 所有DPS通道复位到默认状态
 
void DPS_Enable (uint8_t ch)
 使能DPS输出端口. 在使用 DPS_DisableDPS_SetFloat 之后,需要调用该函数使能DPS输出端口. DPS_SetOut函数内部已经包含该函数.保留该函数只是为了兼容.实际使用时,按下面的调用流程即可
 
void DPS_Disable (uint8_t ch)
 设置DPS输出端口浮空,并未输出电压设置到0
 
void DPS_SetFloat (uint8_t ch)
 使DPS输出引脚浮空
 
void DPS_SetOut (uint8_t ch, uint8_t mode, float set_mv_ua, uint8_t rangeV, uint8_t rangeI)
 设置DPS输出值, 模式, 档位. 内置DPS_Enable功能.
 
void DPS_SetClamp (uint8_t ch, float clamplRatio, float clamphRatio)
 设置DPS钳位
 
void DPS_DelayMs (uint16_t ms)
 DPS延时, 等价于 SleepMs
 
void DPS_OnlyVoltmeter (uint8_t ch)
 使用该函数之后, 只有DPS_Chx的电压表能够读取到正确值, 电流表或者另外的DPS通道几PMU通道将会读取不到正确值. 但是使用该函数可以让读取到的数据值较为稳定
 
void DPS_OnlyAmmeter (uint8_t ch)
 使用该函数之后, 只有DPS_Chx的电流表能够读取到正确值, 电压表或者另外的DPS通道几PMU通道将会读取不到正确值. 但是使用该函数可以让读取到的数据值较为稳定
 
void DPS_NormalMeter (void)
 使所有表的数据更新恢复正常. DPS所有通道和PMU的电流电压都能够正确读取
 
float DPS_ReadVoltmeter (uint8_t ch, uint8_t unit)
 DPS读取电压表的值
 
float DPS_ReadVoltmeterStatic (uint8_t ch, uint8_t unit)
 精度更高的方式读取DPS的电压值, 内置750us延时
 
float DPS_ReadVoltmeterFixed (uint8_t ch, uint16_t diffVal, uint16_t timeout_ms, uint8_t unit, uint8_t *err)
 固定通道读取电压表,能得到更高精度的测量值. 连续读取一系列的值, 如果连续读取4次的值之间的差值都小于diffVal,则认为读取成功.
 
float DPS_ReadAmmeter (uint8_t ch, uint8_t unit)
 DPS读取电流表的值
 
float DPS_ReadAmmeterStatic (uint8_t ch, uint8_t unit)
 精度更高的方式读取DPS的电流值, 内置750us延时
 
float DPS_ReadAmmeterFixed (uint8_t ch, uint16_t diffVal, uint16_t timeout_ms, uint8_t unit, uint8_t *err)
 固定通道读取电流表,能得到更高精度的测量值. 连续读取一系列的值, 如果连续读取4次的值之间的差值都小于diffVal,则认为读取成功.
 
float DPS_ReadTemperture (void)
 读取dps的adc芯片的温度
 

详细描述

DPS操作函数

版本
0.1
日期
2023-08-16
作者
fyuan (20879.nosp@m.3439.nosp@m.@qq.c.nosp@m.om)

枚举类型说明

◆ DPS_FIXREAD

枚举值
DPS_FIXREAD_NORMAL 

正常

DPS_FIXREAD_BUSY 

处于忙状态, 本次读取不执行

DPS_FIXREAD_TIMEOUT 

超时

函数说明

◆ DPS_Reset()

void DPS_Reset ( void  )

所有DPS通道复位到默认状态

  1. 模式为FV模式
  2. 电压档位为5V,无电流档位,
  3. 输出电压为0V,下钳位电流为最小值 上钳位电流为最大值
  4. 通路断开,DPS输出引脚浮空

◆ DPS_Enable()

void DPS_Enable ( uint8_t  ch)

使能DPS输出端口. 在使用 DPS_DisableDPS_SetFloat 之后,需要调用该函数使能DPS输出端口. DPS_SetOut函数内部已经包含该函数.保留该函数只是为了兼容.实际使用时,按下面的调用流程即可

DPS_SetFloat(DPS_CH0)
DPS_SetOut(DPS_CH0,DPS_MODE_FVCI,0,DPS_RNGV_5V,DPS_RNGI_10MA);
void DPS_SetFloat(uint8_t ch)
使DPS输出引脚浮空
void DPS_SetOut(uint8_t ch, uint8_t mode, float set_mv_ua, uint8_t rangeV, uint8_t rangeI)
设置DPS输出值, 模式, 档位. 内置DPS_Enable功能.
参数
ch
  • DPS_CH0
  • DPS_CH1

◆ DPS_Disable()

void DPS_Disable ( uint8_t  ch)

设置DPS输出端口浮空,并未输出电压设置到0

  1. 会调用 DPS_SetFloat 函数设置DPS引脚浮空
  2. 该函数内置3ms延时,
  3. 会使DPS切换到FVCI模式输出值为0V
参数
ch允许参数 :
  • DPS_CH0
  • DPS_CH1
示例
example_dps.c.

◆ DPS_SetFloat()

void DPS_SetFloat ( uint8_t  ch)

使DPS输出引脚浮空

参数
ch允许参数 :
  • DPS_CH0
  • DPS_CH1
示例
example_dps.c.

◆ DPS_SetOut()

void DPS_SetOut ( uint8_t  ch,
uint8_t  mode,
float  set_mv_ua,
uint8_t  rangeV,
uint8_t  rangeI 
)

设置DPS输出值, 模式, 档位. 内置DPS_Enable功能.

参数
chDPS_CH0/DPS_CH1
mode输出模式
  • DPS_MODE_FVCI: 输出电压,钳电流
  • DPS_MODE_FICV: 输出电流,钳电压
set_mv_ua
  • FVCI模式下: 设置电压输出值,单位 mv ,范围: 由档位确定,比如5v档位,允许输入值为 -5000mv~5000mv
  • FICV模式下: 设置电流输出值,单位 ua ,范围: 由档位确定,比如10ma档位,允许输入值为 -10000ua~10000ua
rangeV
  • DPS_RNGV_2V5 = 2.55v档
  • DPS_RNGV_5V = 5v档
  • DPS_RNGV_10V = 10v档
  • DPS_RNGV_20V = 20v档
  • DPS_RNGV_40V = 40v档
rangeI
  • DPS_RNGI_10UA = 10ua档
  • DPS_RNGI_100UA = 100ua档
  • DPS_RNGI_1MA = 1ma档
  • DPS_RNGI_10MA = 10ma档
  • DPS_RNGI_100MA = 100ma档
  • DPS_RNGI_1A = 1a档
示例
example_dps.c.

◆ DPS_SetClamp()

void DPS_SetClamp ( uint8_t  ch,
float  clamplRatio,
float  clamphRatio 
)

设置DPS钳位

参数
clamplRatio下钳位比例 范围 -1~1
clamphRatio上钳位比例 范围 -1~1
  • FVCI模式,计算方式
    • 下钳位 = DPS_SetOut 中的 rangeI * clamplRatio
    • 上钳位 = DPS_SetOut 中的 rangeI * clamphRatio
  • FICV模式,计算方式
    • 下钳位 = DPS_SetOut 中的 rangeV * clamplRatio
    • 上钳位 = DPS_SetOut 中的 rangeV * clamphRatio
      注解
      下钳位和上钳位需要满足 clamplRatio < clamphRatio
示例
example_dps.c.

◆ DPS_DelayMs()

void DPS_DelayMs ( uint16_t  ms)

DPS延时, 等价于 SleepMs

参数
ms单位ms

◆ DPS_OnlyVoltmeter()

void DPS_OnlyVoltmeter ( uint8_t  ch)

使用该函数之后, 只有DPS_Chx的电压表能够读取到正确值, 电流表或者另外的DPS通道几PMU通道将会读取不到正确值. 但是使用该函数可以让读取到的数据值较为稳定

参数
ch
  • DPS_CH0
  • DPS_CH1

◆ DPS_OnlyAmmeter()

void DPS_OnlyAmmeter ( uint8_t  ch)

使用该函数之后, 只有DPS_Chx的电流表能够读取到正确值, 电压表或者另外的DPS通道几PMU通道将会读取不到正确值. 但是使用该函数可以让读取到的数据值较为稳定

参数
ch
  • DPS_CH0
  • DPS_CH1

◆ DPS_ReadVoltmeter()

float DPS_ReadVoltmeter ( uint8_t  ch,
uint8_t  unit 
)

DPS读取电压表的值

参数
chDPS_CH0/DPS_CH1
unit单位设置
  • VUNIT_UV = uv
  • VUNIT_MV = mv
  • VUNIT_V = v
返回
float 电压值
示例
example_dps.c.

◆ DPS_ReadVoltmeterStatic()

float DPS_ReadVoltmeterStatic ( uint8_t  ch,
uint8_t  unit 
)

精度更高的方式读取DPS的电压值, 内置750us延时

参数
chDPS的通道
  • DPS_CH0
  • DPS_CH1
unit
  • VUNIT_UV = uv
  • VUNIT_MV = mv
  • VUNIT_V = v
返回
float 电压值
示例
example_dps.c.

◆ DPS_ReadVoltmeterFixed()

float DPS_ReadVoltmeterFixed ( uint8_t  ch,
uint16_t  diffVal,
uint16_t  timeout_ms,
uint8_t  unit,
uint8_t *  err 
)

固定通道读取电压表,能得到更高精度的测量值. 连续读取一系列的值, 如果连续读取4次的值之间的差值都小于diffVal,则认为读取成功.

参数
diffVal允许的电压稳定后的adc采集跳动值.
  • 该值最大范围 2~65535; 正常情况下设置为 2~10; 一般设置为3即可;
  • 该值对应的电气意义为: 电压值 = 电压档位量程 / 65535 * diffVal;
timeout_ms超时时间
unit单位码
err返回错误标志 PMU_FIXREAD
返回
float 结果

◆ DPS_ReadAmmeter()

float DPS_ReadAmmeter ( uint8_t  ch,
uint8_t  unit 
)

DPS读取电流表的值

参数
chDPS_CH0/DPS_CH1
unit单位设置
  • IUNIT_NA = na
  • IUNIT_UA = ua
  • IUNIT_MA = ma
  • IUNIT_A = a
返回
float 电流值
示例
example_dps.c.

◆ DPS_ReadAmmeterStatic()

float DPS_ReadAmmeterStatic ( uint8_t  ch,
uint8_t  unit 
)

精度更高的方式读取DPS的电流值, 内置750us延时

参数
chDPS的通道
  • DPS_CH0
  • DPS_CH1
unit
  • IUNIT_NA = na
  • IUNIT_UA = ua
  • IUNIT_MA = ma
  • IUNIT_A = a
返回
float 电流值
示例
example_dps.c.

◆ DPS_ReadAmmeterFixed()

float DPS_ReadAmmeterFixed ( uint8_t  ch,
uint16_t  diffVal,
uint16_t  timeout_ms,
uint8_t  unit,
uint8_t *  err 
)

固定通道读取电流表,能得到更高精度的测量值. 连续读取一系列的值, 如果连续读取4次的值之间的差值都小于diffVal,则认为读取成功.

参数
diffVal允许的电流稳定后的adc采集跳动值.
  • 该值最大范围 2~65535; 正常情况下设置为 2~10; 一般设置为3即可;
  • 该值对应的电气意义为: 电流值 = 电流档位量程 / 65535 * diffVal;
timeout_ms超时时间
unit单位码
err返回错误标志 PMU_FIXREAD
返回
float 结果

◆ DPS_ReadTemperture()

float DPS_ReadTemperture ( void  )

读取dps的adc芯片的温度

返回
float 温度值 单位:摄氏度 (°C)