打印

请教MR32MCU的PWM的问题(附图)

[复制链接]
2808|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leixiaoxi|  楼主 | 2007-5-18 13:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  PWM调试中发现了这样一个问题,如果我通过开关把D口的0,1,2,3位置高的话,PWM则无法正常工作,4.5.6位对PWM无影响。
  不知如果在软件里避免D口对PWM的影响。所以来此请教下。谢谢了

相关帖子

沙发
JerryBJ| | 2007-5-18 14:42 | 只看该作者

Fault Detection

PTD0~PTD3同时是Fault Detection功能的输入引脚。高电平表示有异常,因此PWM会被禁止输出。

所以...

使用特权

评论回复
板凳
leixiaoxi|  楼主 | 2007-5-18 15:13 | 只看该作者

那要怎么去解决这个问题呢?

那要怎么去解决呢 ?

使用特权

评论回复
地板
JerryBJ| | 2007-5-18 15:37 | 只看该作者

DISMAP

clear DISMAP register after reset. 

使用特权

评论回复
5
leixiaoxi|  楼主 | 2007-5-18 15:38 | 只看该作者

如何禁止D口影响PWM啊?

我想禁止这个功能,怎么解决呢

使用特权

评论回复
6
gxs64| | 2007-5-19 16:08 | 只看该作者

re

5楼的意思是无论D口的状态如何,都不应该影响PWM。 CPU为68HC908MR32. 寄存器设置如下: PCTL1 = 0B00000011; FCR = 0xFF; DISMAP = 0B00000000; PWMOUT = 0x3F; 但经测试,还是有影响(会关闭PWM)。其中OUT EXT1、OUT EXT2、OUT INT1、OUT INT2连接到74HC244的输入口。 

使用特权

评论回复
7
leixiaoxi|  楼主 | 2007-5-21 11:06 | 只看该作者

DISMAP = 0B00000000这个置后其中D口的PTD1对PWM还是有影响

DISMAP = 0B00000000这个置后其中D口的PTD1对PWM还是有影响,其它3个就没有影响了。

使用特权

评论回复
8
leixiaoxi|  楼主 | 2007-5-21 15:46 | 只看该作者

其实我现在做下来感觉就是D口他 影响了 BANK X和BANK Y

现在在做下来感觉就是D口他 影响了 BANK X和BANK Y ,在DISMAP置0时,如果我的PTD3脚置高,则PWM1,3被禁止。如果PTD1置高则PWM4.6被禁止。这样算下来好像时 PTD3把 bank x置高。PTD1把bank y置高了。

使用特权

评论回复
9
leixiaoxi|  楼主 | 2007-5-21 16:51 | 只看该作者

现在就是感觉D口好像不能避免影响PWM

现在就是感觉D口好像不能避免影响PWM,不知小女子这样假设有无错误?但是现在从datasheet图12-27(page139)上并没有看出D口影响BANK X和BANK Y。现在真是很郁闷,请各位大侠再次指点下!

使用特权

评论回复
10
leixiaoxi|  楼主 | 2007-5-22 11:11 | 只看该作者

怎么大侠们都不帮帮我啊?

怎么大侠们都不帮帮我啊?请大侠们帮帮小女子吧

使用特权

评论回复
11
leixiaoxi|  楼主 | 2007-5-23 13:45 | 只看该作者

re

大侠们帮帮忙哦!

使用特权

评论回复
12
xuhuadong| | 2007-5-23 14:26 | 只看该作者

没用过,刚看手册

PTD3/FAULT4–PTD0/FAULT1 are special function port
pins that also serve as fault pins for the PWMMC. See Chapter 12 Pulse-Width Modulator for Motor
Control (PWMMC) and Chapter 10 Input/Output (I/O) Ports (PORTS).

DISMAP = 0B00000000,应该是关掉了,没有影响的,

使用特权

评论回复
13
leixiaoxi|  楼主 | 2007-5-23 14:39 | 只看该作者

re DISMAP = 0B00000000,应该是关掉了,没有影响的,

看手册的确是应该关掉。但是试验下来的结果却还是没有关掉呢。现在我也不知该如果去解决这个问题了呢。

使用特权

评论回复
14
xuhuadong| | 2007-5-23 15:01 | 只看该作者

把你的$20-$37的配置发出来

还需要在测试时设置ptd0-ptd1高低时打断点
,把pind的数据和$20-$37的数据,发过来,对分析很有用
硬件上可以把244去掉,直接测波形。

软件上打断点硬仿分析$20-$37,pind

注意:很有可能你软件有问题。把DISMAP给改掉了

使用特权

评论回复
15
leixiaoxi|  楼主 | 2007-5-23 15:23 | 只看该作者

re很有可能你软件有问题。把DISMAP给改掉了

这个就是$20-$37的数据。就是不知道为什么$20会变成11的

使用特权

评论回复
16
xuhuadong| | 2007-5-23 16:25 | 只看该作者

DISMAP只能在复位时写一次

使用特权

评论回复
17
xuhuadong| | 2007-5-23 16:40 | 只看该作者

pwmf?新装周期发生 ldok?没有新pwm模式 看一下pctl1

好好看一下资料,这两个位的定义

PWMF — PWM Reload Flag
This read/write bit is set at the beginning of every reload cycle regardless of the state of the LDOK bit.
This bit is cleared by reading PWM control register 1 with the PWMF flag set, then writing a logic 0 to
PWMF. If another reload occurs before the clearing sequence is complete, then writing logic 0 to
PWMF has no effect.
1 = New reload cycle began.
0 = New reload cycle has not begun.

This read/write bit loads the prescaler bits of the PMCTL2 register and the entire PMMODH/L and
PWMVALH/L registers into a set of buffers. The buffered prescaler divisor, PWM counter modulus
value, and PWM pulse will take effect at the next PWM load. Set LDOK by reading it when it is logic 0
and then writing a logic 1 to it. LDOK is automatically cleared after the new values are loaded or can
be manually cleared before a reload by writing a 0 to it. Reset clears LDOK.
1 = Load prescaler, modulus, and PWM values.
0 = Do not load new modulus, prescaler, and PWM values.

使用特权

评论回复
18
xuhuadong| | 2007-5-23 16:43 | 只看该作者

看一下位定义

使用特权

评论回复
19
leixiaoxi|  楼主 | 2007-5-23 17:13 | 只看该作者

re看一下位定义

非常感谢哦。我现在正在看呢

使用特权

评论回复
20
leixiaoxi|  楼主 | 2007-5-23 17:16 | 只看该作者

re:pwmf?新装周期发生 ldok?没有新pwm模式 看一下pctl1

 程序中PCTL1  = 3;
      PCTL1  |= 0x02;
      DISMAP = 0B00000000;
    CONFIG =  0x91;  我是这样设置的
PWMF我没设置。我再看看先

使用特权

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

本版积分规则

3

主题

21

帖子

1

粉丝