CS5460笔记.docx

上传人:聆听****声音 文档编号:785061 上传时间:2023-04-30 格式:DOCX 页数:11 大小:461.99KB
下载 相关 举报
CS5460笔记.docx_第1页
第1页 / 共11页
CS5460笔记.docx_第2页
第2页 / 共11页
CS5460笔记.docx_第3页
第3页 / 共11页
CS5460笔记.docx_第4页
第4页 / 共11页
CS5460笔记.docx_第5页
第5页 / 共11页
CS5460笔记.docx_第6页
第6页 / 共11页
CS5460笔记.docx_第7页
第7页 / 共11页
CS5460笔记.docx_第8页
第8页 / 共11页
CS5460笔记.docx_第9页
第9页 / 共11页
CS5460笔记.docx_第10页
第10页 / 共11页
CS5460笔记.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

CS5460笔记.docx

《CS5460笔记.docx》由会员分享,可在线阅读,更多相关《CS5460笔记.docx(11页珍藏版)》请在冰点文库上搜索。

CS5460笔记.docx

DataFlow

/*Chapter1*/--Instructor

1、CS5460适合与分流器或电流互感器相连来测量电流;与分压器或电压互感器相连来测量电压。

为适应不同电平的输入电压,电流通道集成一个增益可编程放大器(PGA),使得输入电平满量程可选择为±250mVrms(10倍增益)或±50mVrms(50倍增益)/*在配置寄存器里面可选*/。

电压通道的PGA适应±250mVrms(10倍增益)/*只有一个*/

2、每个通道的高速数字低通滤波器对数据进行低通滤波,以去除调制器输出的高频噪声。

/*也就是为了使得数据更加精准*/。

电压通道的数据与与一个可变的时延滤波器有关。

时延长度由相位补偿位的7位二进制值确定/*配置寄存器的PC[0:

6]*/,缺省值为0000000(且MCLK/K=4.096MHZ)时,相对于初始的模拟电流输入信号,加在初始的模拟电压信号的额定时延为1us。

这在频率为60HZ时相对于约0.0216的滞后。

/*这就需要相位补偿了,注意这是相对于电流而对电压做的相位补偿。

PC[0:

6]是属于电压的*/

3、滤波后瞬态电压和电流的数字量将基于DC偏移量寄存器(进行加法运算)和增益寄存器(进行乘法运算)进行偏移量/增益调整。

这些寄存器用于芯片的校准。

经过偏移量和增益调整,24位瞬态数据采样值存入瞬态电压和电流寄存器,用户可以通过串口读出。

4、有功功率及有效值计算:

3讲到了瞬态电流和电压,每对采样的瞬态电流和电压相乘,得到瞬时有功功率(RealEnergy)的采样值,每个A/D采样周期后,新的瞬态功率采样值存入瞬时功率寄存器,可被用户读出。

N个瞬时功率采样值作为一组/*N值放在周期计数寄存器中Default=4000*/,ThecumulativesumofeachsuccessivesetofNinstantaneouspowerisusedtocomputetheresultstoredintheEnergyRegister,whichwillbeproportionaltotheamountofrealenergyregisteredbythedeviceduringthemostrecentNA/Dconversioncycles.从图可以看出但前的瞬时功率累加和右移了12位(相当于除以4096),以避免能量寄存器产生溢出(如果不除以4096的话,24位的寄存器存不下这么多的数值)。

RMS值同样采用最近的N个瞬态电压/电流采样值计算。

这些值可以从Irms和Vrms寄存器里读出。

即:

首先测量瞬态电流和瞬态电压,由此计算相应的瞬时功率,由N个瞬时功率à有功功率的周期计算值;N个瞬态电流和瞬态电压à有效电流和有效电压的周期计算值。

也就是说Vrms和Irms还有电能计算(有功功率[Active(real)Power])没N次转换更新一次

5、A/D采样周期=A/D转换时间=每对瞬态电压和瞬态电流的采样时间。

计算周期=N个瞬态电压和瞬态电流采样完并计算出相应的有功功率(EnergyPower)和RMS(Irms、Vrms)值

