打印

【求助】关于stm32的ADC1和TIM1的几个问题

[复制链接]
3862|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nixianmin|  楼主 | 2013-7-30 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    刚开始使用stm32,准备使用STM32来做电机驱动,在测试ADC1和TIM1的时候遇到一些困惑,PWM频率在20KHz,求解答下。
    我在使用ADC1的时候使用规则通道+DMA进行一些不重要的数据采样,像外部的电压,温度等一些值的时候,结果发现一个问题,
我利用一个变阻器测试发现调节变阻器的时候会影响其他几个通道的采样值,后来把采样时间改为最大,值的结果才不受影响,这个不知到是我使用的模式需要这么长时间还是哪里设置的问题?
ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_239Cycles5);//hand
    ADC_RegularChannelConfig(ADC1,ADC_Channel_1,2,ADC_SampleTime_239Cycles5);//external temperature
    ADC_RegularChannelConfig(ADC1,ADC_Channel_2,3,ADC_SampleTime_239Cycles5);

   还有一个就是TIM1的使用了,我用CCR1/CCR2/CCR3来产生3相PWM,用CCR4来产生捕获/比较中断来触发ADC1的注入通道,
ADC_InjectedSequencerLengthConfig(ADC1, 1);
    ADC_InjectedChannelConfig(ADC1,ADC_Channel_10,1,ADC_SampleTime_7Cycles5);//CURRENT  
    ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_T1_CC4);//这个可以使用time1的CCR4事件来触发采样
  并在注入采样转换结束后产生中断,在中断里对管脚翻转信号,来测试是否在PWM—ON的中点产生中断,CCR4的pluse设置为其他的一半,结果在占空比大的情况下比较好,在占空比10%以下,发现这个信号是在PWM-on结束之后才翻转的,试了CCR4自己的中断,也发现信号翻转和我设置的有比较大的误差,不知道这个延迟是哪里的问题,端口设置为推挽输出的。

   
沙发
airwill| | 2013-7-30 11:47 | 只看该作者
1.  ADC 系统的设计问题.
2. 那是中断响应争夺引起的. ADC 和翻转信号 的中断时间上同步, ADC 的优先级高于翻转信号. 导致 ADC 中断结束后, 翻转才得到执行.

使用特权

评论回复
板凳
nixianmin|  楼主 | 2013-7-30 12:00 | 只看该作者
airwill 发表于 2013-7-30 11:47
1.  ADC 系统的设计问题.
2. 那是中断响应争夺引起的. ADC 和翻转信号 的中断时间上同步, ADC 的优先级高于 ...

谢谢斑竹,那么说我实际的处理是在PWM-ON的中点了,只是翻转信号有延时

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:电机控制,TI InstaSpin Foc交流群:335663930

40

主题

431

帖子

6

粉丝