硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4130|回复: 25
收起左侧

[HRTIM] STM32H7的HRTIM时钟源选择

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
发表于 2020-1-28 00:42:29 | 显示全部楼层 |阅读模式


主要支持两种,一个是TIMCLK,另一个是CPUCLK

#define RCC_HRTIM1CLK_TIMCLK                (0x00000000U)
#define RCC_HRTIM1CLK_CPUCLK                RCC_CFGR_HRTIMSEL


PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_HRTIM1;
PeriphClkInitStruct.Hrtim1ClockSelection = RCC_HRTIM1CLK_CPUCLK;//RCC_HRTIM1CLK_CPUCLK  RCC_HRTIM1CLK_TIMCLK
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{

}


其中CPUCLK是系统内核主频。而TIMCLK是TIM2时钟,内核时钟的一半。

QQ截图20200128004207.png




回复

使用道具 举报

0

主题

31

回帖

31

积分

新手上路

积分
31
发表于 2020-1-28 09:41:57 | 显示全部楼层
新年快乐
回复

使用道具 举报

3

主题

1222

回帖

1231

积分

至尊会员

积分
1231
发表于 2020-1-28 11:54:19 | 显示全部楼层
回复

使用道具 举报

3

主题

40

回帖

49

积分

初级会员

积分
49
发表于 2020-7-30 17:21:49 | 显示全部楼层
楼主又是你呀,我在实现这个功能,想弄出个100MHZ的波形,选择的时钟源是400MHZ,分频系数是HRTIM_PRESCALERRATIO_MUL2(乘2),period是8,pulse是4。这样算来,输出的波形应该是400*2/8=100M,但是却只有50MHZ,乘四后才变成100MHZ
回复

使用道具 举报

3

主题

40

回帖

49

积分

初级会员

积分
49
发表于 2020-7-30 17:24:55 | 显示全部楼层
楼主又见面了,我在实现这个功能,设置时钟源为cpuck400MHZ,分频系数是乘2,period是8,这样算来应该是输出100MHZ,但是只有50M,换成乘4后,才变为100M.
而我把时钟源换成200MHZ后,发现频率降低一倍。综合来看,感觉是时钟源被二分频了,请问这是怎么回事呢?
回复

使用道具 举报

3

主题

40

回帖

49

积分

初级会员

积分
49
发表于 2020-7-30 22:02:12 | 显示全部楼层
上面的问题我已经找到答案了,选择定时器的PWM波的话,就不会出现时钟源被二分频的现象,是因为输出比较模式下,周期会减半。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2020-7-31 09:02:37 | 显示全部楼层
HuSanKeke 发表于 2020-7-30 22:02
上面的问题我已经找到答案了,选择定时器的PWM波的话,就不会出现时钟源被二分频的现象,是因为输出比较模 ...


你应用错误导致的,H7系列仅支持分频,不支持配置时倍频。

QQ截图20200731090315.png


回复

使用道具 举报

3

主题

40

回帖

49

积分

初级会员

积分
49
发表于 2020-7-31 19:59:07 | 显示全部楼层
eric2013 发表于 2020-7-31 09:02
你应用错误导致的,H7系列仅支持分频,不支持配置时倍频。

谢谢您的回答,这个我也注意到了,但是使用倍频没有出错,我也不明白为什么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2020-7-31 20:01:27 | 显示全部楼层
HuSanKeke 发表于 2020-7-31 19:59
谢谢您的回答,这个我也注意到了,但是使用倍频没有出错,我也不明白为什么

这个属于超频,没有研究价值和参考依据。
回复

使用道具 举报

3

主题

40

回帖

49

积分

初级会员

积分
49
发表于 2020-7-31 20:24:19 | 显示全部楼层
eric2013 发表于 2020-7-31 20:01
这个属于超频,没有研究价值和参考依据。

好的,谢谢您的回答
回复

使用道具 举报

1

主题

21

回帖

24

积分

新手上路

积分
24
发表于 2020-7-31 23:26:33 | 显示全部楼层
HuSanKeke 发表于 2020-7-30 22:02
上面的问题我已经找到答案了,选择定时器的PWM波的话,就不会出现时钟源被二分频的现象,是因为输出比较模 ...

原来如此,我之前也一直搞不懂,还以为是ST的bug。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-8-16 11:58:26 | 显示全部楼层
为啥我不管配置HRTIM的时钟源选择两个中的任何一个,出来的pwm频率都是一样的,都是以RCC_HRTIM1CLK_TIMCLK为准,用的是cubemx配置的,5.6.0版本,使用的是NUCLEO-H743ZI2开发板
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2021-8-16 13:52:00 | 显示全部楼层
xyr 发表于 2021-8-16 11:58
为啥我不管配置HRTIM的时钟源选择两个中的任何一个,出来的pwm频率都是一样的,都是以RCC_HRTIM1CLK_TIMCLK ...

什么意思,你的PWM时钟频率不可调?
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-8-16 14:13:45 | 显示全部楼层
eric2013 发表于 2021-8-16 13:52
什么意思,你的PWM时钟频率不可调?

