硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1791|回复: 9
收起左侧

[使用教程] H7-TOOL通过LUA小程序驱动8通道24bit分辨率ADS1256操作说明(2021-12-01)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2021-12-1 12:26:10 | 显示全部楼层 |阅读模式
这个功能还是非常有意义的,大大方便了多路高精度数据采集监测。特别是搭建三代示波器模拟前端的洞洞板模拟电路,可以方便的采集多个节点位置。从实战应用中来提出问题,再到实战应用中去解决问题,这大概就是工具的真正价值所在。

需要深入了解ADS1256可以看教程第93章节:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

1、ADS1256接线说明:
ADS1256模块    H7-TOOL  (TVCC输出3.3V)
+5V   <------  5.0V       5V供电
GND   -------  GND        地
      
CS    <------  D0         SPI_CS    PI0      
DRDY  ------>  D1       准备就绪 (用到外部中断) PH10    --所有的IO电平固定是3.3V
DIN   <------  D2         SPI_MOSI  PE6
DOUT  ------>  D3       SPI_MISO  PE5
SCLK  <------  D5        SPI时钟   PE2
      
GND   -------  GND        地      
PDWN  (模块有上拉,可不接线)
RST   (模块有上拉,可不接线)
NC    空脚
NC    空脚






2、ADS1256测试代码

使用比较简单,注释很详细,使用也比较简单。

local gain = 0    -- 增益 (0=X1,  1=X2,  2=X4,  3=X8, 4=X16, 5=X32, 6=X64)
local drate = 7    --数据率 (0=30000,1=15000,2=7500,3=3750,4=2000,5=1000,6=500,7=100, 8=60, 9=50, 10=30, 11=25, 12=15, 13=10, 14=5,  15=2.5sps)
local buffen = 1  -- 1表示使能输入buffer使能,0表示禁止
local diffmode = 0  -- 0表示单端模式,1表示差分模式
local scantable = "01234567"  --扫描次序, 可只扫描需要的通道

m_init("ADS1256", gain, drate, buffen, diffmode, scantable)  -- 挂载ADS1256

delayms(500)

for j=1, 8, 1 do                           --  循环执行了8次              
    adc = {m_read("ADS1256")}    --  读取数据            
    adc[1] = adc[1]*2.5/4194303   --  8通道的数据全部读取,直接计算实际电压值。
    adc[2] = adc[2]*2.5/4194303
    adc[3] = adc[3]*2.5/4194303
    adc[4] = adc[4]*2.5/4194303
    adc[5] = adc[5]*2.5/4194303
    adc[6] = adc[6]*2.5/4194303
    adc[7] = adc[7]*2.5/4194303
    adc[8] = adc[8]*2.5/4194303
    s = string.format("%f", adc[1]) --打印1个通达,多个通道同理,类似C的printf
    print(s)                                   --  打印数值
    print_wave(s)                          --  打印波形效果
    delayms(100)                          --   100ms刷新1次
end

m_uninit("ADS1256")  -- 卸载ADS1256


将代码贴到Lua小程序窗口里面执行即可:



视频执行效果:




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-12-1 20:56:53 | 显示全部楼层
更新完毕。
回复

使用道具 举报

4

主题

139

回帖

151

积分

初级会员

积分
151
发表于 2022-1-25 17:10:05 | 显示全部楼层
ADS1256这款芯片可以根据自己要求随意设置采样率吗,还是只能按照手册上采样率档位配置。如果用START信号控制,每次有个很长的稳定时间才开始采样,无法满足要求。硬汉有别的思路,想设置1.6K采样率
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2022-1-25 17:54:20 | 显示全部楼层
浴火重生 发表于 2022-1-25 17:10
ADS1256这款芯片可以根据自己要求随意设置采样率吗,还是只能按照手册上采样率档位配置。如果用START信号控 ...

采样率是固定的几种设置参数。
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2023-3-15 16:17:20 | 显示全部楼层
这个模组是不是换稳压基准了,好像换了个更好的基准,下午测试了效果比之前的好。
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-3-15 16:31:04 | 显示全部楼层
missfox 发表于 2023-3-15 16:17
这个模组是不是换稳压基准了,好像换了个更好的基准,下午测试了效果比之前的好。

采用的这个了

新的ADS1256模组电压基准开始采用REF5025,温漂 3ppm/°C,噪声3uVpp/V
https://www.armbbs.cn/forum.php? ... 8652&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

5

主题

61

回帖

76

积分

初级会员

积分
76
发表于 2023-3-25 22:28:13 | 显示全部楼层
可以将采集到的数据通过TCP发送到电脑上吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-3-26 00:07:16 | 显示全部楼层
Blake 发表于 2023-3-25 22:28
可以将采集到的数据通过TCP发送到电脑上吗?

没问题,支持以太网和wif通信方式。
回复

使用道具 举报

5

主题

61

回帖

76

积分

初级会员

积分
76
发表于 2023-3-26 11:26:26 | 显示全部楼层
eric2013 发表于 2023-3-26 00:07
没问题,支持以太网和wif通信方式。

这个要怎么做才能把lua采集到的数据发送到PC上呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-3-26 12:48:13 | 显示全部楼层
Blake 发表于 2023-3-26 11:26
这个要怎么做才能把lua采集到的数据发送到PC上呢?

TOOL支持USB,以太网和WiFi三种方式和上位机通信。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 12:12 , Processed in 0.177122 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表