0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【东微半导体DT5M4765R8L6开发板试用体验】搭建环境以及体验高精度ADC

jf_05431529 来源:jf_05431529 作者:jf_05431529 2023-08-08 16:32 次阅读

我们是做传感器相关产品的, 芯片缺货以来,我们试用了很多国产MCU,也基本全部切换到国产MCU的技术平台上来. 但是目前MCU行业同质化非常严重, 为了受众多,基本上都集成了各种通讯口,支持LED,LCD,等等,没有个性. 直到接触到东微的MCU,从产品的主要功能上就能看到24BIT ADC这个超亮眼的参数, 细看规格书后,发现它还集成有1-2级运放. 这不就是为我们传感器行业定制的吗.

拿到DT5M4756R8L6的开发板后,我们开始了尝试.但是整个尝试过程曲折而有趣.

拿到手上直接复制了一个GPIO的点灯程序,编译通过,但下载不了,经过了多次群内沟通,终于能下载程序并点灯. 在KEIL内部,要注意调试工具选JLINK,以及编程用的地址空间.相关的图片,我看前面分享的同学已经贴了,我就不贴图了.

我们公司主要的用途是将模拟信号转为数字量,然后通过数字接口提供给用户,所以我们重点关注了一下它的ADC工作流程.

image.png

东微的ADC空有24位,但其实它也并没有拿它当主要卖点, 这颗芯片更像是为仪器仪表行业或者医疗器械行业做的量身定作,它花了不少的资源在UI这一块,支持LED,LCD段码屏等. 真正留给ADC用的资源并不多. 对于信号源不多的应用还是能用的.

image.png

我们这次测试的本来是PH传感器,但因为PH传感器的接口是BNC的,我们没有找到合适的转接头来连到开发板上, 临时用一个TDS探头代替了PH探头.

因为只是测试,所以并没有从头开始写软件, 在官方的DEMO上修改.

这个MCU的资料和STC看齐,所有信息都弄在一个文件里面, 参考代码也是直接地址操作, 着实费了点时间看源码.

首先是系统时钟,它外部的时钟源只有一个32K晶振,其它的应该是内部时钟源, 没有去动它的时钟主频, 默认时钟是64M,默认的分频是4分频, 所以系统时钟是64/4=16M.

那么ADC的时钟频率,用了这两句代码

#define CLK_ADC (uint32_t)0x00000080

CLK_Enable(CLK_ADC);//enable ADC CLK =4MHz

image.png

//0x04000014ul是个ADC操作非常重要的寄存器

*(vu32 *)(0x04000014ul) = 0x00000000+(offset<<7)+(osr<<4)+(4<<12); //CLK_SELECT=0, adc tst bias_amp1=adc_tst[18:17] bias_amp0=adc_tst[16:15] bias_adc2=adc_tst[24:23] bias_adc1=adc_tst[22:21] bias_adc0=adc_tst[20:19]

与ADC控制的控制设置基本全在这个寄存器内

关于ADC还有一个初始化寄存器, 0x04000010ul, 同样的也没有名字,我暂且叫它ADC信号源配置寄存器.

原文档无法复制,花了点时间手码到代码里面了. 发出来,如果你们需要可以直接复制过去.

bit31-30: Reserved
bit29: ADC ENABLE 1:enable, 0:disable
bit28:	RESET IP复位 0:复位 1:工作
bit27-26:Reserved
bit25: gain 1x  1:1x 第1级前置放大器跟随器
bit24-22: adc_chop_sel		ADC斩波模式
bit21-20: adc_chop_freq		ADC斩波频率
bit19:Reserved
bit18-16: amp_gain2 前置放大器第2级选择
bit15-14:	amp_gain1	前置放大器第1级选择
bit13-11:	amp_chop_sel前置放大器斩波波形选择
bit10-9:	amp_chop_freq
bit8:			amp_chop_en  前置放大器斩波使能
bit7-0:		输入通道选择

//切换ADC通道
参数  ch_p:正端输入位选择
ch_n:负端输入位选择,是选择ADC信号源的意思
gain:放大系数