频率是可以调的,理论上同样的参数,选择两种时钟源,出来的pwm频率应该是不一样的吧,一个是另外一个的两倍,现在就单纯切换时钟源,量出来的波形频率居然是一样的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2021-8-16 16:10:58 | 显示全部楼层
xyr 发表于 2021-8-16 14:13
频率是可以调的,理论上同样的参数,选择两种时钟源,出来的pwm频率应该是不一样的吧,一个是另外一个的 ...

明白你的意思了,今晚或者明天有时间我测试下。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-8-16 17:42:39 | 显示全部楼层
eric2013 发表于 2021-8-16 16:10
明白你的意思了,今晚或者明天有时间我测试下。

好的,有结果,麻烦回复下哈
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2021-8-16 21:28:43 | 显示全部楼层
xyr 发表于 2021-8-16 17:42
好的,有结果,麻烦回复下哈

帮你测试了,使用最新版HAL库可解决,推荐用1.9.0及其以上版本。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-8-17 09:18:35 | 显示全部楼层
eric2013 发表于 2021-8-16 21:28
帮你测试了,使用最新版HAL库可解决,推荐用1.9.0及其以上版本。

使用最新的HAL库可以了,感谢感谢!
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-11-3 12:03:01 | 显示全部楼层
xyr 发表于 2021-8-17 09:18
使用最新的HAL库可以了,感谢感谢!

后面应用时,我在配置8路通道输出相同的波形,其中A通道输出的两路为啥比BCD三路输出的波形用示波器量相位要滞后,按理说应该完全重叠的。各个通道的两路我都是设置成独立模式。使用下面的函数开启。
void enable_HTRIM_all_channel(void)
{
        HAL_HRTIM_WaveformOutputStart(&hhrtim,HRTIM_OUTPUT_TA1|HRTIM_OUTPUT_TA2|
                                                                                                                                                                HRTIM_OUTPUT_TB1|HRTIM_OUTPUT_TB2|
                                                                                                                                                                HRTIM_OUTPUT_TC1|HRTIM_OUTPUT_TC2|
                                                                                                                                                          HRTIM_OUTPUT_TD1|HRTIM_OUTPUT_TD2);
       
        HAL_HRTIM_WaveformCounterStart(&hhrtim,HRTIM_TIMERID_TIMER_A|
                                                                                                                                                                 HRTIM_TIMERID_TIMER_B|
                                                                                                                                                                 HRTIM_TIMERID_TIMER_C|
                                                                                                                                                                 HRTIM_TIMERID_TIMER_D);

}
用的是stm32h750vbt6
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2021-11-3 16:24:34 | 显示全部楼层
xyr 发表于 2021-11-3 12:03
后面应用时,我在配置8路通道输出相同的波形,其中A通道输出的两路为啥比BCD三路输出的波形用示波器量相 ...

这个试试,我测试过正常。

STM32H7的HRTIM配置输出5组不同频率,不同占空比的波形,同时5组互补输出也是没问题的
http://www.armbbs.cn/forum.php?m ... 9211&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-11-3 16:55:02 | 显示全部楼层
eric2013 发表于 2021-11-3 16:24
这个试试,我测试过正常。

STM32H7的HRTIM配置输出5组不同频率,不同占空比的波形,同时5组互补输出也 ...

我看了链接里面的内容,用的是基础模式,我现在用的是HAL_Waveform methods,所有的通道都用上了,同一个time的两个通道配成独立模式,所有的参数都一样,用cubemx配置的,发现timeA的两个通道出来的波和其他的通道就是不同步,其他的都同步。实在搞不懂。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2021-11-4 08:49:44 | 显示全部楼层
xyr 发表于 2021-11-3 16:55
我看了链接里面的内容,用的是基础模式,我现在用的是HAL_Waveform methods,所有的通道都用上了,同一个t ...

这个得实际测试下了,回头我试试。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2021-11-4 10:17:04 | 显示全部楼层
eric2013 发表于 2021-11-4 08:49
这个得实际测试下了,回头我试试。

好的,困扰我一两个礼拜了。
回复

使用道具 举报

5

主题

20

回帖

35

积分

新手上路

积分
35
发表于 2023-3-8 14:21:45 | 显示全部楼层
eric2013 发表于 2021-8-16 21:28
帮你测试了,使用最新版HAL库可解决,推荐用1.9.0及其以上版本。

硬汉哥 最新的HAL库在哪里找啊,我现在也是遇到了这个情况
回复

使用道具 举报

609

主题

3045

回帖

4892

积分

至尊会员

积分
4892
发表于 2023-3-9 14:40:44 | 显示全部楼层
RRJ67 发表于 2023-3-8 14:21
硬汉哥 最新的HAL库在哪里找啊,我现在也是遇到了这个情况

st 官网
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
 楼主| 发表于 2023-3-9 15:02:17 | 显示全部楼层
RRJ67 发表于 2023-3-8 14:21
硬汉哥 最新的HAL库在哪里找啊,我现在也是遇到了这个情况

https://www.st.com/en/embedded-software/stm32cubeh7.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-27 22:06 , Processed in 0.259267 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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