6、瞬态电压、瞬态电流、瞬时功率、有功功率的数值是用24位有符号的二进制补码表示(-1

7、每个A/D转换结束(每个瞬态电流和电压的采样周期)后,CRDY位都将被置位,同时若CRDY位未被屏蔽(在屏蔽寄存器中),INT引脚将有效。

8、CRDY被置位表示新的24位瞬态电压和电流采样值已获得,并且他们相乘获得了相应的24位瞬时功率值。

9、DRDY被置位表示一次计算周期结束,即完成了一次Vrms、Irms和电能的计算和更新。

如果屏蔽寄存器的DRDY位没有被屏蔽,则INT引脚有效。

10、CRCY在每次A/D转换后置位,DRDY在每次计算周期结束后置位,置位后必须子下次置位之前对其清零,以使其能够在INT引脚上发新的中断事件。

11、如果周期计数寄存器N=1,则所有的输出计算都是瞬态值,当瞬态计算完成后DRDY将有效。

若需要RMS,则周期计数寄存器的设置值必须大于10。

计算周期频率由主时钟确定,其值为(MCLK/k)/(1024*N)。

缺省条件下XIN=4.096MHZ,K=1/*K[0:

3]在配置寄存器里*,K是时钟分频系数/,则电流、电压和功率的瞬态A/D转换速率为4000Sps,因为N默认是4000,所以RMS和电能计算速率是1Sps(即每秒计算一次有效电流、有效电压和有功功率!

)。

12、单计算周期C=0/*在启动转换命令寄存器里C代表Conversion的意识*/即执行完一个计算周期后DRDY位被置位。

然后读取数据完毕后,串行接口返回到命令模式以等待新的命令被发出。

13、连续计算周期C=1。

芯片将保持在激活状态下。

连续的计算周期在电压和电流通道重复进行(每N次转换进行一次)。

注意用户不能在单个通道上启动/中止计算周期。

每个计算周期结束后,DRDY位被置位。

读取一个寄存器需要32个SCLK时钟信号,前8个SCLK时钟信号用于确定被读寄存器地址(即我们常说的写命令),后24个SCLK时钟信号用来读出计算结果。

在这种模式下,thedesigner/programmermaychoosetoacquire(read)onlythosecalculationsrequiredfortheirparticularapplication,asDRDYrepeatedlyindicatestheavailabilityofnewdata.NoteagainthattheMCUfirmwaremustresettheDRDYbitto“0”beforeitcanbeassertedagain.

14、用户写命令启动转换后且C=1时,芯片将保持在激活状态下。

一旦进入”连续计算周期”数据采集模式,CS5460A将连续在电压/电流通道进行A/D转换及后续计算,直到:

a)从串口接到”上电/暂停”命令;b)芯片掉电;c)用户确认配置寄存器中的RS位置1(Startachipresetcyclewhenset1.Theresetcyclelastsforlessthan10XINcycles.Thebitisautomaticallyreturnedto0bytheresetcycle)。

d)硬件复位。

/*Chapter2*/--SerialPort

1、记住所有寄存器都是24位的。

命令不是24位的命令是8位的!

所有的寄存器都是可读写

2、上图是读写命令寄存器。

W/R位:

0à读寄存器操作;1à写寄存器操作;

RA[4:

0]:

24位寄存器的地址位。

详细见datasheet!

3、串行接口:

1>CS(有个上划线,word不知道怎么表达,所以省去了):

片选,低电平有效;CS=1时,SDI、SDO、SCLK输出将保持高阻抗。

2>SDI:

串行数据输入脚(数据写进5460);

3>SDO:

串行数据输出脚(数据从5460出来让你从单片机中读);

4>SCLK:

串行时钟输入脚,控制数据移出或移入。

每个上升沿就将一个数据位进行读出或写入,即每个数据位操作都伴随一个时钟脉冲。

4、串口读/写:

下图为时序图。

注意高位在前,先把高位送出去或读进来,即左移数据。

RegisterWrite

Whenacommandinvolvesawriteoperation,theserialportwillcontinuetoclockinthedatabits(MSBfirst)ontheSDIpinforthenext24SCLKcycles.Commandwordsinstructingaregisterwritemustbefollowedby24bitsofdata(这24比特跟随这24个时钟脉冲走).

RegisterRead

当启动了读命令,串口将在下面8个、16个或24个SCLK周期启动SDO脚上的寄存器内容的转移(从高位开始)。

寄存器读指令可以终止在8位的边界上(如,读出时可只读8、16或24位)。

同样,数据寄存器读出允许采用“命令链”。

因此,读寄存器时,MCU可同时发送新指令,新指令将被立即执行,并可能终止读操作。

例如,命令字写入后用来读取某一输出寄存器的值,进行了16个连续的读数据+串行时钟脉冲后,执行写命令字(如状态寄存器清零命令),数据从SDI引脚输入,同时剩下的8位读出数据被传送到SDO引脚。

