-
2022-01-18 22:27:40
HX710芯片最大的坑是差分信号的输入阈值,不要只看到Vinp-Vinn,要看差模电压输入的范围,是AGND+0.9~AVDD-1.3,这个奇葩设定是真的火,由于电压域的问题,datasheet没有明确写支持3.3V信号,为了兼容3.3V的信号在设计的时候使用的AVDD=VDD=3.3V,而压力传感器的电压为了获得更高的输出范围使用了5V,这样导致电桥的输出为2.5±10mV,因此超过了3.3-1.3=2V,是无法获取到正确的压力值的。注意下这个问题,但是在使用外部电源直接输入差分电压时,我使用2个独立电源一个供电,一个输入1mV的电源电压是可以准确读取的,这个是什么原因?
更多相关内容 -
HX720/HX711 数据采集及处理姿态解析(公式及源码)
2020-05-22 10:08:051.由于世面上面普及HX711,单HX720有更大的优势!1.由于世面上面普及HX711,单HX720有更大的优势!
2.驱动源码
//管脚定义 #define HX720_RCC RCC_APB2Periph_GPIOB //HX720时钟引脚 #define HX720CLK_Port GPIOB //HX720时钟引脚 #define HX720CLK_Pin GPIO_Pin_15 //HX720时钟引脚 #define HX720_RCC RCC_APB2Periph_GPIOB //HX720数据引脚 #define HX720Read_Port GPIOB //HX720数据引脚 #define HX720Read_Pin GPIO_Pin_14 //HX720数据引脚 //定义 #define HX720_CLK_H() (GPIO_SetBits(HX720CLK_Port,HX720CLK_Pin)) //时钟线置高电平 #define HX720_CLK_L() (GPIO_ResetBits(HX720CLK_Port,HX720CLK_Pin))//时钟线置低电平 #define GetDataPinState() (GPIO_ReadInputDataBit(HX720Read_Port,HX720Read_Pin))//获取引脚状态 //管脚初始化 // 称引脚初始化 void BalancePortInit(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(HX720_RCC, ENABLE); GPIO_InitStructure.GPIO_Pin = HX720CLK_Pin; //时钟 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(HX720CLK_Port, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = HX720Read_Pin;//数据 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(HX720Read_Port, &GPIO_InitStructure); } //机器周期延时 __NOP(); 1个us void DelayHX720us() { __NOP(); __NOP(); } //获取HX720数据 uint32_t GetHX720Data(void) { volatile uint32_t Count= 0; uint8_t i; HX720_CLK_L(); //使能AD(SCK置低) Count=0; while(GetDataPinState()); //AD转换未结束则等待。否则开始读取 for (i=0;i<24;i++) { HX720_CLK_H(); //SCK 置高(脉冲) //DelayHX720us(); Count=Count<<1; //下降沿来时变量Count左移一位,右侧补 HX720_CLK_L(); //PD_SCK 置低 //DelayHX720us(); if(GetDataPinState()) Count++;//最右侧补1 } //测量128增益 10HZ HX720_CLK_H(); Count = Count^0x800000;//第25个脉冲下降沿来时,转换数据 异或 //Count = Count & 0x7FFFFF; //恢复 //DelayHX720us(); HX720_CLK_L(); //DelayHX720us(); //测量VBAT-VOUT HX720_CLK_H(); //DelayHX720us(); HX720_CLK_L(); //DelayHX720us(); //128增益 40HZ HX720_CLK_H(); //DelayHX720us(); HX720_CLK_L(); //DelayHX720us(); return(Count);//输出的数据是带符号的输出,处理数据的时候需要把符号去掉 }
3.数据分析
- 数据手册写 输出数据在0x800000 - 7FFFFF之间。
- 这个数据大家很迷惑估计,上面说的是 是以二进制补码的方式输出的
- 0x800000 BIT=1000 0000 0000 0000 0000 0000 (24位)
- 0x7FFFFF BIT=011111111111111111111111 (24位)
- 那下面看下 补码的定义:在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理,符号位都是用0表示“正”,用1表示“负”
- 这样就不难理解了,0x800000 最高位代表负数,这样 会出现1111 1111 1111 1111 1111 1111 - 7FFFFF 到 + 7FFFFF,这就出现一个问题 最小不是 0X800000,而是 带符号的 FFFFFF。这是我对数据的理解
- 有个Blog也有讲数据分析的 传送门 可以看一下
- 这样数据如果 异或 ^0x800000 (相同为0 相异为1) 这样数据就会从 0x000000 --- FFFFFF;
- 数据这样分析就应该理解了
4.数据的处理
- 由于 数据 ^0x800000,这样处理数据的时候最高位 就要小心处理,避免过零点,如果 INP<INN,这样数据是相反的,具体
- 因此想数据直接转换为 采集的电压就必须注意这一点,如果 INP > INN 简单的去掉符号位,保留有效位就得到实际值了;反之就要去掉符号位,拿7FFFFF去减有效位,得到的是实际值
5.数据的计算方式
- 看手册是增益128 手册分辨率24bit,实际无噪声是 16bit,不过算的话还是 24bit。如果采集的数据小的话 这样可以用 16bi以下的数据就可以了,数据会准确很多吧
- 理论精度:
- 计算方式:
- 例 :INP - INN = 2Mv (Vref单位也是Mv)
6.测量的数据转化为温度,误差还是可以接受的
-
STM32压力传感器信号采集-24位AD HX720 HX711 原理介绍
2019-09-12 20:42:25我做过很多工业用压力采集产品,用过很多高分辨率的AD芯片,...最近在用海芯科技出的HX720,芯片内部集成了低噪声稳压管,这样降低成本,也省去选参考源的麻烦。给24位AD选参考源是很头疼的事,参考源选的指标过高,...我做过很多工业用压力采集产品,用过很多高分辨率的AD芯片,其中有两款值得推荐。一个是海芯科技出的HX711等24位AD,一个是塞普拉斯出的CS5532等24位AD。国产芯片和进口芯片有差距,但是国产芯片也解决了很多应用的问题,替代了很多进口产品。
最近在用海芯科技出的HX720,芯片内部集成了低噪声稳压管,这样降低成本,也省去选参考源的麻烦。给24位AD选参考源是很头疼的事,参考源选的指标过高,AD新能不一定能达到,参考源选的指标低了不能实现想要的精度。
HX720内部带有128倍放大器,这也是专为压力传感器输出小信号设计的,降低了成本,提高了性能和可靠性。芯片内部带有振荡器,内部带有50Hz、60Hz滤波器,宽温度范围 -40~+85℃,8脚封装。缺点是输出速率比较低,10Hz、40Hz,对于很多应用也是可以的。精度和进口芯片也小有差距。
典型设计如下:
电气参数如下:
厂家给出原理图和PCB供大家参考
基于这些资料,设计了STM32控制HX720的压力采集模块。下面分别说下各部分功能。完整图纸如下:
电源部分,供电来自USB的5V,考虑到HX720的稳定性,没有采用HX720输出的3.3V为单片机和其他部分电路供电。而是单独加了LM1117稳压芯片为处理AD以外电路供电。
USB接口除了供电以外,还设计了CH340做USB转UART,方便和PC通信。CH340是江苏沁恒股份有限公司的芯片,这家公司出了很多好用的芯片,我还经常用他家USB、以太网、数码管驱动等芯片。
AD部分,依照参考设计,AD芯片和传感器之间可以选用4线接线方式,也可以用6线接线方式,可以做实验对比。
单片机部分,很多demo都有51做主控,现在很少有产品用51了,所以这样的demo不实用。我选用了比较流行的STM32,方便扩展其他功能。
这两排是扩展的端子
数码管部分,我直接用单片机的IO口驱动的数码管,现在单片机端口足够多,驱动能力也够强。
按键部分没有加滤波消抖电路,最终还是要加软件滤波消抖。
LED部分要加限流电阻,电流计算方式是 单片机电压减去二极管结电压再除以电阻值,有一点要注意,不同颜色的发光二极管结电压不一样。通常红色为1.6V左右,绿色有2V和3V两种,黄色和橙色约为2.2V,蓝色为3.2V左右。对于常用的几毫米大小的二极管,其工作电流一般在2毫安至20毫安之间,电流越大亮度越高。
PCB如下
实物如下
-
STM32压力传感器信号采集-24位AD HX720 HX711 CS5530 CS5532 C#上位机
2019-11-23 21:04:45我做过很多工业用压力采集产品,用过很多高分辨率的AD芯片,...最近在用海芯科技出的HX720,芯片内部集成了低噪声稳压管,这样降低成本,也省去选参考源的麻烦。给24位AD选参考源是很头疼的事,参考源选的指标过高,...我做过很多工业用压力采集产品,用过很多高分辨率的AD芯片,其中有两款值得推荐。一个是海芯科技出的HX711等24位AD,一个是塞普拉斯出的CS5532等24位AD。国产芯片和进口芯片有差距,但是国产芯片也解决了很多应用的问题,替代了很多进口产品。
最近在用海芯科技出的HX720,芯片内部集成了低噪声稳压管,这样降低成本,也省去选参考源的麻烦。给24位AD选参考源是很头疼的事,参考源选的指标过高,AD新能不一定能达到,参考源选的指标低了不能实现想要的精度。
HX720内部带有128倍放大器,这也是专为压力传感器输出小信号设计的,降低了成本,提高了性能和可靠性。芯片内部带有振荡器,内部带有50Hz、60Hz滤波器,宽温度范围 -40~+85℃,8脚封装。缺点是输出速率比较低,10Hz、40Hz,对于很多应用也是可以的。精度和进口芯片也小有差距。
实现单片机数据采集/传输/显示,使用C#编写上位机显示及标定功能。
原理图如下
PCB如下
实物如下
上位机如下
-
HX8394-F_DS_v01.09_170223
2018-06-08 14:48:39HX8394-F_DS_v01.09_170223,调试手册!!!!!!!!!!!!!!!!!!!!!!!!!! -
HX8394-F_DS_Temporary_V01.06
2018-03-08 09:44:06lcd 液晶驱动datasheet,分辨率为1280*720 HD HX8394-F_DS_Temporary_V01.06 最新 -
HX8394F液晶驱动IC
2015-09-06 09:32:39lcd 液晶驱动datasheet,分辨率为1280*720 HD,奇景公司的。 主要用手机显示屏的液晶驱动 -
HX82405SP新版.pdf
2020-12-22 11:30:56千兆 POE+ 720MA 工业级 宽温 网络变压器 通普思H6072NL H6096NL网络变压器 -
奥视安云台网络监控摄像头刷机包GK7102HX_V9.1.6.1.24-720P.云台机.声波.客户.pkg
2018-03-30 22:57:33奥视安云台网络监控摄像头刷机包GK7102HX_V9.1.6.1.24-20170925(720P.云台机.b112.7601.newp2p.声波.客户升级版本).pkg -
LINK-PP LP5006ANL对应HQST HX82407S 工业级千兆网络变压器
2021-01-04 14:17:27LINK-PP LP5006ANL对应HQST HX82407S 工业级千兆网络变压器 产品规格 ———————————————————————————————————— hqst型号:HX82407SP 对应型号:PULSE HX5004ANL TRC5006ANLLP... -
打印软件 云雀361打印共享软件 v3.0.8.8
2020-10-16 11:46:20云雀361打印共享软件是一款长久的打印机一键共享软件,可以让你快速方便的共享打印机。功能介绍:1.打印共享设置简便,规避xp,win7,win8之间共享打印机的繁琐操作2.可以远程共享 -
高通平台点亮屏幕调试
2020-03-31 14:40:17*/ static struct panel_list supp_panels[] = { + {"st7703_720p_video", ST7703_720P_VIDEO_PANEL}, {"ili9881d_720p_video", ILI9881D_720P_VIDEO_PANEL}, {"hx8394f_720p_video", HX8394F_720P_VIDEO_PANEL}, {... -
SC1023 中文数据手册
2017-11-17 10:08:27支持最大输出:1280HX720V@60fps 应用于 汽车,安防,工业相机 等。 -
MTK平台的LCM驱动移植
2020-07-25 10:58:411.将新LCM的驱动文件 xxxx_hd720_dsi_vdo 文件夹放在kernel-3.18\drivers\misc\mediatek\lcm下 驱动文件的命名格式为:型号_分辨率_MIPI接口_ 接口下SYNC模式 1)MIPI接口:一共有三种接口:DBI(也做CPU或MCU接口)、... -
Android LCM调试笔记参考
2021-01-06 13:51:23dsi_hx8394f_720p_video: qcom,mdss_dsi_hx8394f_720p_video { qcom,mdss-dsi-panel-name = "hx8394f 720p video mode dsi panel"; qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; //指定此面板将... -
MSM8909+Android5.1.1启动流程---LCM初始化
2021-06-09 07:54:46//比如2个lane,但大分辨率如720*1280,需要4lane uint8_tdsi_lanemap; uint8_tlane0_state; uint8_tlane1_state; uint8_tlane2_state; uint8_tlane3_state; }; 这里可看出只支持到4lane,支持的lane对应的state为1... -
mtk平台LCD驱动调试经验总结
2020-10-16 17:46:18以mtk6737平台hx8363a的wvga屏举例说明 目录: 1、前期准备 2、开始移植LK部分 3、移植Kernel驱动部分 4、遇到一些问题的处理方法 5、附录1-查看系统运行过程中当前函数被哪些函数调用的方法 6、附录2-开机过程lcm... -
无线路由刷机失败修复办法与方案
2011-04-06 19:37:06无线路由刷机失败修复办法与方案.................... -
已解决:HXAM 安装失败 不支持 Please ensure Hyper-V is disabled in Windows Features, or refer to the ...
2021-02-12 21:29:491. 打开服务 CMD 命令 services.msc 关闭 Hyper-v 相关服务 2 打开 策略 CMD 命令 gpedit.msc 计算机配置-模板-系统-Device Guard - 打开虚拟化安全 - 选择 已禁用 3 在任务栏搜索框 中 搜索 “启用或关闭... -
STM32压力传感器信号采集- C#上位机 波形显示
2019-11-27 20:25:59我做过很多工业用压力采集产品,用过很多高分辨率的ad芯片...最近在用海芯科技出的HX720,芯片内部集成了低噪声稳压管,这样降低成本,也省去选参考源的麻烦。给24位AD选参考源是很头疼的事,参考源选的指标过高,AD... -
Vue使用photo-sphere-viewer360°×180°全景插件模拟VR看房、房间切换
2021-03-24 10:15:30对于等角的全景图,它必须是单个字符串(我文章使用的就是720°全景图); 对于立方体贴图,它必须是数组或对象(对应六个面)。 // Equirectangular panorama : panorama: 'path/to/panorama.jpg' // Cubemap as ... -
红外解码--基于1838红外接收头
2022-06-08 22:42:24那么我们配置定时器记一个数的时间位0.01ms,0.01ms对应的是100kHz,定时器的分频系数 = 72M/100K = 720。这个时候我们定时器计数只要超过40ms/0.01ms = 4000即可,这里作者设置为5000。当然了,定时器中断就不需要... -
linux qcom LCD framwork
2018-06-26 14:39:03关键字MDSS : Multimedia Display sub system DSI: Display Serial Interfaceqcom,mdss-dsi-force-clock-lane-hs; // faulse :clock每帧回lp11 ture: clock不回 qcom,mdss-dsi-hfp-power-mode;... -
【推荐下载】Android手机的h264硬编码测试
2021-06-03 03:15:39int height = 720; int framerate = 20; int bitrate = 2500000; byte[] h264 = new byte[width*height*3/2];@Overrideprotected void onCreate(Bundle savedInstanceState) {StrictMode.setThreadPolicy(new ... -
某鱼APP x-sign x-mini-wua x-sgext 分析成果
2021-10-05 19:23:32def get_sign(Pm): #这里是加密需要的字段 arg0 = Pm['appKey'] arg1 = Pm['utdid'] + "&" arg1 = arg1 + Pm['uid']+ "&" arg1 = arg1 + Pm['reqbiz-ext']+ "&" arg1 = arg1 + Pm['appKey']+ "&... -
Android LCM(一)之LK_LCM点亮流程
2019-05-21 11:44:16一. 入口 aboot_init() bootloader中的LCM 最开始是在 bootloader/lk/app/aboot/aboot.c 文件 aboot_init 函数中调用的. 和屏相关的工作为: void aboot_init(const struct app_descriptor *app) ... -
RK平台mipi屏初始化序列配置
2020-03-21 14:19:55RK平台mipi屏初始化序列都是在dts中进行配置,有两种方式,下面分别介绍两种方式的配置方法。 方式一 RK平台较老的SDK采用下面方式配置mipi参数,如:RK3128 5.1 SDK中就是采用的下面方式。 ... -
【Android驱动】高通LCD代码理解
2020-04-23 17:09:13事出有因,哈哈 对屏配置文件内ILI9881D_720P_VIDEO_SIGNATURE的... 屏幕hx8394f LOG: signature = 0xa0087 屏幕ili9881d: signature = 0x210000 这个地方比较两次,对应软件里的#define DISPLAY_MAX_PANEL_DETECTION 2 -
A/A*算法解决八数码问题(C++实现)
2020-01-17 20:44:50//hx为该节点到达目的节点的接近程度估计值 const Node * ptr1 = & s1 ; const Node * ptr2 = & s2 ; int Node [ 3 ] [ 3 ] = { { 1 , 2 , 3 } , { 8 , 0 , 4 } , { 7 , 6 , 5 } } ; ... -
MSM8909+Android5.1.1之BSP---增加ili9806e(display LCD)的支持(转)
2017-01-04 18:36:14//panel_id= HX8389BG_QHD_VIDEO_PANEL; //panel_id= OTM9605A_QHD_CB03_VIDEO_PANEL; panel_id= ILI9806E_WVGA_VIDEO_PANEL; //kandi add at 2015.11.26 //panel_id= NT35512_FWVGA_VIDEO_PANEL; break; ...