首页 > 技术知识 > 正文

CY8CKIT-147 评估板ADC采集问题分享

1.前言 2.问题 3.尝试解决 4.结论 1.前言

有一个简单的项目需要使用 CY8CKIT-147 评估板进行以下操作。

1.通过ADC读取模拟电压 2. UART 输出到另一个 MCU 3. 在第二个评估板中接收上述 2 的输出。 4. DAC 到模拟电压

板子硬件图:

CY8CKIT-147 评估板ADC采集问题分享1

通过观察以下每个功能都设置能实现,除了 ADC 部分

1. 我可以通过 Tera Term 在 PC 上看到预期的 UART 输出。 2. 我可以从 Tera Term 向评估板发送一个角色,并查看预期的操作。 3. 我可以在编程时看到来自 DAC 输出的模拟电压。 2.问题

不确定那块的原因,ADC 不读取电压。 我已经在 PSoC Creator 4.2 的早期版本 2.x 中成功使用了 PSoC ADC。

现在我在 PSoC Creator 4.4 中使用 ADC 3.10 版。 PSoC 符号和 API 并不相同,但我正在尝试做相同或相似的事情, 但 SAR ADC 没有返回正确的值。

我尝试了“连续”和“单次采集”示例模式, 但没有看到任何改进。 最新版本有什么需要注意的地方吗?

3.尝试解决

引脚上的实际电压在 0 ~ 5V 范围内变化, 但读数保持在 3.74V 左右。

检查了函数 init_hardware() 

void init_hardware(void){ CyGlobalIntEnable; /* Enable global interrupts. */ UART_Start() ; ADC_Start() ;}

在 Creator 4.4 中构建的项目并在我的评估套件 CY8CKIT-147 上运行。

在 PC 上的 Tera Term 中观察到模拟输入端的电压变化。

CY8CKIT-147 评估板ADC采集问题分享2

发现电压还是没有变化。

开始怀疑,以为创建项目的方式可能会有所不同。 由于下载了 CY8CKIT147Setup_RevSS.exe, 所以在下面的对话框中选择了“Target kit”。

CY8CKIT-147 评估板ADC采集问题分享3

尝试了“Target kit”和“Target device”从头开始创建新项目, 发现当选择“Target device”时ADC工作正常, 但当我选择“Target kit”时却不起作用。 这样肯定还是软件哪里没有配置好。 

在“目标套件”配置中所拥有的是我将 OPAMP 作为“跟随者”。 

CY8CKIT-147 评估板ADC采集问题分享4

这实际上是无法使 ADC 工作并发布我的问题时的配置。 认为这在逻辑上与没有跟随者的情况相同,我看到许多示例都将 OPAMP 作为这样的跟随者。

但在这种配置下,ADC 无法正确读取值。 是否有任何原因使此配置不起作用? 我在 Opeamp 设置中尝试了几种设置, 但无法使 ADC 工作。

CY8CKIT-147 评估板ADC采集问题分享5

如果将 P3[4] 用于模拟输入, 则它具有到 ADC 的直接路径, 但要让运算放大器在输入和 ADC 之间工作, 使用此引脚可能不是一个好主意。

 尝试为 OpAmp(跟随器)使用绿色标记的引脚如何, 例如 P1[0], P1[1], P1[4], P1[5], P2[0], P2[1], P2[4], P2[5] ?

CY8CKIT-147 评估板ADC采集问题分享6

之后发现该引脚有OpAmp功能 重新检查了函数 init_hardware() 

void init_hardware(void){ CyGlobalIntEnable; /* Enable global interrupts. */ UART_Start() ; ADC_Start() ;}

可能在这里增加了“Opamp_1_Start()”。 然后把初始化将函数修改为

void init_hardware(void){ CyGlobalIntEnable; /* Enable global interrupts. */ UART_Start() ; Opamp_1_Start() ; ADC_Start() ;} 4.结论

当我添加“Opamp_1_Start()”之后, 我的板子开始获得正确的电压,所以在以后选择IO口时, 功能复用最好避开一些比较特殊的IO口, 免得对自己照成麻烦。

猜你喜欢