硬汉嵌入式论坛

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

[Lua] 利用 m_init() m_read() 读MCP3421 和ADS1256 ADC模块

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2021-11-29 11:59:46 | 显示全部楼层 |阅读模式
V2.09固件将支持几个Lua API函数  m_init()  m_read() ,方便访问外部ADC模块。
后期将扩充更多的模块,无需再写驱动代码。
目前已支持 ADS1256,  DS18B20, MCP3421

MCP3421 模块访问范例:

    local gain = 0   --0=X1 1=X2 2=X4 3=X8
    local drate = 3  --0=240sp(12bit)  1=60sps(14bit) 2=15sps(16bit) 3=3.75sps(18bit)
    m_init("MCP3421", gain, drate)

    delayms(200)

    adc = m_read("MCP3421")  --读ADC数据
    print(adc)

MCP3421接线图:
/*   TVCC = 5.0V
   MCP4018   H7-TOOL
    5.0   --- +5V   
    GND  --- GND
    VDD  --- TVCC  
    D9    ---  SCL
    D7    ---  SDA
*/


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  --输入buffer使能
    local diffmode = 0  --差分模式
    local scantable = "01234567"  --扫描次序, 可只扫描需要的通道

    m_init("ADS1256", gain, drate, buffen, diffmode, scantable)

    delayms(200)

    adc = {m_read("ADS1256")}  
    print(adc[1],adc[2]) --读ADC数据

    m_uninit("ADS1256") --退出ADC1256扫描程序

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    空脚
*/



回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 15:00 , Processed in 0.237954 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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