随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

AD7705/TM7705使用注意事项

http://bbs.eeworld.com.cn/thread-66467-1-1.html

1 空闲是SCLK=1(C POA),DIN=1(因为写寄存器都是从写通讯寄存器开始,此时第8位必须为0,若DIN上存在干扰使BIT8=1则会持续等待后面7bitS,从而RDY不拉低。

2 缓冲和非缓冲:

 非缓冲模式时,AD7705模拟输入前端的电阻电容的变化对AD转换精度影响很大,造成测量不准确,所以通常我们使用buf模式。因为缓冲模式可以适应前段温度,阻容参数变化,接入高阻抗信号源抗干扰能力强 

3 不管是校准还是数据AD转换,数字滤波器同步位FSYNC都要置为0,否则RDY不会拉低;

4注意输入通道的电压范围,结合极性和增益。

5 注意CLK的设置,AD7705和TM7705说的不一样

6 TM7706的第三通道是3(第一、二通道分别是0和1),所以读三个通道AD值的寄存器值分别应为0x38,0x39,0x3b.

7 软复位是发送40了SCLK高低脉冲,相当于发送5个0xFF的寄存器值;

8IO口模拟读一个字节时须注意(在MSB,上升沿读数据),一定是先移位再读高低加上去;如果按照下面的错误读法,读的值将扩大2倍(最后一位永远是0),输入只要超过一半16位AD值就会溢出

复制代码
/*错误程序*/
static uint8_t TM7706_Recive8Bit(void)
{
    uint8_t i;
    uint8_t read = 0;

    for (i = 0; i < 8; i++)
    {
        TM7706_SCLK_L;
       if(TM7706_MISO_IS_H)
      {
              read++;
      }    
        read = (read<<1);/*多左移一位,且最低位永远为0*/
        TM7706_Delay();

        TM7706_SCLK_H;
        TM7706_Delay();/*Tspw最小100ns;*/

    }
    TM7706_SCLK_H;//20201112
    return read;
}


/*正确程序*/
static uint8_t TM7706_Recive8Bit(void)
{
    uint8_t i;
    uint8_t read = 0;

    for (i = 0; i < 8; i++)
    {
        TM7706_SCLK_L;
        read = (read<<1)|TM7706_MISO_IS_H;
        TM7706_Delay();

        TM7706_SCLK_H;
        TM7706_Delay();/*Tspw最小100ns;*/

    }
    TM7706_SCLK_H;//20201112
    return read;
}
View Code
复制代码

 

posted on   杰瑞鼠  阅读(5153)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2017-05-10 关于存储的基本知识:
2017-05-10 关于外部存储器件对存储数据的管理。
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示