【散分提问】12M晶振使能问题

hyforwin   2009-6-24 17:25 楼主
最近遇到个问题。系统通过响应GPIO口例如GPIO0这个IO口中断实现一个低功耗休眠的动作。一些机器上正常,功耗小于5mA,12M晶振工作停止,32.768正常工作。但是现在的一个案子上休眠都休眠下去了。但是12M晶振没有停止,一直有个50mA在,程序上已经试图在休眠的地方加入设定晶振使能的控制寄存器关闭,但是依然存在12M,当然功耗依然没下来。请问下各位高手有没有遇到过这样的情况。下面在列下问题

1.目的为降低功耗;
2.当前测试发现原因主芯片供应的12M晶振没有被关闭,强行将12M对地接后功耗降低至1mA;
3.原始功能是通过按键休眠实现低功耗,同时12M也关闭;
4.主芯片为SIRF A3;
5.尝试在相应响应休眠的程序上加入对12M使能的控制但依然无效;

求助。解决了再加分。

回复评论 (57)

自己先顶下。。。
点赞  2009-6-24 17:32
哈哈,这不叫散分啊。

点赞  2009-6-24 17:32
有诱惑的嫌疑。。。。。没办法。。。引高手进来。
点赞  2009-6-24 17:33
控制没作用?没控制到?没指到对应的物理地址?
点赞  2009-6-24 17:49
引用: 引用 4 楼 xqhrs232 的回复:
控制没作用?没控制到?没指到对应的物理地址?

谢谢 xqhrs232.。。。

物理地址??
他是两个线,从主芯片里出来,XIN XOUT进12M晶振。
没指到对应的物理地址?
这个什么叫物理地址。。。。他是一个寄存器。我直接写寄存器控制的。。这样不行吗?汗。。
WRITE_BITFIELD(struct pwrclkenable, &(v_pPowerRegs->pmr_clkenable), xin,0);       
这样定义的。
// define power manager registers
struct powerregs {
        struct pwrctrl                         pmr_ctrl;
        struct pwrconfig                 pmr_config;
        struct pwrwakeup                 pmr_wakeup;
        struct pwrsleepstatus         pmr_sleepstatus;
        unsigned int                        pmr_scratchpad;
        UCHAR                   pad[8];         // padded 64-bits
        struct pwroscstatus         pmr_oscstatus;
        struct pwrclkswitch         pmr_clkswitch;
        UCHAR                   pad1[4];
        struct pwrpll1config         pmr_pll1config;
        struct pwrpll2config         pmr_pll2config;
        struct pwrclkenable         pmr_clkenable;
        struct pwroscwait                 pmr_oscwait;         // 0x034
        unsigned int                         pmr_stoplevel;         // 0x38
        unsigned int                         pmr_pinrelease; // 0x3c
        struct pwrioclkratio         pmr_ioclkratio; // 0x40
        unsigned int                         pmr_xinratio;         // 0x44
        struct pwrMemCtrlbits   pmr_memctrl;        //0x48
        struct pwrDelayCtrl0        pmr_delayctrl0; //0x4c
        struct pwrDelayCtrl1        pmr_delayctrl1; //0x50
};


点赞  2009-6-24 17:53
我直接写寄存器位。
点赞  2009-6-24 17:55
引用: 引用 6 楼 xumercury 的回复:
我直接写寄存器位。

怎么写的?
点赞  2009-6-24 18:22
硬件上不懂,看看两根引脚的波形正确么?
点赞  2009-6-24 18:25
一般 5mA   这个功耗 不小哦! 你的片子米用过
点赞  2009-6-24 18:35
引用: 引用 9 楼 M0521 的回复:
一般 5mA  这个功耗 不小哦! 你的片子米用过


5ma还不小?
点赞  2009-6-24 18:59
引用: 引用 8 楼 codewarrior 的回复:
硬件上不懂,看看两根引脚的波形正确么?

牛人。波形很漂亮的。。。= =问题是我要关掉那个波形。。。。

外话。3530耍的怎么样了
点赞  2009-6-24 20:17
引用: 引用 9 楼 M0521 的回复:
一般 5mA?  这个功耗 不小哦! 你的片子米用过

已经很小了。。。哎。。。。电路设计的。。。不说了。。不做评价。高手有没有其他建议给小弟的。。。。
晶振一般怎么控制工作的。
点赞  2009-6-24 20:18
引用: 引用 10 楼 gooogleman 的回复:
引用 9 楼 M0521 的回复:
一般 5mA? 这个功耗 不小哦! 你的片子米用过


5ma还不小?

理论上。。。。。sirf A3待机功耗是微安级的。。。。。。也就是几百微安。。uA....
我把12M 欧掉了就1mA。。。。
点赞  2009-6-24 20:19
不一定是程序问题 调试时看你设置的那寄存器是否如你想改变没
若是 可能芯片的事
路过
点赞  2009-6-24 21:22
引用: 引用 14 楼 jgj58 的回复:
不一定是程序问题 调试时看你设置的那寄存器是否如你想改变没
若是 可能芯片的事
路过

其他的都没问题啊。。。。我现在非常之迷茫。。。。硬件说不是硬件问题。软件又查不出来。。。。迷茫啊。。
点赞  2009-6-24 22:03
引用: 引用 7 楼 wangxin_801115 的回复:
引用 6 楼 xumercury 的回复:
我直接写寄存器位。

怎么写的?


上面有写
点赞  2009-6-24 22:03
顶下。各位大侠帮忙啊
点赞  2009-6-24 23:10
看你的A3的datasheet怎么写的?如果是用的无源晶振的话,换一个有源金振(是金振,不是晶振)试验一下。
点赞  2009-6-25 00:49
引用: 引用 11 楼 xumercury 的回复:
引用 8 楼 codewarrior 的回复:
硬件上不懂,看看两根引脚的波形正确么?


牛人。波形很漂亮的。。。= =问题是我要关掉那个波形。。。。

外话。3530耍的怎么样了

我菜鸟。3430板子还没买到手,马上要去美国出差一个月,等回来再买,或者干脆在那边买小狗板了。
我的意思是你看看波形,关闭的命令发送出去没有,时序是否正确。
点赞  2009-6-25 02:04
123下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复