又如,用户仅需从读操作中获取16位有效位时,可在SDO读出8位数据后从SDI输入第二个读命令(一般不需要这样,直接读出24位数据,中途无需在写入命令,这样操作有点复杂,除非你是高手。

我们一般都是读出24位数据,中途没写入其他命令。

)。

在读周期,当从SDO引脚输出数据时,必须用SYNC0(NOP)使SDI引脚处于选通状态。

(ENGLISH)Whenareadcommandisinitiated,theserialportwillstarttransferringregistercontentbits(MSBfirst)ontheSDOpinforthenext8,16,or24SCLKcycles.Duringthereadcycle,theSYNC0command(NOP)shouldbestrobedontheSDIportwhileclockingthedatafromtheSDOport.

5、串口初始化:

串口与SCK不同步是有可能的。

一旦发生这种情况,任何输入5460的有效都有可能产生奇异的动作。

因此初始化是任何写和读的前提!

因此需要初始化串口:

1>5460上电(若已上电,recyclethepower)

2>硬件复位

3>向串口发初始化序列,3个SYNC1(0xFF)或更多,紧随着一个SYN0(0xFE)

6、5460上电后进入有效状态(不在睡眠状态或等待状态中)。

下列操作哦可保证5460工作在有效状态:

1>5460上电(若已上电,recyclethepower)

2>硬件复位

3>软件复位

当芯片工作在睡眠状态或等待状态时,将其唤醒的指令(上电/暂停)同样可使芯片进入有效状态。

但需要注意的是用户必须确保串口已经初始化过,否则先对串口初始化然后才能写上电/暂停命令。

7、5460可以由2.5~20MHZ范围的时钟驱动。

用户应适当设置分频比K,以确保MCLK/K处于2.5~5MHZ.TheKdividervalueissetwiththeK[3:

0]bitsintheConfigurationRegister

/*Chapter3*/--Calibration

1、对于电压和电流通道,都有AC和DC校准。

不管哪种校准都有两种模式:

系统偏移量校准和系统增益校准。

Duringthecalibrationsequences,properinputcalibrationsignalstothe“+”and“-“pinsofthevoltage-/current-channelinputsmustbesupplied.Theseinputcalibrationsignalsrepresentfull-scalelevels(forgaincalibrations)andgroundinputlevels(foroffsetcalibration).其中AC和DC校准不同。

2、5460有一系列的校准寄存器,当某一校准命令执行后相应的寄存器会保留校准产生的修正值,用户可以读取这些校准寄存器,并将其保存到外部非易失性存储器(如EEPROM)里,在系统重新上电启动时,可以从NV里读取存入的值并写入相应的校准寄存器,不必重新执行校准。

3、总共六个校准寄存器:

1>DC直流电压偏置寄存器(0xD1)

2>DC直流电流偏置寄存器(0xC9)

3>电压增益寄存器(--)

4>电流增益寄存器(--)

5>AC交流电压偏置寄存器(0xD5)

6>AC交流电流偏置寄存器(0xDD)

4、AC偏移量寄存器用于存储进行加法运算的校正值。

由DataFlow图可以看出,直流偏移量的值在信号通道的更前端就加入电压/电流信号,因此DC偏移量寄存器的值将影响5460的所有结果。

对于交流偏移量校正则并非如此。

AC偏移量寄存器的值只影响电压有效值和电流有效值的计算结果。

5、AC和DC的增益校准寄存器是一个!

因次用户在校准前就必须决定是执行AC增益校准还是DC增益校准。

因此AC和DC增益校准只能取其一。

6、由于电压和电流通道具有各自的偏移量和增益寄存器,系统偏移量和系统增益校准可分别进行,互不影响。

校准命令

7、校准顺序

1>在校准之前,必须使得5460处于活动状态,同时使其准备接收有效命令并清除DRDY位;

2>将合适的校准信号加到电压电流通道的输入端。

一般来说,在执行偏置校准时,应加入零信号,在执行增益校准时应加入设定的满度信号;

3>写校准控制命令字;

4>检查状态寄存器的DRDY位,直到置1后才读相应的校准寄存器,并将其保存在NV里以防日后再用。

注意:

当用户发送校准命令到5460时,5460不能处于A/D转换状态,加入在转换状态,用户必须发送一个Powe_halt/*在上电/暂停命令寄存器里*/t命令以终止A/D转换,之后才能发送校准命令,一下举例一个完整的交流校准过程,其直流校准过程与之雷同

