查看: 1449|回复: 7

[求助] FRDM-KL26Z板,16位差分ADC采样历程问题

[复制链接]

该用户从未签到

8

主题

27

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2022-5-12
发表于 2021-11-15 09:39:02 | 显示全部楼层 |阅读模式
本帖最后由 yf910404 于 2021-11-15 10:08 编辑

请教下各位MKL16Z128芯片有16位差分采样ADC的历程吗,SDK里面没有发现有,只有16位软件触发的单次采样例子。
如果没有历程请加下各位使用MCUXpresso Config Tools v10需要如何配置?有配置说明吗?
我知道答案 目前已有7人回答
回复

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20020
最后登录
2024-4-25
发表于 2021-11-16 14:29:05 | 显示全部楼层
楼主你好
SDK里确实没有差分ADC例程,要不你参考下图设置一下。
另外搜索DIFF相关的全部改一下。
Differential.png
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

27

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2022-5-12
 楼主| 发表于 2021-11-16 15:09:06 | 显示全部楼层
小恩GG 发表于 2021-11-16 14:29
楼主你好
SDK里确实没有差分ADC例程,要不你参考下图设置一下。
另外搜索DIFF相关的全部改一下。

谢谢版主,已经自己研究到这里了。
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

27

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2022-5-12
 楼主| 发表于 2021-11-16 15:23:12 | 显示全部楼层
本帖最后由 yf910404 于 2021-11-16 16:19 编辑

版主,怎么生成工程?
回复 支持 反对

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20020
最后登录
2024-4-25
发表于 2021-11-16 17:23:27 | 显示全部楼层
yf910404 发表于 2021-11-16 15:23
版主,怎么生成工程?

比如你选择的是IAR,那么配置完成后可以去右下角提示的路径找到IAR工程。 IAR MCUXpresso Config Tools v10.png

回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

27

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2022-5-12
 楼主| 发表于 2021-11-17 08:55:30 | 显示全部楼层
小恩GG 发表于 2021-11-16 14:29
楼主你好
SDK里确实没有差分ADC例程,要不你参考下图设置一下。
另外搜索DIFF相关的全部改一下。

可以直接用这个配置生成工程吗?我现在把这个配置的代码移植到之前SDK的工程里,采不出来AD值
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

27

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2022-5-12
 楼主| 发表于 2021-11-17 09:12:18 | 显示全部楼层
本帖最后由 yf910404 于 2021-11-18 10:52 编辑
小恩GG 发表于 2021-11-16 17:23
比如你选择的是IAR,那么配置完成后可以去右下角提示的路径找到IAR工程。

...

配置不能创建工程
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

27

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2022-5-12
 楼主| 发表于 2021-11-18 10:52:13 | 显示全部楼层
本帖最后由 yf910404 于 2021-11-19 18:09 编辑
小恩GG 发表于 2021-11-16 17:23
比如你选择的是IAR,那么配置完成后可以去右下角提示的路径找到IAR工程。

...

差分信号我是直接接的3.3V的开关电源,接到到9脚DP0,10脚DM0上,11脚DP0,12脚DM0上,仿真时RA寄存器数据正常,但是函数 ADC16Value = ADC16_GetChannelConversionValue(DEMO_ADC16_BASE, DEMO_ADC16_CHANNEL_GROUP);读不到数据。
ADC16Value 值一直为0.
另外RB寄存器无数据,这里面数据是什么数据?

11脚DP0,12脚DM0对应的应该时RB的值,请问11脚DP0,12脚DM0上 是属于ADC0 3通道吗?
我无法通过ADC16_GetChannelConversionValue函数获取AD转换的值,您给看下我的代码,附件有工程。
停止仿真时,程序运行在如下代码处。
LDR    R0, =DefaultISR

adc16_channel_config_t ADC0_channelsConfig[2] = {
  {
    .channelNumber = 0U,
    .enableDifferentialConversion = true,
    .enableInterruptOnConversionCompleted = true,
  },
  {
    .channelNumber = 3U,
    .enableDifferentialConversion = true,
    .enableInterruptOnConversionCompleted = true,
  }
};
const adc16_config_t ADC0_config = {
  .referenceVoltageSource = kADC16_ReferenceVoltageSourceVref,
  .clockSource = kADC16_ClockSourceAsynchronousClock,
  .enableAsynchronousClock = true,
  .clockDivider = kADC16_ClockDivider8,
  .resolution = kADC16_ResolutionDF16Bit,
  .longSampleMode = kADC16_LongSampleDisabled,
  .enableHighSpeed = false,
  .enableLowPower = false,
  .enableContinuousConversion = true
};
const adc16_channel_mux_mode_t ADC0_muxMode = kADC16_ChannelMuxA;
const adc16_hardware_average_mode_t ADC0_hardwareAverageMode = kADC16_HardwareAverageDisabled;

static void ADC0_init(void) {
  /* Initialize ADC16 converter */
  ADC16_Init(ADC0_PERIPHERAL, &ADC0_config);
  /* Make sure, that software trigger is used */
  ADC16_EnableHardwareTrigger(ADC0_PERIPHERAL, false);
  /* Configure hardware average mode */
  ADC16_SetHardwareAverage(ADC0_PERIPHERAL, ADC0_hardwareAverageMode);
  /* Configure channel multiplexing mode */
  ADC16_SetChannelMuxMode(ADC0_PERIPHERAL, ADC0_muxMode);
  /* Initialize channel */
  ADC16_SetChannelConfig(ADC0_PERIPHERAL, ADC0_CH0_CONTROL_GROUP, &ADC0_channelsConfig[0]);
  /* Initialize channel */
  ADC16_SetChannelConfig(ADC0_PERIPHERAL, ADC0_CH1_CONTROL_GROUP, &ADC0_channelsConfig[1]);
  /* Enable interrupt ADC0_IRQn request in the NVIC. */
  EnableIRQ(ADC0_IRQN);
}

/***********************************************************************************************************************
* Initialization functions
**********************************************************************************************************************/
void BOARD_InitPeripherals(void)
{
  /* Initialize components */
  ADC0_init();
}

/***********************************************************************************************************************
* BOARD_InitBootPeripherals function
**********************************************************************************************************************/
void BOARD_InitBootPeripherals(void)
{
  BOARD_InitPeripherals();
}



微信截图_20211118101007.png
微信截图_20211118103440.png
微信截图_20211119180416.png

difference_adc16_polling.rar

297.69 KB, 下载次数: 3, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-26 07:40 , Processed in 0.145417 second(s), 29 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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