恩智浦[FRDM-MCXN947]初探 之 ADC与DAC

目录

1. FRDM-MCXN947开发板

2.1 Keil MDK V5.38

 2.2 安装ENV 

2.3 安装串口调式助手

3. 获取rt-thread-master源码

4. 编译环境

4.1 修改EXEC_PATH

4.2 配置硬件驱动

4.3 重新生成工程

4.4 修改MDK配置

5. 编写代码

6. 硬件连接

7. 功能验证

7.1 DAC功能

7.2 ADC功能

7.3 数据验证

A. 数据转换

B. 综合验证


1. FRDM-MCXN947开发板

NXP FRDM-MCXN947板是NXP官方基于MCXN947器件的低成本设计和评估板。MCXN947器件将Arm Cortex-M33单片机和神经处理单元(NPU)集成到单个封装中。NXP支持MCXN947设备的工具和软件,包括硬件评估板,软件开发IDE,示例应用程序和驱动程序。

请参见FRDM-MCXN947快速指南

2. 开发环境搭建

2.1 Keil MDK V5.38

        安装 MDK-ARM 5.38(或以上版本均可)。安装方法:参考 Keil MDK安装icon-default.png?t=O83Ahttps://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/keil/keil        安装NXP.MCXN947_DFP.19.0.0.pack下载链接icon-default.png?t=O83Ahttps://mcuxpresso.nxp.com/cmsis_pack/repo/NXP.MCXN947_DFP.19.0.0.pack

 2.2 安装ENV 

目前已升级到env-windows-v2.0.0,安装步骤中包含了git的安装,安装步骤请参见Env 用户手册

访问链接icon-default.png?t=O83Ahttps://www.rt-thread.org/download.html#download-rt-thread-env-tool

特别说明:安装目录不能有空格!

2.3 安装串口调式助手

个人推荐使用Serial Studio。

下载链接icon-default.png?t=O83Ahttp://​GitHub - Serial-Studio/Serial-Studio: Flexible data visualization software for embedded devices and projects​

3. 获取rt-thread-master源码

下拉代码git clone https://github.com/RT-Thread/rt-thread.git ,rt-thread 文件配置代码位置如下图分部,克隆的rt-thread文件在env环境大文件夹下图:

        特别说明:国内访问github网络连接不太稳定可能导致连接失败,可待网页端连接成功后重新上述步骤!

4. 编译环境

4.1 修改EXEC_PATH

   如:D:\Program\env-windows\rt-thread\bsp\nxp\mcx\mcxn\frdm-mcxn947目录中找到“rtconfig.py”,以记事本格式打开,根据使用的编译器类型,首先确认 EXEC_PATH 这个变量定义的路径对不对,不对的先按照自己计算机上的路径进行修改。

4.2 配置硬件驱动

以管理员身份运行env.exe,切换到frdm-mcxn947工程目录cd rt-thread\bsp\nxp\mcx\mcxn\frdm-mcxn947.

env环境中输入menuconfig后按回车,弹出当前工程的配置界面:

“HardWare Drivers Config”-> “On-Chip Peripheral Drivers”:

  • 选择“Enable ADC Channel” -> 选中Enable ADC0 Channel0 ;
  • 选择“Enable DAC Channel” -> 选中Enable DAC2 Channel .

保存后退出。

4.3 重新生成工程

输入“scons —target=mdk5”后按回车重新生成工程。

4.4 修改MDK配置

双击打开D:\Program\env-windows\rt-thread\bsp\nxp\mcx\mcxn\frdm-mcxn947目录下的“project.uvprojx”,打开kei MDK,启动工程编译环境,修改配置如下:

此步配置可减少编译警告。

5. 编写代码

在application中添加测试文件adc_test.c,并编写如下代码:

#include <rtdevice.h>


#define ADC_DEV_NAME 		"adc0"
#define REFER_VOLTAGE		3300			//max adc voltage is 3.3V
#define CONVERT_BITS		(1<<16)		//16bit adc0

void adc_test(int argv,char  **argc)
{
	rt_adc_device_t adc_dev;
	rt_uint32_t     value,vol;
	rt_uint8_t i;
	rt_err_t	ret = RT_EOK;
	
	adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
	if(adc_dev == RT_NULL)
	{
		rt_kprintf("adc_test failed! can't find %s device!\n",ADC_DEV_NAME);
		return;
	}
	
	ret = rt_adc_enable(adc_dev,0);
	rt_kprintf("rt_adc_enable(adc_dev,0) is : %s\n",ret);
//	while(1)
//	{
//		value = rt_adc_read(adc_dev,0);
//		vol = value * REFER_VOLTAGE / CONVERT_BITS;
//		rt_kprintf("the voltage is : [%d.%03d]V\n",vol/1000,vol%1000);
//		rt_thread_delay(1500);
//	}
	value = rt_adc_read(adc_dev,0);
	rt_kprintf("rt_adc_read(adc_dev,0) is : %x\n",value);
	rt_kprintf("REFER_VOLTAGE is : %x\n",REFER_VOLTAGE);
	rt_kprintf("CONVERT_BITS is : %x\n",CONVERT_BITS);
	for(i=0;i<3;i++)
	{
		value = rt_adc_read(adc_dev,0);
		vol = value * REFER_VOLTAGE / CONVERT_BITS;
		rt_kprintf("the voltage is : [%d.%03d]V\n",vol/1000,vol%1000);
		rt_thread_delay(1000);
	}
	return;	
}

MSH_CMD_EXPORT(adc_test,adc_test);

在Keil MDK环境中重新编译工程文件,会出现一堆警报,只要不出现错误可暂时忽略。

6. 硬件连接

使用自带USB线将电脑与开发板J17连接;

使用杜邦线将FRDM-MCXN-947开发板上J4-2与J3-2短接。

7. 功能验证

        在Keil MDK环境中下载上述编译好的程序到FRDM-MCXN-947开发板;

        运行串口调式助手Serial Studio,配置好端口和波特率,点击连接;

        触发FRDM-MCXN-947开发板上SW1(RESET)开关,观察串口调式助手信息:

7.1 DAC功能

        在Serial Studio上使用DAC,,分先后输入如下指令:

  • dac probe dac2
  • dac enable dac2
  • dac write 0 10000

7.2 ADC功能

        在Serial Studio上使用ADC,分先后输入如下指令:

  • adc probe adc0
  • adc enable adc0
  • adc read 0

7.3 数据验证

A. 数据转换

输入指令:adc_test

B. 综合验证

输入指令:dac write 0 15000

输入指令:adc_test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值