步骤1、输入电压电流为零,电路连接图如下图:

步骤2、清除DRDY位,发送Power_Halt命令:

VoidClear_DRDY()

{

unsignedcharbuf[4];

buf[0]=0x5e;

Buf[0]=0xff;

Buf[0]=0xff;

Buf[0]=0xff;

Write_CS5460A(buf,4);//写状态寄存器

}

voidwait_DRDY_High()

{

unsignedcharbuf[4];

while

(1)

{

Read_CS5460A(buf,0x1e);

If(buf[3]&0x80)break;

}

}

Clear_DRDY();

buf[0]=0xa0;

Write_CS5460A(buf,1);//发送power_halt命令

步骤3、交流电流偏置校准:

Clear_DRDY();

buf[0]=0xcd;

Write_CS5460A(buf,1);//写校准命令寄存器

Wait_DRDY_HIGH();//等待校准完成

Read_CS5460A(buf,0x20);//读校准寄存器的值

Write_AT24C01(buf,addr,len);//将值存入NV中

步骤4、交流电压偏置校准:

Clear_DRDY();

buf[0]=0xd5;

Write_CS5460A(buf,1);//写校准命令

Wait_DRDY_HIGH();//等待校准完成

步骤5、使输入电压电流为满量程。

假如设置的满度电压为220V,满度电流为12A,则在电压输入端加入AC220V电压信号,在电流输入端加入AC-12A电流信号。

接线图如下:

步骤6、交流电流增益校准:

Clear_DRDY();

buf[0]=0xce;

Write_CS5460A(buf,1);

Wait_DRDY_HIGH();

步骤7、交流电压增益校准

Clear_DRDY();

buf[0]=0xd6;

Write_CS5460A(buf,1);

Wait_DRDY_HIGH();

/*交流校准完成*/

以下为各种校准的总结:

//AC-OFFCalibration

1>AC电流偏移校准时将IIN±接地,AC电压偏移校准时将VIN±接地。

2>发0xA0命令(停止计算,中止A/D转换)

3>把电压通道与电流AC偏移寄存器值写为默认值:

0x000000

4>发0xDD命令(电压/电流通道AC偏移校准命令)

5>发0x1E命令,读状态寄存器DRDY位直到为1,置位后表示校准已完成,不为1则等待。

或者不读DRDY位直接等待8秒

6>校准完成,发0x22命令,去读电压通道AC偏移寄存器值并存储到NV中;发0x20,读取电流通道AC偏移值,并把值存入NV中

//AC-GainCalibration

1>在指定电压范围内输入交流信号到芯片的VIN±、IIN±。

如:

电压通道最大输入电压为±250mv,是176mv(RMS),为使电压变大时不超出此值,则输入交流信号一般取110mv(RMS);电流通道亦然。

2>发0xA0命令(停在计算,中止A/D转换)

3>把电压通道与电流通道AC增益寄存器值写为默认值:

0x000000

4>发0x1E命令,读状态寄存器DRDY位直到为1,置位后表示校准已完成,不为1则等待。

或者不读DRDY位直接等待8秒

5>校准完成后,(这时Vrms和Irms寄存器值近似等于0x999999,即0.6),发0x08命令,去读取电压通道AC增益寄存器值并存储在NV中;发0x04命令,去读取电流通道AC增益寄存器值并把它存到NV中

注意:

偏移量校准中,交直流校准信号是一样的,只是将电压/电流通道的正负引脚接地。

使用时不应同时进行偏移量和增益校准,否则会引起不符合要求的计算结果。

Ifbothgainandoffsetcalibrationarerequired,istorunoffsetcalibrationbeforegaincalibration;andifbothACandDCoffsetcalibrationarerequired,DCoffsetshouldbecalibratedfirst.

交流电压增益校准算法的出发点是调整电压通道增益寄存器的值,意识的对应输入端校准参考信号电平的电压有效值寄存器的值为0.6。

校准信号加在通道的正负引脚上,电平由用户决定。

在交流电压增益校准时,电压有效值寄存器的值被调整成0.6,存放于电压通道增益寄存器。

看懂下图差不多就明白了:

换算关系的建立:

(对上图的解释)

解释:

第一个是未校准AC电压增益的情况,电压增益默认的是1.0(0.999……):

