公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,我正在尝试读取 2 个引脚的 ADC 值但我有很少的 PWM 引脚使用时钟,但问题在于,当我同时初始化 PWM 和 ADC 时,使用 cyhal_adc_read () 读取 ADC 值时,即使时钟分配也会失败。& 所以我希望 PWM 和 ADC 在同一个项目中协同工作。

您 CAN 从附件下载我的项目。

我希望 BSP 保持原样。 唯一允许的更改是您 CAN 启用 ILO,CLK_LF并在必要时CLK_BAK,默认情况下我保留然后禁用。 但如有必要, CAN 启用。 而且我还尝试了时钟块 CYHAL_CLOCK_BLOCK_H F 但是同样的问题 。因此,如果您 CAN 解决问题,请查看它。

如果 同时使用 CYHAL_CLOCK_BLOCK_BLOCK_HF  作为 PWM 和 ADC,则初始化成功,但无法读取 ADC 值。我添加了我所做的调试的屏幕截图。

0 点赞
14 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @Manoj_Kumar

 

PWM 不应干扰 ADC 的工作原理。 让我浏览一下分享的项目,然后回复你。 同时, CAN 您,请参阅 https://github.com/Infineon/cce-mtb-psoc6-amux-sar-adc CCE

另外,让我知道你在使用哪个 modustoolBox 版本?

 

谢谢!

亲切的问候

Arpit Srivastav

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager
0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

我希望您了解了该项目,因为您 CAN 看到我们有多个ADC引脚可供读取,PWM引脚可供使用。 问题在于我们无法获得引脚的 ADC 值。 如果我们注释掉 pwm 那么 ADC 就会起作用,但我们希望两者同时起作用。 因此,我请您参考该项目,并让我知道您是否 CAN 对其进行任何更改并使其正常工作,以便ADC和PWM都可以在单个项目中工作。

0 点赞
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @Manoj_Kumar

 

我遇到了 USBFreeRTOS 的构建错误,所以我创建了一个单独的项目,其中计时器和 ADC 都在一起工作。 PFA

计时器:USER_LED 每 1 秒后切换一次

 

添加:

HAL:使用 HAL 的 ADC

ADC 配置为单通道配置

在通道 0 输入引脚处提供输入电压。

通道 0 输入:708mV
频道 0 输入:729mV 频道 0 输入:729mV
频道 0 输入:728mV
频道 0 输入:723mV 频道 0 输入:715mV
频道 0 输入:710mV

 

套件 通道 0 输入引脚
CY8CPROTO-062-4343W P10 [0]

 

亲切的问候

Arpit Srivastav

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

好吧,这只是 ADC 的基本示例。 我需要的是 PWM 和 ADC 才能在同一个项目中工作。

我想一起使用 ADC 和 PWM,就我而言,如果我在单个项目中运行 ADC 和 PWM,或者如果评论掉任何人,另一个就会起作用。 但是两者不能在同一个项目中协同工作。 因此, CAN 您在单个项目中同时尝试使用PWM和ADC。

0 点赞
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

附带的项目有 PWM 和 ADC 协同工作。 同样,由于 USB 和 FreeRTOS 部分中的构建错误,无法调试项目。 在这个附带的项目中,PWM 和 ADC 显然正在协同工作。

 

ADC:输出与上述相同

PWM:LED 每隔半秒闪烁 (2 Hz)。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

感谢你的回复,我会检查一下这个项目,告诉你它是否对我有用。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

在项目中, CAN 您只是使用多通道,因为我正在阅读 2 个引脚,将来可能会更多。 此外, CAN 使用 cyhal_pwm_init() 初始化 LED 并设置占空比和回调。 也许是这样的

result_0_out = cyhal_pwm_init_adv(pwm & obj_0、P2_2、NC、CYHAL_PWM_LEFT_ALIGN、false、0、true、pwm_clock_obj);&
result_0_out = cyhal_pwm_set_duty_cycle (pwmobj_0,500,1000);&
result_0_out = cyhal_pwm_init_adv(pwm & obj_1、P11_2、NC、CYHAL_PWM_LEFT_ALIGN、false、0、true、pwm_clock_obj);&
result_0_out = cyhal_pwm_set_duty_cycle (pwmobj_1,500,1000);&
result_0_out = cyhal_gpio_init(P2_4、CYHAL_GPIO_DIR_INPUT、CYHAL_GPIO_DRIVE_PULLUP,1);
s_callback_data_0_out.callback = s_interrupt_handler_0_out;
cyhal_gpio_register_callback (P2_4, s_callback_data_0_out);&
cyhal_gpio_enable_event(P2_4,CYHAL_GPIO_IRQ_BOTH,7,true);
 
