你好,我现在遇到了低功耗模式的要求,所以我按照数据手册配置PRF=62.5HZ和动态掉电模式,可是我不知道这两个寄存器怎么配置,PDNCYCLESTC,PDNCYCLEENDC,我感觉这个寄存器和时序是有关系的,在每次采集完之后,怎么确认Dynamic power-down timing?
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.
PDNCYCLESTC是指动态断电周期的"开始",PDNCYCLEENDC是指动态断电周期的"停止"。
应根据CLKOUT (4MHz)时钟周期数设置这两个参数。 参考此图:
PDNCYCLESTC指向PDN_CYCLE信号的上升边缘(T1的结束),而PDNCYCLEENDC指向PDN_CYCLE的下降边缘(T2的开始)。 这两个值都应写入相对于PRF周期开始时间的4MHz时钟周期数。 要计算PDNCYCLESTC,请确定上一个转换周期的下降边缘在哪里,加50us,然后将其转换为时钟周期。 对于PDNCYCLEENDC,确定PRF周期的总长度,减去200us,然后将其转换为时钟周期。
您的PRF频率是多少?您如何更改PRP寄存器?
您好,我理解您的意思,我是这么做的,将常规采集的一些时序参数,设置为1250hz,单独修改PRP寄存器为65hz的值,参考下面的数组。
const uint32_t afe4403_reg_array_1250hz_65hz_25cycle[31] = {//reg0-reg30
0,
2480,
3198,
2400,
3199,
80,
798,
880,
1598,
800,
1599,
1680,
2398,
6,
799,
806,
1599,
1606,
2399,
2406,
3199,
0,
5,
800,
805,
1600,
1605,
2400,
2405,
61537,
259,
};
在这种配置下,我将PDNCYCLESTC设置为ALED1CONVEND + 500,PDNCYCLEENDC设置为PRPCOUNT-1000,是大于t1 t2的时间要求的。
AFE44xx_Reg_Write((uint8_t)PDNCYCLESTC, afe4403_reg_array_1250hz_65hz_25cycle[ALED1CONVEND]+500); //0x32
AFE44xx_Reg_Write((uint8_t)PDNCYCLEENDC, afe4403_reg_array_1250hz_65hz_25cycle[PRPCOUNT]-1000); //0x33
然后我将CONTROL2的标志位这样设置:
cur_register_array[CONTROL2] = DYNAMIC1 + DYNAMIC2 + DYNAMIC3 + DYNAMIC4 + TX_REF_0 + TXBRGMOD_PUSH_PULL + XTAL_ENABLE + EN_FAST_DIAG;
在这种情况下我发现6个采集通道中,环境光1和环境光2的差别巨大,导致差分寄存器出来值不是一个量级,我马上做了对比测试,
我关掉动态电源,把PRPCOUNT和ALED1CONVEND一致,就不存在这种问题,
cur_register_array[CONTROL2] = TX_REF_0 + TXBRGMOD_PUSH_PULL + XTAL_ENABLE + EN_FAST_DIAG;
感谢,帮忙看看