AD5410编程总结

来源:本站
导读:目前正在解读《AD5410编程总结》的相关信息,《AD5410编程总结》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AD5410编程总结》的详细说明。
简介:AD5410是数字写入控制电流输出的片子,分写数据部分和读数据部分,读数据其实就是读AD5410的寄存器的数据,主要目的无非是看看我写进寄存器的内容是否正确,调试出现错误时会用到,真正实现电流输出的是写数据部分。我一个部分一个部分来吧。

第一部分写数据

控制电流输出编程的大方向:上电复位AD5410(向复位寄存器写数据)——配置AD5410的控制方式(向控制寄存器写数据)——写数据到AD5410的数据寄存器(跟电流对应的码值)。三个步骤完成就可以输出你想要的电流了,就是按顺序向三个寄存器写数据。

向AD5410寄存器写数据就是一次性写3个字节的数,即24个bit,我用图例表示24个bit:

aaaa aaaa bbbb bbbb bbbb bbbb,a表示第一个要写的字节,b表示第二个和第三个要写的字节(因为b是16个bit,所以分2个字节来写)。a的取值是目的寄存器的地址,比如复位寄存器地址是0x56,则a=0x56(即0101 0110),b的取值就是要写入的目的寄存器的数据。从数据手册上可以看到如果要复位AD5410,则向复位寄存器里面写入0x0001,所以a=0x56,b=0x0001。写数据时需注意latch引脚的电平,写24个bit结束后拉高,在之前拉高的话则写数据会失败,如果不是24个bit,而是25个bit后才拉高的话写数据也失败。写bit时是下降沿写入,即clk为高后准备好bit,然后再将clk拉低,形成一个下降沿。

向复位寄存器写数据的程序如下:

DA_control(0x56,0x0001);

void DA_control(unsigned char addr,unsigned int data)

{

DA_latch_low;//latch为低电平

DA_SendByte(addr);

DA_SendByte(data/256);

DA_SendByte(data);

DA_latch_high; //latch为高电平

}

void DA_SendByte(unsigned char byte)

{

unsigned char i;

for ( i = 0; i < 8; i++)

{

DA_CLK_LOW;

if ( byte & 0x80 )

DA_SIMO_HIGH;

else

DA_SIMO_LOW;

DA_CLK_HIGH;

byte <<= 1;

DA_CLK_LOW;

}

}

同理,可以写控制寄存器和数据寄存器。

第二部分读数据

读寄存器数据编程大方向:选择要读的寄存器——读寄存器数据。

选择要读的寄存器就是向状态寄存器里面写数据,比如我需要读控制寄存器的数据,我就要先想状态寄存器里面写入读控制寄存器命令,然后对AD5410进行一个空操作(即AD5410的SDI接收到24个0-bit),这个时候在AD5410的SDO端口可以看到控制寄存器的数据。

读控制寄存器数据编程如下:

DA_Read_Register(0x02);

DA_Read_only(); //这个时候在AD5410的SDO端口可以看到控制寄存器的数据

void DA_Read_Register(unsigned char addr)

{

DA_latch_low;

DA_SendByte(0x02);//DA_SendByte的程序跟上面的一样

DA_SendByte(0x00);

DA_SendByte(addr);

DA_latch_high;

}

void DA_Read_only(void)

{

DA_latch_low;

DA_SendByte(0x00);

DA_SendByte(0x00);

DA_SendByte(0x00);

DA_latch_high;

}

最后总结一下我们使用个片子出现过的问题

1、我们硬件上使用的片子上推荐的连接方式,Rset接的外部电流电阻,但是我们没有使用推荐的15k低温漂电阻,用的12k的,导致我们初始态多了1mA的电流,把电阻换掉就好了。

2、我们一开始测试时将Iout引脚悬空,这会导致fault低电平,所以Iout需接负载或接地。

最后说一句:ADI的客户服务态度真是非常好,很耐心,而且MM声音好听。

提醒:《AD5410编程总结》最后刷新时间 2024-03-14 01:00:08,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AD5410编程总结》该内容的真实性请自行鉴别。