huo_hu
发表于 2015-5-12 17:07
单片机爱好者123 发表于 2015-5-12 11:28
可以分享下平衡车的代码吗?
我们只是不会控制步进电机,求大神带我们后辈一把
这块儿没搞成,也不想再搞了,都已经产品化了再做没什么意义了.
大秦正声
发表于 2015-5-18 10:13
谢谢楼主啊!
suiyuan222
发表于 2015-5-18 18:20
很好
506977544
发表于 2015-5-26 10:18
楼主,你好,如果我用TIM1的TIM1_CH1和TIM1_CH1N来产生互补对称的PWM波,请问可以产生占空比为0的波吗?也就是关全桥驱动,谢谢!
huo_hu
发表于 2015-5-26 15:48
506977544 发表于 2015-5-26 10:18
楼主,你好,如果我用TIM1的TIM1_CH1和TIM1_CH1N来产生互补对称的PWM波,请问可以产生占空比为0的波吗?也就是关全桥驱动,谢谢!
互补输出非正即负本身就没有全关的吧
506977544
发表于 2015-5-26 16:59
huo_hu 发表于 2015-5-26 15:48
互补输出非正即负本身就没有全关的吧
那我如果应用stm32的TIM1产生两对互补对称波形(TIM1_CH1、TIM1_CH1N和TIM1_CH2、TIM1_CH2N)控制逆变全桥实现SPWM控制可以吗?还有就是可以不接TIM1_BKIN吗?(看列程或者网上好多都用到了break功能,我理解的是外部硬件需要关驱动了需要,但是控制产生SPWM不需要TIM1_BKIN,不知我这样理解对不对?)麻烦请楼主帮忙指导,谢谢
huo_hu
发表于 2015-5-26 18:01
506977544 发表于 2015-5-26 16:59
那我如果应用stm32的TIM1产生两对互补对称波形(TIM1_CH1、TIM1_CH1N和TIM1_CH2、TIM1_CH2N)控制逆变全桥实现SPWM控制可以吗?还有就是可以不接TIM1_BKIN吗?(看列程或者网上好多都用到了break功能,我理解的是外部硬件需要关驱动了需要,但是控制产生SPWM不需要TIM1_BKIN,不知我这样理解对不对?)麻烦请楼主帮忙指导,谢谢
这个信号需要你的电路硬件上有配合起到保护的作用.
506977544
发表于 2015-5-27 22:35
huo_hu 发表于 2015-5-26 18:01
这个信号需要你的电路硬件上有配合起到保护的作用.
那我可以把TIM1_CH1高频输出PWM,TIM1_CH1N一直关闭吗?
huo_hu
发表于 2015-5-27 23:40
506977544 发表于 2015-5-27 22:35
那我可以把TIM1_CH1高频输出PWM,TIM1_CH1N一直关闭吗?
可以的,稍微复杂点的是过几个固定周期后再从CH1N输出也可以实现.
506977544
发表于 2015-6-1 10:27
huo_hu 发表于 2015-5-27 23:40
可以的,稍微复杂点的是过几个固定周期后再从CH1N输出也可以实现.
在stm32的互补对称的PWM里面:
Re-directing OCxREF to OCx or OCxN
In output mode (forced, output compare or PWM), OCxREF can be re-directed to the OCx
output or to OCxN output by configuring the CCxE and CCxNE bits in the TIMx_CCER
register.
This allows you to send a specific waveform (such as PWM or static active level) on one
output while the complementary remains at its inactive level. Other alternative possibilities
are to have both outputs at inactive level or both outputs active and complementary with
dead-time.
在输出模式下(强置、输出比较或PWM),通过配置TIMx_CCER寄存器的CCxE和CCxNE位,OCxREF可以被重定向到OCx或者OCxN的输出。 这个功能可以在互补输出处于无效电平时,在某个输出上送出一个特殊的波形(例如PWM或者静态有效电平)。另一个作用是,让两个输出同时处于无效电平,或处于有效电平和带死区的互补输出。
但是不理解什么意思,是不是互补的两个通道OCx和OCxN通过寄存器的配置可以产生一个输出PWm波,一个没有输出呢?谢谢
huo_hu
发表于 2015-6-1 12:59
506977544 发表于 2015-6-1 10:27
在stm32的互补对称的PWM里面:
Re-directing OCxREF to OCx or OCxN
In output mode (forced, output compare or PWM), OCxREF can be re-directed to the OCx
output or to OCxN output by configuring the CCxE and CCxNE bits in the TIMx_CCER
register.
This allows you to send a specific waveform (such as PWM or static active level) on one
output while the complementary remains at its inactive level. Other alternative possibilities
are to have both outputs at inactive level or both outputs active and complementary with
dead-time.
在输出模式下(强置、输出比较或PWM),通过配置TIMx_CCER寄存器的CCxE和CCxNE位,OCxREF可以被重定向到OCx或者OCxN的输出。 这个功能可以在互补输出处于无效电平时,在某个输出上送出一个特殊的波形(例如PWM或者静态有效电平)。另一个作用是,让两个输出同时处于无效电平,或处于有效电平和带死区的互补输出。
但是不理解什么意思,是不是互补的两个通道OCx和OCxN通过寄存器的配置可以产生一个输出PWm波,一个没有输出呢?谢谢
是可以通过软件做到这一点.
506977544
发表于 2015-6-1 18:09
huo_hu 发表于 2015-6-1 12:59
是可以通过软件做到这一点.
谢谢你的指导,已经实现了:互补的两个通道OCx和OCxN通过寄存器的配置可以产生一个输出PWm波,一个输出低电平的;那能否实现一个输出有一定占空比的PWM波,一路输出高电平??
huo_hu
发表于 2015-6-2 10:47
506977544 发表于 2015-6-1 18:09
谢谢你的指导,已经实现了:互补的两个通道OCx和OCxN通过寄存器的配置可以产生一个输出PWm波,一个输出低电平的;那能否实现一个输出有一定占空比的PWM波,一路输出高电平??
记得有一个位是可以设置输出极性的,具体你对着手册看一下.
hamburgduo
发表于 2015-6-3 10:09
mark
506977544
发表于 2015-6-10 10:44
huo_hu 发表于 2015-6-2 10:47
记得有一个位是可以设置输出极性的,具体你对着手册看一下.
楼主,你好,我想用stm32通过全桥spWM调制最终产生正弦波形,现在遇到的问题是:
用stm32f302的我通过TIM1的配置可以产生我要的驱动波形,但是我如果把产生驱动的占空比赋值放到AD中怎么就不对了,例如:我如果TIM1的初始化中直接产生TIM1_CH1输出高,TIM1_CH1N输出低,TIM1_CH2输出低,TIM2_CH2N输出可变占空比的PWM(如图一)是可以的;但是我如果将设置TIM1_CH1,TIM1_CH1N,TIM1_CH2,TIM2_CH2N输出的放在AD中就怎么输出不对呢?求帮忙分析解答,谢谢
huo_hu
发表于 2015-6-10 11:22
放在AD中是什么目的啊
506977544
发表于 2015-6-10 11:25
huo_hu 发表于 2015-6-10 11:22
放在AD中是什么目的啊
AD中采样电压和电流,我想根据电压和电流的不同(方向不同),输出不同的驱动波形,
huo_hu
发表于 2015-6-10 15:17
506977544 发表于 2015-6-10 11:25
AD中采样电压和电流,我想根据电压和电流的不同(方向不同),输出不同的驱动波形,
恐怕不能这么做,电流方向在你控制输出pwm就是已知的或者说是希望的,但实际情况是线圈里的电流并不是完全的直流,而且由于线圈电感的影响会有相差,转速和负载对相差都有影响,即便你要确定电流也不该在输出的pwm上,应该在桥的输出端.
506977544
发表于 2015-6-11 10:22
huo_hu 发表于 2015-6-10 15:17
恐怕不能这么做,电流方向在你控制输出pwm就是已知的或者说是希望的,但实际情况是线圈里的电流并不是完全的直流,而且由于线圈电感的影响会有相差,转速和负载对相差都有影响,即便你要确定电流也不该在输出的pwm上,应该在桥的输出端.
我用的是参考电流的幅值与正弦表的乘机,这样电流就会有正负的,现在关键我想关注的是能否把stm32中的 TIM_OCInitStructure.TIM_Pulse = 200;
TIM_OC1Init(TIM1, &TIM_OCInitStructure);这两句不要放在初始化中,而是放在AD中可以吗?怎么实验中一直为低,感觉不应该,但又找不到原因。求帮忙解答
谢谢
我爱uip
发表于 2015-6-17 12:35
看不懂!
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13