这上源码里ADC初始化里面的3个参数, 同样的,没有注释, 靠见名知义,猜.

好了,那源码起了个头,要连硬件. 我们是有传感器的转接板,全部引出2.54的排针出来,用杜邦线连到开发板上


条件简陋,先接了TDS中的NTC部分, 原来我们是用的单端接法,这次先尝试了一下差分接法, 用到了P19以及P25两个器件,在板子上压力传感器的旁边. 压力传感器找不到我就没有办法了,压力传感器有个气咀样的东西.

继续魔改源码

void switch_channel(vu8 ch_p,vu8 ch_n,vu8 gain)
{
	vu8 gain1,gain2;
	if (gain==1)
	{
		gain1=0;
		gain2=0;
		//ch_n< <4 是负端输入选择, ch_p是正端输入选择, negative ,postive的意思, 
		//0x32是 00110010, 0 0 enable work,0000, 0010表示 00  1级放大 	
		*(vu32 *)(0x04000010ul) = 0x32000000 + (ch_n< <4) + (ch_p) + (gain2< <16) + (gain1< <14);
	}
	//0x30是 00110000 0 0 enable, work,0000 表示无放大
	else if (gain==10)
	{
		gain1=0;
		gain2=0;
		*(vu32 *)(0x04000010ul) = 0x30000000 + (ch_n< <4) + (ch_p) + (gain2< <16) + (gain1< <14);
	}
}

目前还没改源码里的信号源, 可以看到源码里面,用一个gain配置了两种情况,一种有一级放大,一种无放大. 信号源分正端和负端, 我们用了ANN8以及ANP8这两路,所以都配置为1000, 对照表我就不贴了,在规格书底部区域.

先改源码再测试

adc_max= -8388607;
adc_min= 8388607;

源码里 这两数对应的整数部分是,011111111111111111111111,所以其实有效的分辨精度是23位,并且实际ENOB只有19位,采样频率是1KHZ,并不算快.

NTC的分压法测试是非常简单的,它的分压电阻是100K,我们用的的 10K 3950的NTC, 这个分压还是不太合理的,勉强测了一下, 精度不怎么好,不过稳定性非常不错.

TDS部分也是分压法测试,但是供电就不能用恒流供电了,需要用到变化的电源以及精选的分压电阻.这个在开发板上不太好接线,全部引到我们的转接板上面. 这个渗及到公司的一些细节,不太好直接贴出来. 测试的结论是ADC非常稳定, 但是操控过程有些繁琐,建议封装成不同的库函数, 以提高用户的开发效率.

总结一下就是这颗DT5M4765非常适合有ADC要求,并且有传统UI要求的应用. 有一个非常非常非常人性化的功能,就是它本身可以对外输入3.3,甚至1.8V. 要知道现在的传感器,绝大多数都开始了3.3V供电,甚至1.8V供电, 如果MCU本身对外可以供这几个电压,那么省了很多LDO的工作

需要提高的是开发环境以及开发工具上的适配性. 并且文档完全没有按功能模块分类整理,没有目录,这些都对开发者是个极大的挑战, 上下翻文档非常费时间. 源码里面需要给寄存器命名,要有适当的注释,否则有如锦衣夜行, 让好的国货不能传递到非常需要它的行业当中去.

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620871
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16019

    浏览量

    343657
  • adc
    adc
    +关注

    关注

    95

    文章

    5652

    浏览量

    539489
  • 开发板
    +关注

    关注

    25

    文章

    4434

    浏览量

    94032
