LTC6803初始化与电压温度采集程序详解

4星 · 超过85%的资源 需积分: 50 78 下载量 82 浏览量 更新于2024-09-11 4 收藏 14KB TXT 举报
本资源主要介绍了如何使用LTC6803进行开发程序设计,特别是针对一款名为"LTC6803-3IC"的芯片。该程序的核心部分是LTC6803初始化函数LTC6803Init(),它包含了对LTC6803控制器的设置和配置。 首先,程序引用了几个关键头文件,如"LPC11xx.h"用于LPC11C14微控制器的硬件定义,"Main_User.h"和"LTC6803CMD.h"可能包含了通用用户接口和LTC6803特定的命令结构,而"LTC6803User.h"则是芯片的具体用户功能模块。 在LTC6803Init()函数中,初始化步骤如下: 1. 定义了一些变量,如错误状态标志Err、CRC校验值CRC_Temp和用于存储数据的数组Check,以及一个16位的临时寄存器MCxI_Temp。 2. 将LTC6803的CFGR寄存器配置成预设值,这可能涉及到电源管理(Ltc6803_CFGR0)、数字高边开关模式(DHGSwitch8_1)、测量通道配置(MCxI_Cfg1_4)等,以确保正确的电压和温度采集。 3. 设置MCxI寄存器的高4位和低4位,以适应特定的测量通道设置。 4. 进行电压和温度的配置,通过读取CFGR寄存器来获取MCxI通道的电压值,并进行左移操作和组合,可能用于后续的数据处理或显示。 5. 提供了错误处理机制,通过检查变量Err和CRC_Temp,可以判断初始化过程中是否有错误发生,以及使用Check数组来存储接收到的数据,用于校验和后续的数据解析。 这个程序的重点在于设置LTC6803控制器的硬件参数,确保其正常工作并能够准确地采集电压和温度数据。这对于嵌入式系统开发者来说,是实现设备监控、电源管理或其他与LTC6803相关应用的关键步骤。如果要在实际项目中使用,开发者需要根据芯片的文档和具体应用场景调整这些设置,并可能还需要处理其他如中断响应、数据通信等问题。
2021-04-21 上传
本项目原本设计的是一个毫欧表,为了测试C8051F350的24bit ADC,顺便兼容了一个电压表功能。一个直流电压表最关键的有3个部分:模拟前端、ADC和基准电压。这里就做简短描述,详解附件的更详细的图文讲解。 五位半电压表参数特性: - 100mV/1000mV/10V/100V四个档位,大概有50%超量程余量 - 五位半显示,最大150000 count - 支持任意值校正,通过面板按钮即可校正。精度保守一点吧,0.01% Reading+4 LSB,后面有测试图 - Fast/Slow两档速度,Fast:10次/秒,Slow:1次/秒 - 数据从USB UART输出,波特率115200(目前只输出,不能从上位机控制) - 默认5分钟自动关机,可以关闭该功能 - 使用一节锂电池供电,支持从USB充电 - 支持背光,可以关闭 - 工作电流:17mA(背光关闭);44mA(背光打开)。一节14500(5号)锂电池可以连续工作1.5~2天(背光关闭) 五位半电压表实物截图: 模拟前端 模拟前端肩负了几个重要任务:输入信号的衰减或者放大/低通滤波/阻抗变换/防护。 大家都知道一般来说ADC只有一个量程,台式的一般是10/20V,手持的三位半或者四位半是200mV,这个称为基本量程,也是精度最高的量程,其他的量程都要把输入信号放大或者衰减到这个量程再来测量。这个表的基本量程是1V,而且由于MCU内置了PGA,因此模拟前端仅需要考虑衰减。 ADC 使用C8051F350内置的24bit ADC,这个在毫欧表里面已经说的比较多了。这个表再重温一下,在PGA=1,10Hz的条件下,RMS noise是2.38uV,峰峰值 noise为2.38*6.6=15.7uV,也就是1V档的1.5个LSB(五位半),大概看到两个数在跳(极端情况可能3个),在Slow模式下,把10个读数平均,提升log(10)/log(4)=1.66bit,2^1.66=3.16LSB,因此在Slow模式基本上不会跳数了(当然,由于舍入问题导致的最后一位跳是不能避免的)。 基准电压 这里可以使用C8051F350的内置基准(最大15ppm温度系数),或者外部基准可以用REF5025(工业级:2.5ppm(典型)/3ppm(最大)温度系数;商业级:3/8ppm)或者MAX6192(A级:2/5ppm;B级:4/10ppm;C级8/25ppm)。 使用内置和外置基准的frimware是不一样的,不能搞错。