本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
有谁用过CS5523,为什么我按照数据手册写的怎么还初始化不了?
void initialize(void)//CS5523初始化
{
uchar j,temp;
P1 = 0xF4;
delay(600); //延时600ms等待32.768Khz晶振启动
for(j=0;j<15;j++)//连续发送15字节1
{
transfer_byte(0xff);
}
transfer_byte(0xfe);//再发送一个字节0xfe
write_to_register(0x03,0x00,0x00,0x80); /* Set RS bit */
/* Test for Valid Reset */
do {
read_register(0x0B);
temp = low_byte&0x40; /* Mask RV bit to 1 */
if(temp == 0x40)
write_to_register(0x03,0x00,0x00,0x00); /* Clear RS Bit */
}
while (temp != 0x40);//这个while能通过原因是读出的0xff与上任何数都不变(说明初始化哪里还有问题,可是已经是按照手册写的啊?)
}
无论我怎么努力,SDO口还一直是高电平,所以读出来的数据一直是0xff,所以后面的操作无法继续执行.
按理论等initialize();执行后串口就在等待一个有效命令,接下来你可以校准或者直接写配制寄存器,再写通道设置寄存器,然后发送转换指令,最后监视SDO引脚,一旦出现高电平,表示转换完成,可以读取转换结果了.
我希望谁用过CS5523系列的人,给我帮助,一定一定感谢你们. |