1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好!我最近在着手使用DSP来控制AD7768-1进行电压采样,但是遇到了问题,还请大家指点一二。我根据芯片手册上的内容,给寄存器0x14、0x15、0x18、0x19分别配置相对应的内容,另外,配置了寄存器0x1D,给GPIO3发送一个1us左右的低电平,使其通过SYNC_OUT向SYNC_IN发送一个低电平来更新上述寄存器的值,但是DRDY输出的频率没有发生改变,仍然是15KHz左右。以下是我使用的代码,SPI是用GPIO口模拟的,时序的话,我用示波器抓取显示,没问题。
//写入寄存器0x14,无CRC,24位 addr = 0x14; 数据= 0x05; 写入ToAD7768RViaSpi( 添加器, 数据) ; (50) 延迟; //写入寄存器0x15,晶振、低速16分频 addr = 0x15; 数据 = 0x44; //01_ 00_ 00_ 0_ 1_ 00 写入ToAD7768RViaSpi( 添加器, 数据) ; (50) 延迟; //写入寄存器0x19,sinc5滤波、x256 addr = 0x19; 数据= 0x83; 写入ToAD7768RViaSpi( 添加器, 数据) ; (50) 延迟; 添加器 = 0x18; 数据= 0x90; 写入ToAD7768RViaSpi( 添加器, 数据) ; (50) 延迟; 添加器 = 0x1D; 数据 = 0x48;/ 0_ 1_ 00_ 1_ 0_ 00 写入ToAD7768RViaSpi( 添加器, 数据) ; (50) 延迟; 以下的代码是判断出DRDY的上升沿后,flag = 0,然后给GPIO3(STARTn)输出一个低电平,用来更新寄存器的值,这部分参考的是数据手册上 Initializing the Recommended Interface 这部分内容 {(旗子=0){ GPIOPinWrite(SOC_GPIO_0_REGS, 14, GPIO_PIN_LOW) ; (50) 延迟; GPIOPinWrite(SOC_GPIO_0_REGS, 14, GPIO_PIN_HIGH); 迟延(1); 课间休息; } 其它{ 继续; } 下面是我所使用的模拟SPI代码 写入 ToAD7768RViaSpi( int * 地址, int * data) { SET_SYNC();//CS拉高 (五) 迟延(5); CLR_SYNC();//CS拉低 延迟_us(5); SPIWrite(address, data);//写数据 延迟_us(5); SET_SYNC();//CS拉高,一次写结束 } 无效 SPIWrite( int * 地址, int * data) { Int 值写 [2]; 无符号 i = 0; 无符号j = 0; ValueToWrite[0] = (*address) 0x3f;//取寄存器地址 ValueToWrite[1] = (*data) 0xff;//取寄存器值 for(i = 0; i 《 2; i++){ for (j = 0; j 《 8; j++){ CLR_SCLK();//SCK拉低 如果( 0x80 = = (value to write[ i] 0x80 ) { SET_SDIN(); //Send one to SDI pin,如果当前位为1,SDI输出1 } 其它{ CLR_SDIN () ; /// 将零发送到 SDI 端点 } 迟延(1); SET_SCLK();//SCK拉高 迟延(1); ValueToWrite 《《= 1; //Rotate data } } } |
|
相关推荐
1个回答
|
|
默认配置数据对吗,或者改一下简单的分频,看看DRDY和CLK有变化没
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:38 , Processed in 0.681343 second(s), Total 73, Slave 56 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号