打印
[STM8]

关于STM8 互补输出通道的PWM问题

[复制链接]
5683|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jgphu|  楼主 | 2010-8-9 17:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大虾,
         现在做一个PWM输出,用TIM1_CC1通道输出PWM已实现,可是我用TIM1_NCC1通道输出PWM实现不了,请各位大虾帮帮忙,是不是设计上有什么不同的地方。

现在已对TIM1_CCER1 的CC1NE= 1; CC1NP = 1;其它设置和TIM1_CC1输出PWM的方法一样。

SPEC有这句话不是很理解,可能是关键点:对于有互补输出的通道,该位是预装载的。如果CCPC=1(TIM1_CR2寄存器),只有在COM事件发生时,CC1NP位才从预装载位中取新值。
沙发
jgphu|  楼主 | 2010-8-9 17:41 | 只看该作者
网上有贴子说“那个反相的我所知要用 ST 的那个软件  配置端口"熔丝"位  ”??

使用特权

评论回复
板凳
香水城| | 2010-8-9 17:56 | 只看该作者
请你看看我的这个博客,在预装载这个概念上,STM8与STM32是一致的:STM32定时器的预装载寄存器与影子寄存器之间的关系

使用特权

评论回复
地板
jgphu|  楼主 | 2010-8-9 18:11 | 只看该作者
请你看看我的这个博客,在预装载这个概念上,STM8与STM32是一致的:STM32定时器的预装载寄存器与影子寄存器之间的关系。
香水城 发表于 2010-8-9 17:56


我现在是想在TIM1_NCC1上输出一个占空比和频率固定的波形,只需要将TIM1_ARR重装载就好了吧,不断比较计数,直到更新事件,就是一个周期。

使用特权

评论回复
5
香水城| | 2010-8-9 18:55 | 只看该作者
楼主位说“SPEC有这句话不是很理解”,我给了你一篇博客;2楼又说什么"熔丝"位;4楼又说“就是一个周期”;搞不懂你要问什么?

使用特权

评论回复
6
jgphu|  楼主 | 2010-8-9 19:03 | 只看该作者
问题找到了, 问了一位朋友, 原来真的是要配置的,我告诉大家在哪吧,对新人有用.

打开STVP烧写窗口,  中间有两个标签,一个是PROGRAM MEMORY 一个是OPTION BYTE. 选第二个.
然后找到 AFR5 点击右边的下拉箭头, 选另外一个, 然后再烧录程序.

使用特权

评论回复
7
jgphu|  楼主 | 2010-8-9 19:09 | 只看该作者
楼主位说“SPEC有这句话不是很理解”,我给了你一篇博客;2楼又说什么"熔丝"位;4楼又说“就是一个周期”;搞不懂你要问什么?
香水城 发表于 2010-8-9 18:55


我的目的是要在TIM1_NCC1的端口输出一个PWM, 看SPEC,查资料,得到了一些东西,很乱,香水城大虾辛苦了

使用特权

评论回复
8
CrazyST| | 2010-8-9 19:42 | 只看该作者
当时我在这里困了半个月,把TIM1每一个寄存器的每一位介绍翻了N遍还是不解,最后问老师才知道原来是选项字节。哈哈!

使用特权

评论回复
9
香水城| | 2010-8-9 22:02 | 只看该作者
楼主使用的是哪一款芯片?什么型号? 哪个引脚?

使用特权

评论回复
10
jgphu|  楼主 | 2010-8-10 09:50 | 只看该作者
我用的芯片是STM8AH6126. 输出PWM的端口是PIN16(TIM1_NCC1/AIN0/PB0).

1. 我的设计是让PIN16(TIM1_NCC1/AIN0/PB0)输出PWM没有成功!!
2. 接着我就按ST官方例程将PIN18(TIM1_CC1)输出PWM成功了!!
3. 然后我就问到了,要设置STVP的OPTION才能让PIN16(TIM1_NCC1/AIN0/PB0)输出PWM成功了!!
4. 现在又有新问题了,我把CC1E关闭了,PIN18(TIM1_CC1)这个端口还是会输出PWM????

使用特权

评论回复
11
香水城| | 2010-8-10 10:13 | 只看该作者
我用的芯片是STM8AH6126. 输出PWM的端口是PIN16(TIM1_NCC1/AIN0/PB0).

1. 我的设计是让PIN16(TIM1_NCC1/AIN0/PB0)输出PWM没有成功!!
2. 接着我就按ST官方例程将PIN18(TIM1_CC1)输出PWM成功了!!
3. 然后我就问到了, ...
jgphu 发表于 2010-8-10 09:50


对不起,我没有找到你说的型号,你也可以自己在ST网站搜索一下,输入STM8AH6126或STM8AH*都可以:

STM8A_Search.gif (105.87 KB )

STM8A_Search.gif

使用特权

评论回复
12
jgphu|  楼主 | 2010-8-10 10:17 | 只看该作者
版主找什么??? SPEC吗? 我有..

stm8ah6126.pdf

880.42 KB

使用特权

评论回复
13
jgphu|  楼主 | 2010-8-10 10:17 | 只看该作者
还有一个

stm8ah61xx.pdf

880.42 KB

使用特权

评论回复
14
香水城| | 2010-8-10 10:31 | 只看该作者
我不熟悉STM8A这个系列,但从引脚列表中可以看出,TIM1_NCC1的功能属于复用功能,需要通过配置Option Byte才能使用,见贴图。

关于你的新问题,目前不能回答你,抱歉,:$ 。

STM8A_Pinout.GIF (46.36 KB )

STM8A_Pinout.GIF

使用特权

评论回复
15
jgphu|  楼主 | 2010-8-10 10:57 | 只看该作者
虽然没有解决,还是非常感谢香水城的大力支持.
我发现当我在配置OPTION BYTE 的时候车室value 的值会变化, 由此我想到是不是可以在程序里把OPTION BYTE配置好??

QQ截图未命名.jpg (54.64 KB )

QQ截图未命名.jpg

使用特权

评论回复
16
jgphu|  楼主 | 2010-8-10 11:39 | 只看该作者
请看带互补输出的模块框图:上面的图意应该是哪个引脚有输出,应该有控制开关的

QQ截图未命名.jpg (65.3 KB )

QQ截图未命名.jpg

使用特权

评论回复
17
jgphu|  楼主 | 2010-8-10 16:10 | 只看该作者
请看带互补输出的模块框图:上面的图意应该是哪个引脚有输出,应该有控制开关的
jgphu 发表于 2010-8-10 11:39



经过我的再些验证, TIM1_CC1神奇的没有输出了,现在就一个TIM1_NCC1有输出PWM了,总算有点收获。

可是我还是按照我之前的做法,CC1E = 0; 上次不行,这次又可以了,差别之处就是我把STVP关闭重新打开了一次。。。不解中。。

使用特权

评论回复
18
香水城| | 2010-8-10 18:41 | 只看该作者
:P  :$

使用特权

评论回复
19
gyh974| | 2014-5-25 12:01 | 只看该作者

使用特权

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

本版积分规则

7

主题

642

帖子

2

粉丝