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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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 关于外部存储器件对存储数据的管理。