Part Number:AWR1642
hello,我现在有两个问题:
1. 我想要获取1642的电压,通过如下配置及函数获取到
const rlGpAdcCfg_t gpAdcCfg =
{
.enable = 0x3F,
.bufferEnable = 0x0,
.numOfSamples[0].sampleCnt = 20,
.numOfSamples[0].settlingTime = 3,
.numOfSamples[1].sampleCnt = 14,
.numOfSamples[1].settlingTime = 3,
.numOfSamples[2].sampleCnt = 14,
.numOfSamples[2].settlingTime = 3,
.numOfSamples[3].sampleCnt = 14,
.numOfSamples[3].settlingTime = 3,
.numOfSamples[4].sampleCnt = 14,
.numOfSamples[4].settlingTime = 3,
.numOfSamples[5].sampleCnt = 14,
.numOfSamples[5].settlingTime = 3,
.reserved0 = 0
};
case RL_RF_AE_GPADC_MEAS_DATA_SB:
{
memcpy(&rcvGpAdcData, payload, sizeof(rlRecvdGpAdcData_t));
break;
}
但是通道一获取到的是7V — 对应值137,15.8V — 对应值为366.这里有没有公式来进行计算?还是需要我自行计算出对应的参数?
2. 我想要获取板子的温度,但是循环调用rlRfGetTemperatureReport(RL_DEVICE_MAP_INTERNAL_BSS, &Temp_Data);函数,得到的温度一直是同一组值;
但是Temp_Data的time是不断改变的;并且重新上电后,值也是会变的(这是否可以证明温度变了,但是我并没有获得)。
Shine:
1. 请参考下面的blog最后GPADC值转换为电压 (V)https://e2echina.ti.com/blogs_/b/the_process/posts/iwr1642-awr1642-gpadc2.请参考下面的帖子如何读取温度。https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/753918/rtos-awr1642-read-temperature-from-the-temp-sensor-in-awr1642
,
Shuang Sun:
您好,
1. 公式1.8/1024*X适用于ADC1~5所有通道吗?
2. 帖子我看过了,我和他获取的方式是一样的,但是我循环获取却一直都是同一组值。
温度传感器相关的ADC6设置的是连续转换模式还是单次转换模式?
温度是通过ADC6的电压来表示的吗?ADC6的电压在读取所有通道的数组内,是在一个范围内来回跳变的。
如果是根据该pin电压计算温度值,电压应该随时间推移呈现线性上升或下降
,
Shine:
1. 在非缓冲模式下,ADC的满量程参考电压是1.8v,适用于所有通道,而缓冲模式下,满量程参考电压是1.3v。
2. 请尝试加大framePeriodicity,framePeriodicity太短会导致读取的值不变。一般内部是每隔1s读取一次温度值。
,
Shuang Sun:
您好,
1. 明白了,谢谢
2. 我调用rlRfGetTemperatureReport函数的周期就是1s,并且持续半个小时,值都是相同的。应该不是周期影响的
,
Shine:
请尝试加大framePeriodicity
,
Shuang Sun:
您好,我将周期改为3.33s、10s,首次调用可以读出一组温度,二次调用可以读出一组温度,后续调用温度再次不变,如下图:
首次调用:
断点再次进入:
静止一段时间后:
重新debug:
第一次读出来的是默认值吗?后续还是不变的,温度的ADC设置的是单次转换吗?
,
Shuang Sun:
您好,温度上报的时间间隔大约是多少?我间隔3s读一次,time都变成27w+才能够读到数据变化,实际时间已经接近一个小时。并且温度跳变幅度较大。这个上报时间和温度跳变间隔我有什么办法进行更改吗?