打印

谁用过三星s3f9488的,怎么切换晶振啊

[复制链接]
4939|20
手机看帖
扫描二维码
随时随地手机跟帖
沙发
hugoo|  楼主 | 2010-10-15 12:27 | 只看该作者
哦,没人来说说吗,自己顶

使用特权

评论回复
板凳
zhshpd| | 2010-10-15 13:16 | 只看该作者
呵呵

使用特权

评论回复
地板
hugoo|  楼主 | 2010-10-15 14:35 | 只看该作者
zhshpd,谢谢帮忙顶帖

高手们进来讲一下吧

使用特权

评论回复
5
fushaobing| | 2010-10-15 14:56 | 只看该作者
我用过s3f9454.
你是怎么切换的?可以贴出来看看吗?

使用特权

评论回复
6
hugoo|  楼主 | 2010-10-15 16:39 | 只看该作者
啊,好的

CLKCON = 0x18;   
         OSCCON = 0x09;
         STPCON = 0xA5;   
         ADCON = 0x00;
         BTCON = 0x0B;
         di;
         TACON   = 0x43;               
         TADATA  = 0xAA;               
        //  asm("IDLE");
        asm("STOP");
         asm("NOP");asm("NOP");asm("NOP");

使用特权

评论回复
7
ningling_21| | 2010-10-15 20:58 | 只看该作者
就是改变分频系数?
其实就是改变寄存器 的值...

使用特权

评论回复
8
hugoo|  楼主 | 2010-10-16 20:51 | 只看该作者
ningling_21,你好,谢谢你的回复
我现在的问题就是不知道怎么关断主晶振,让副晶振工作,希望你能详细指点一下。

使用特权

评论回复
9
ningling_21| | 2010-10-17 09:22 | 只看该作者
按照芯片资料 的说明
OSCCON = 0x09;
STPCON = 0xA5;  
BTCON = 0x0B;
这样是可以的,这种问题一般要看懂芯片资料才行,还要多试验...

使用特权

评论回复
10
hugoo|  楼主 | 2010-10-17 10:29 | 只看该作者
ningling_21,你好,我也是这么设置的,主程序可以停下来,可是好象定时器还在跑,量电流有1mA左右,而且在波动。我怀疑是不是看门狗一直在重启,可是我WDTCON给的是0xAA,按理说应该关了啊。
你有没有用过的程序段,能发一段程序给我吗?
hurlly@126.com

使用特权

评论回复
11
ningling_21| | 2010-10-17 17:44 | 只看该作者
只用过一种晶振的情况,没用过这样双晶振的情况...

使用特权

评论回复
12
fushaobing| | 2010-10-18 15:26 | 只看该作者
分两步走:
1. 选择慢时钟作为系统时钟。
2. 关闭快时钟。
(必须分两条指令写。不能企图用一条指令达到目的。)

你可以看一下s3c9234的资料,那里有快时钟与慢时钟转换的详细介绍和例程。

使用特权

评论回复
13
fushaobing| | 2010-10-18 16:28 | 只看该作者
一般来说,慢时钟是从来不关闭的,而快时钟只在必要的时候打开(用完后随即关闭快时钟)。
快时钟一旦打开,电流会变的很大。
楼主你首先要保证上电后你的慢时钟必须是打开的。

低功耗模式共两种:STOP mode and IDLE mode.
一般来说,不需要使用STOP mode. STOP mode下除了外部中断和复位电路,其他的所有部件包括定时器都是停止工作的。
IDLE MODE 的电流也非常的小,而且IDLE MODE下定时器是工作的,可以通过任何外部或内部中断唤醒MCU.

建议楼主仔细阅读datasheet。多看,多想,多试。

s3f9488的datasheet关于低功耗模式,快慢时钟转换说的很少。建议楼主去看s3c9234的datasheet.

使用特权

评论回复
14
hugoo|  楼主 | 2010-10-19 13:44 | 只看该作者
fushaobing,非常感谢你的回复,你说的太到位了!
我现在就是一开始上电的时候打不开副晶振,然后stop可以关掉主晶振,我也想在低功耗下用定时器,因为要跑时间,可是我试了一下,stop下电流大约50uA,IDLE下面电流有300uA多。手册上说在正常操作时只有stop可以关掉主晶振,可他同时也关了所有资源,就像你说的要退出只有外部中断和复位。
所以,我现在纠结的是副晶振根本打不开。
去找s3c9234的手册看看。

使用特权

评论回复
15
fushaobing| | 2010-10-19 14:50 | 只看该作者
我看了9488的手册,上电时慢时钟是打开的(OSCCON的第2位为0)。
你到底接了慢时钟电路没有?慢时钟必须是32.768KHz的晶振外加两个电容。

使用特权

评论回复
16
fushaobing| | 2010-10-19 15:16 | 只看该作者
你说“stop可以关掉主晶振”,这句话很有问题。

主晶振、副晶振的打开和关闭,系统时钟选择主晶振还是副晶振,是由OSCCON寄存器控制的,跟是否处于STOP MODE or IDLE MODE没有关系。

对系统而言,只有两种模式。
一,正常模式。(CPU正常工作)
二,低功耗模式。包括STOP MODE and IDLE MODE。(CPU停止工作。)

对于主副晶振的打开关闭以及系统时钟的选择,都是在正常模式下进行的。因为只有正常模式下CPU才工作,才执行指令。

使用特权

评论回复
17
fushaobing| | 2010-10-19 15:29 | 只看该作者
从你的情况看,你应该使用IDLE MODE,而不能使用STOP MODE.

选择了慢时钟作为系统时钟(再关闭快时钟),电流会大幅度降低。这时再进入IDLE MODE,电流会进一步降低。
注意,必须把“进入IDLE MODE”的指令放进你的死循环,使你的程序处于间歇性工作的状态。(睡觉-->醒来做事-->睡觉-->醒来做事)。

使用特权

评论回复
18
fushaobing| | 2010-10-19 15:35 | 只看该作者
感觉你把“主副时钟的打开关闭和系统时钟的选择”与“STOP MODE and IDLE MODE”搅在一起了,他们之间的关系没有你想的那么亲密。希望你好好理一理思路。

使用特权

评论回复
19
hugoo|  楼主 | 2010-10-19 20:56 | 只看该作者
fushaobing,非常感谢你的讲解,我按照你说的做了,现在副晶振可以打开,用OSCCON可以关掉主晶振了,也可以进入stop或者IDLE模式了,电流可以降到5uA左右。
可是有一个问题,就是要进入stop或者IDLE模式一定要关中断,用OSCCON进行切换也要关中断,这样定时器就没法跑了,你能帮我分析一下是什么原因吗?
谢谢!

使用特权

评论回复
20
hugoo|  楼主 | 2010-10-19 23:02 | 只看该作者
终于全部搞好了,副晶振跑watch timer,最后电流在37uA,非常感谢fushaobing,ningling_21,zhshpd,谢谢坛子里兄弟们的关注和讲解!
现在结贴,给分!

使用特权

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

本版积分规则

0

主题

10

帖子

2

粉丝