250mV满度对应的是1.0,输入是电平是230mv的幅值,对应的瞬态电压寄存器的值是230/250=0.92,有效电压的还得除以一个根号2即0.92除以根号2后是0.65054,这个值将保存在电压有效值寄存器中。

同理,反过来。

你可以通过读取有效值寄存器的值来算出最后测量的实际电压。

第二个是经过校准后的AC电压增益,目的是使得电压有效寄存器的值为0.6(这样做是为了适应更大电压范围,预防数值超量程?

),{但这个0.6到底要不要写进有效值寄存器中呢?

,5460在校准的时候没有自动写进有效值寄存器中}0.6乘以根号2就是电压瞬时值寄存器里的值了即0.84853,然后由于输入的是230mv,满度是250mv,所以增益值就可以算出了即0.92231。

这个时候把0.9223存入电压增益寄存器中。

这样就可以建立起换算关系了。

校准所需要时间:

周期计数寄存器的N确定了在给定校准过程内的A/D转换数。

对于直流偏移量/增益校准,校准过程至少需要N+30个转换周期完成。

对于交流偏移量/增益校准,校准过程至少需要6N+30个A/D转换周期完成(约6个计算周期)。

增加N可提高校准结果的精度。

最终换算关系总结:

1>互感器的作用就是将电流和电压转换成交流电压使得IIN和VIN在最大250mv(5460最大可以测得的数据)以下。

所以互感器的匝比是不需要在计算中体现的。

2>假设您的电路上流过的最大电流是10A(这就是所谓的最大满度负载),然后写校准命令后,5460电流有效值寄存器的值应该是0.6(0x99,0x99,0x99如果是0x99,0x[][],0x[][]也就差不多了)左右。

这个值可以用来检查是否校准好。

同时公式也就建立起来了:

10AX1=0.6X2

其中X2是在接X1负载时5460测的有效值寄存器的值,这个时候X1就可以求出来了X1=(10*X2)/0.6,这是程序代码里需要写进的等式。

3>电压校准也如上述一样,假设您的满度负载是220V交流电。

写校准命令后220V对应的5460电压有效值寄存器的值应该是0.6,然后等式:

220VX1=0.6X2

X1=(220*X2)/0.6

FAQ

1、如果在CRDY位置位后我不做清零操作,后果将会如何?

两种情况:

第一是5460继续它的A/D转操作,继续瞬态电压、瞬态电流和瞬态功率的更新(C=1连续计算周期),情况是如果不需要INT操作的话。

第二是5460停下来不做任何采样了……

2、如果在DRDY位置位后我不做清零操作,后果将会如何?

两种情况:

第一是5460继续它的周期计算,即继续它的Irms、Vrms和有功功率计算和更新(C=1连续计算周期),情况是如果不需要INT操作的话。

第二是5460停下来不做任何采样了除非清零……

答:

不清除DRDY位和CRDY位5460可以继续采集数据,如果你不需要中断的话这样可以。

3、我不校准将会怎样?

答(官方):

5460并非必须要校准。

当系统上电并复位后,芯片就可以工作了,此时成为“激活态”。

在收到“启动转换”命令时,芯片可在不校准的情况下进行测量,但其输出值受到校准寄存器的影响。

若不进行校准,寄存器内的值为缺省值(增益=1.0,DC偏移量=0.0,AC偏移量=0)。

尽管不进行偏移量和增益校准芯片也能工作,但不保证读书准确度在0.1%的范围内。

4、如果我不接负载的话,它是否会采集数据呢?

答:

会。

5、校准完成后是否会自动将HALT模式转换为启动模式?

答:

不会,要发送0xE8来启动A/D转换。

6、如何判断校准效果?

答:

1>电压通道:

加额定电压(即满量程最大电压如310V),上位机发送读取电压有效值命令给MCU,MCU再发送0x18给5460读取电压有效值寄存器的值,判断该值是否是0.6,即对应的5460寄存器值为0x99,0x99,0x99,若电压通道校准不好,则读出的电压有效值偏离0.6较大。

注意:

读出5460电压有效值寄存器的值,转化成浮点值Vrms,在转化成实际的电压值u:

u=(Un*Vrms)/0.6其中:

Un为电压量程(比如220V)

2>加标定电流(已知的),上位机发送读取电流有效值命令给MCU,MCU收到此

命令后,发送0x16给5460来读取电流有效值,判断是否是0.6左右,即对应

的5460寄存器值为0x99,0x99,0x99,(最少也要保持0x9[],0x[][],0x[][])如偏

离较大需重新校准。

然后

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2