当前位置: 首页 > news >正文

ARM架构学习9——LM75温度传感器+ADC转换器

一、AT24C02跨页写入问题及代码优化

  • 发现当写入数据超过单页8字节边界时会出现数据回滚错误,原因是AT24C02在跨页写操作时必须先发送STOP信号再重新发送START信号。
  • 在循环写入过程中加入判断逻辑:若当前地址(REG + i + 1)为8的整数倍且非最后一个字节,则插入STOP后再重新START,并更新寄存器地址为下一页起始地址。
  • 针对不同容量型号(如24C04/08)需使用双字节地址指针的问题,优化函数接口,增加regLen参数指定地址长度(1或2字节),并通过循环配合右移操作实现多字节地址的正确发送。

二、LM75温度传感器接入与驱动开发

  • 新实验器件LM75温度传感器的基本参数:工作电压2.7~5.5V,通过A0/A1/A2引脚配置从机地址,默认焊接至GND形成地址90h(左移后为81h)。
  • 说明其核心寄存器包括只读温度寄存器(地址0x00),读取16位数据后需右移7位并乘以0.5得到实际温度值。
  • I2C读取时序无需修改底层驱动,只需调整从机地址和寄存器地址即可复用现有代码框架。

三、开发环境与调试注意事项

  • 警告移植的printf函数不支持浮点数输出(%f格式符无效),直接使用会导致程序卡死。
  • 指出进行浮点运算前必须启用FPU协处理器,在启动文件start.s中调用enable_FPU函数,否则执行浮点指令将引发CPU死机。
  • 建议分步调试:先验证原始寄存器值是否能正确读取并随温度变化,再处理数据转换和显示逻辑。

四、ADC模数转换器原理详解

  • ADC的核心作用是将模拟电压信号转换为数字量,而物理量(如温度、光照)需先通过传感器转换为电压信号。

ADC的分类:

  • 逐次比较ADC:精度上优于flash型ADC,速度优于双积分型ADC
  • 双积分型ADC:
  • flash型ADC:
  • 逐次逼近型ADC:
  • 逐次逼近型ADC的工作原理:利用比较器不断将参考电压二分并与待测电压比较,逐步逼近真实值。
  • N位ADC的分辨率由2^N决定,采样结果可通过公式“ADC原始值 × 参考电压 / 2^N”计算得出实际电压。
  • 解释了ADC的关键参数:量程(由参考电压决定)和分辨率(即ADC位数),并说明超出量程会导致削顶现象。
    • V=adc原始值*参考电压/2~(adc位数)
    • adc:量程:指的是adc能转换的模拟电压的范围,由参考电压决定。
    • 分辨率:adc的位数。
  • 提到对于超量程或微弱信号,可通过设计分压电路或放大电路进行信号调理。

五、IMX6ULL芯片ADC模块特性与寄存器配置

光照传感器原理:(光敏电阻)

  • 开发板所用ADC为线性逐次逼近型,支持8/10/12位分辨率,最高采样率达1MSPS。
  • 核心板原理图,确定ADC参考电压采用差分引脚(VDDA_ADC3P3H/L)以提高抗干扰能力和精度。

  • ADC拥有10个外部输入通道(IN0-IN9),可通过多路选择开关进行通道切换。
  • 解读关键寄存器功能:
    • 控制寄存器(HC0):用于使能中断和选择输入通道,强调首次切换通道需执行“伪切换”操作以触发采样。

    • 状态寄存器(R0):包含COCO标志位,表示一次转换完成,是读取数据的前提条件。
    • 数据寄存器(R0):存储12位ADC原始值,低12位有效。
    • 配置寄存器(CFG):可配置数据溢出覆盖使能、硬件平均功能(支持4/8/32样本平均)和高速采样模式。
  • ADC具备自校准功能,可在使用前执行以提高测量精度。
http://www.dtcms.com/a/395599.html

相关文章:

  • 再见,Windows 10:升级 Windows 11 的必要性!
  • 数据结构从入门到实战——算法的时间复杂度
  • Rust字符串
  • 【图文详解】强化学习最新进展以及核心技术突破方向、核心技术架构
  • Linux SSH 安全加固与批量管理:密钥认证 + 自动化脚本 + OpenSSH 升级
  • 一个可以直接跑满本地带宽文件分享工具 开箱即用,可用于局域网内分享文件和文件夹
  • 探索AI无人直播技术:自动化带来的新机遇
  • Codeforces Round 1051 (Div. 2) D1题 题解记录
  • 计算机视觉、图像处理国际学术会议
  • redhat7.4升级到Oracle Linux8.10
  • PEFT库实战快速入门
  • PyTorch 核心知识手册:神经网络构建与训练基础
  • DeepSeek对数学工具的分类(2025.1.13)
  • 2025年9月打磨机器人新技术解析与常见知名品牌推荐
  • STM32开发(WiFi - ESP8266)
  • ArcGIS 车辆轨迹跟踪 视频制作 第一人称视觉跟踪
  • Ansible自动化运维平台部署
  • VGG和PyTorch 神经网络工具箱
  • Linux系统nginx(一)
  • 144g网页制作最新 144g网页在线生成方法
  • PyTorch 神经网络工具箱全面解析
  • mac-vlan 概念及题目
  • 【华为OD机考正在更新】2025年双机位A卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】
  • 《Muduo网络库:基于Muduo的网络服务器编程示例》
  • 详解JNI JNA!
  • C# 获取docx文档页数的古怪方法
  • 算法题(215):奶牛飞盘
  • Ubuntu 安装与使用C++ onnxruntime库
  • Ubuntu 部署 Zabbix 6.0 LTS 监控平台
  • 基于springboot家政、上门服务、Java源码系统功能结构