经历了四天的挣扎,AD7799终于调试成功啦!!!!!!!说说我遇到的问题一、不判忙的状态下,读出数据是ffffff二、不加判忙读出的数据一直是000000,加上判忙后,一直检测不到RDY变低,程序一直执行在判忙函数中 【AD7799调试详解】 在进行AD7799这款高精度模拟数字转换器(ADC)的调试过程中,经常会遇到一些棘手的问题。本文将深入解析两个主要问题及其解决方案。 问题一是在不进行“判忙”(Busy Check)的情况下,读出的数据始终为ffffff。这通常是由于AD7799内部基准电压未建立或无效导致的。在配置寄存器(CONFIGURATION REGISTER)中,需确保CON5设置为1,以便检查状态寄存器(STATUS REGISTER)中的NOREF位。若NOREF位为1,则表示内部基准电压低于0.5V,即基准电压没有正常工作。在这种情况下,需要检查参考电压引脚(REF+)和负参考电压引脚(REF-)。如果REF+的测量值正常,但读出数据异常,可能是PSW管脚的配置问题。PSW管脚由模式寄存器(MODEREGISTER)的MR12位控制,应确保当MR12置1时,PSW与GND导通,提供稳定的参考电压。如果未正确设置,可能导致REF-悬浮,从而读取到错误的数据。解决方法是设置MODEREGISTER的MR12位或直接将REF-连接至GND。 问题二是不使用判忙功能时,数据读出始终为000000,而在启用判忙后,程序无法检测到RDY(Ready)信号变为低电平。这可能涉及时序问题。在排查时,要仔细对比时序图和程序,确保所有时序要求都得到了满足。有时,即使程序时序正确,也可能由于硬件连接或CS(Chip Select)信号的控制不当而出现问题。在单次转换模式下,CS信号需要保持低电平。官方示例代码可能在每次读写操作中都改变CS的值,而实际应用中,应保持CS低电平直至整个操作完成。修改程序,避免在读写函数中直接控制CS,并在主程序中正确管理CS的高低电平状态,问题通常可以得到解决。 值得注意的是,AD7799的调试不仅需要对芯片本身有深入理解,还需要熟悉SPI接口的操作,因为AD7799通常通过SPI接口与微控制器通信。同时,查阅并遵循数据手册是非常重要的,因为手册中包含了所有必要的时序和配置信息。 另外,文章中提到了AD5439,这是一个10位双通道电流输出型数模转换器(DAC),其操作同样依赖于SPI接口。初始化和数据传输的函数如文中所示,确保正确的控制比特和数据被写入,以及适当的延迟以确保稳定的工作。 调试AD7799需要耐心和细心,对硬件、软件以及接口协议的深入理解,同时,参考官方文档和与其他工程师的交流能极大地帮助解决问题。希望这些经验分享能对其他使用AD7799的开发者提供有用的指导。
剩余10页未读,继续阅读
- 粉丝: 3
- 资源: 973
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助