收藏 人收藏

    评论

    相关推荐

    【免费试用】多款开发板免费申请,有奖试用

    200MHz主频。极其适合高实时多并发应用场景。2.【MCU新品】半导体DT5M4765R8L6 开发板免费
    发表于 07-05 11:08

    半导体 DT5M4765R8L6 开发板试用体验】+uart demo 调试

    硬件准备:jlink调试器,usb转ttl串口调试,开发板DT5M4765R8L6软件程序程序包含:头文件:DT5M4765.h uart_misc.h主程序文件:main.c其中主程序
    发表于 08-19 09:36

    半导体DT5M4765R8L6 开发板试用体验】4765开发板测评报告

    收到开发板后提交了开箱视频,通读了原理图和开发说明,比较感兴趣的是压力传感器是别的开发板上没有的,这是一块64脚芯片的开发板,arm m0
    发表于 08-26 21:01

    半导体DT5M4765R8L6 开发板试用体验】4765开发板测评报告(2002/8/26)

    4765,64脚芯片,ARM m0 核心,keil v5编程,jlink swd 烧录。已有温湿度传感器模块,Usb转ttl模块,Dap
    发表于 08-26 21:27

    半导体DT5M4765R8L6 开发板试用体验】4765开发板串口打印

    硬件:4765开发板软件程序example_uart运行截图
    发表于 08-28 14:29

    半导体DT5M4765R8L6 开发板试用体验】【半导体DT5M4765R8L6 开发板试用体验】

    收到了板子,对ADC采样和定时器进行了测试(直接在通用例程里测试了一下,接了几根线到我们板子上),定时1S,采集32个数据求平均值,总体来说采样的稳定性和准确度和很高,采集出来的数据曲线很平滑,没有
    发表于 09-03 14:59

    半导体DT5M4765R8L6 开发板试用体验】+ “挑食”的DT5M4765R8L6单片机

    下来,准备玩玩 DT5M4765R8L6 开发板,结果就如群友所说:不能下载!DAP link不能下载,ST link不能下载。。。。过程,苦不堪言。DAP link、ST link我都有,接上去后,也
    发表于 09-09 22:20

    半导体DT5M4765R8L6 开发板试用体验】+串口驱动需调整

    转换工具,问题依旧。也只好向群里面的群友求助了。。。 后面,群友给出了解决方案,并且,还给出了DT5M4765R8L6常见问题的解决方法。串口乱码的解决方法如下: 依葫芦画瓢,按照方法所示,尝试
    发表于 09-14 22:44

    半导体DT5M4765R8L6 开发板试用体验】从零开始搭建开发环境

    半导体DT5M4765R8L6 开发板试用体验】一,产品介绍
    发表于 09-15 10:37

    半导体DT5M4765R8L6 开发板试用体验】搭建环境以及体验高精度ADC

    DT5M4756R8L6开发板后,我们开始了尝试.但是整个尝试过程曲折而有趣.拿到手上直接复制了一个GPIO的点灯程序,编译通过,但下载不了,经过了多次群内沟通,终于能下载程序并点灯. 在KEIL内部
    发表于 09-18 16:20

    DT5M4765R8L6血压计原理图

    24位高精度ADC+LCD驱动,带医疗血压计算法,DT5M4765R8L6血压计原理图免费下载。
    发表于 09-26 10:34 17次下载

    低功耗32位MCU DT5M4765数据手册

    福建东微半导体MCU的DT5M4765R8L6带有24位高精度ADC和LCD驱动,采样率达到1KHZ
    发表于 09-26 10:31 7次下载

    基于DT5M4765系列(MCU带24位高精度ADC+LCD驱动)开发的便携式血氧仪

    基于DT5M4765系列(MCU带24位高精度ADC+LCD驱动)开发的便携式血氧仪
    发表于 01-31 09:33 915次阅读
    基于<b class='flag-5'>DT5M4765</b>系列(MCU带24位<b class='flag-5'>高精度</b><b class='flag-5'>ADC</b>+LCD驱动)<b class='flag-5'>开发</b>的便携式血氧仪

    DT5M4765R8L6主控带24位ADC的demo图

    福建东微DT5M4765R8L6主控带24位ADC的demo图,叉分
    发表于 02-06 15:27 2次下载

    【东微半导体DT5M4765R8L6 开发板试用体验】从零开始搭建开发环境

    体验】【东微半导体DT5M4765R8L6 开发板试用体验】 一,产品介绍 东微半导体DT5M4765R
    的头像 发表于 07-31 16:47 340次阅读
    【东微<b class='flag-5'>半导体</b><b class='flag-5'>DT5M4765R8L6</b> <b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验】从零开始<b class='flag-5'>搭建</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>