这段时间调试记录,记下来以供后续调试参考
人很菜调试出的问题很多
一 芯片调试寄存器问题
一开始没有搞清楚往寄存器里写数据、读数据是指什么寄存器。一定要去仔细查阅用户手册。
ATT7022E分两种寄存器,一个是计量参数寄存器,一个是校表参数寄存器。计量参数寄存器是写不进去的!!!!计量参数寄存器只能读!!!(这个地方真的折磨我很久)计量参数寄存器里面放的是外部输入的各类数据。校表参数寄存器可以写数据进寄存器去校验误差。
二 寄存器读写
读数据的时候虽然看起来是一样的地址,但有可能值不一样。比如读0x00的值,如果是计量参数寄存器,地址为0x705200,如果是校表数据寄存器,读出的是固定值0x00AAAA。如果不知道现在读的地址到底是哪个寄存器,可以通过特殊命令测试一下。发送命令0xC6,数据0x00005A选择读出校表数据寄存器参数,发送0xC6,数据不是0x00005A(如0x000001),选择读计量数据寄存器的参数。
其他读写要看用户手册特殊命令。
三 有效值offset校正
校正参数分两种校正,一种是没有外部输入的校正,一种是当外界有输入(各相电流、电压)的时候的校正。
有效值offset校正是没有输入的校正,需要放在外界有输入的校正的前面。
举例A相电压的offset校正
步骤:1.读计量参数寄存器A相电压有效值地址(0x0D),看参数多少。这里我读出来是0x0001D4,按照用户手册,Irms=468(0x0001D4转十进制)。
2.直接按公式计算:IrmsOffset = 468x468/2的15次方
3.计算得出IrmsOffset=6
所以校验值为0x000006
4.把校验值写进A相电压有效值Offset校正校验寄存器(0x24)
所以A相电压的offset校正代码 SPI2_Write_ATT7022EU(0x24, 0x000006);
ATT7022E调试记录(一)
最新推荐文章于 2024-10-01 14:44:29 发布