请参考我的项目中的 main.c 看看我是如何尝试 pwm 和 adc 的。 也许一些类似的初始化对我来说会更好。
 
0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @Manoj_Kumar

随附的代码中还有多通道的 ADC 代码 #if ADC_EXAMPLE_MODE == MULTI_CHANNEL 在所附项目中
进行更改如果你有任何问题请告诉我。

问候

Arpit Srivastav

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@Srivastav,那如果你初始化所有其他 GPIO 怎么办,那对你有用吗? CAN 你使用相同的BSP。并将占空比和 isr 分配给 PWM。 您CAN 尝试此操作并确认事情对您有用?

0 点赞
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @Manoj_Kumar

 

ADC 和 PWM 现在在两个引脚上工作。 请参阅随附的项目供您参考。

ADC 输出(多通道):

------------------------------------------------------------------------------------------------------

ADC 在多通道配置中配置。

通道 0 配置为单端模式,连接到
通道 0 的输入引脚。 在通道 0 输入引脚处提供输入电压
通道 1 配置为差分模式,连接到
通道 1 输入引脚和通道 1 电压参考引脚。 在通道 1 输入引脚处提供输入
电压,在通道 1 电压参考引脚处提供参考电压

通道 0 输入:0mV 频道 1 输入:0mV
频道 0 输入:665mV 通道 1 输入:310mV 频道 0 输入:712mV
频道 1 输入:338mV 频道 0 输入:327mV 频道 0 输入:684mV
通道 0 输入:671mV 通道 0 输入:309mV
通道 0 输入:659mV 通道 1 输入:659mV 通道 1 输入:304mV
通道 0 输入:654mV 频道 1 输入:304mV 通道 0 输入:655mV
频道 1 输入:307mV 频道 0 输入:659mV 频道 1 输入:314mV
频道 0 输入:671mV 通道 1 输入:323mV 频道 0 输入:323mV
频道 0


输入:681mV 频道 1 输入:333mV 频道 0 输入:697mV
频道 1 输入:344mV 频道 0 输入:712mV 频道 1 输入:356mV 频道 0 输入:372mV
频道 0 输入:381mV 通道 0 输入:728mV 通道 0 输入:723mV
通道 0 输入:723mV 通道 1 输入:723mV 通道 1 输入:723mV 通道 1 输入:723mV
通道 1 输入:381mV 通道 0 输入:723mV 通道 1 输入:723mV 通道 1 输入:723mV
通道 1 输入:723mV 通道 1 输入:381mV 通道 0 输入:713mV 通道 1 输入:365mV
通道 0 输入:699mV 频道 1 输入:352mV 频道 0 输入:683mV
频道 1 输入:338mV 频道 0 输入:665mV 通道 1 输入:328mV 通道 0 输入:328mV
通道 0 输入:


659mV 通道 1 输入:320mV 通道 0 输入:655mV
通道 1 输入:317mV 频道 0 输入:660mV
通道 1 输入:322mV

 

PWM 输出:

PWM 已成功启动。 并且两个 LED 闪烁(请查看随附的视频)

问候

Arpit Srivastav

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

谢谢你的回复 @Srivastav。 我会检查一下然后回复你。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

您好 @Srivastav,所以我运行了该项目,我能够初始化单个PWM引脚和多个ADC引脚,但是当我尝试将 USB CDC添加到项目中时出现问题。 CAN 尝试将  USB CDC添加到此代码中,并可能创建线程(FREERTOS)来运行 USB CDC任务。 并在切换 LED 的同时继续回应用户发送的任何内容和引脚的 ADC 值。!!!

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @Manoj_Kumar

 

请为这个问题创建一个新话题。 ADC 和 PWM 正在协同工作。

 

问候
Arpit Srivastav

0 点赞