打印
[PIC®/AVR®/dsPIC®产品]

PIC24单片机的疑问,着急中

[复制链接]
1595|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ilinkyou|  楼主 | 2014-4-3 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我初次接触PIC24FJ16GA002,以前用过一段时间的PIC16F873A。目前在学习过程中遇到了一些问题,折腾了好几天,始终无法解决,询问了好多人,用仿真器做实验,就是通不过,着急死了。    PIC24FJ16GA002的PIN9引脚的OSCI/CLKI连接一个7.3728M有源晶振,PIN11引脚的SOSCI和PIN12引脚的SOSCO连接一个32.768KHz的无源晶振。我想利用32.768K的晶振产生一个TIMER1定时中断但始终无法进入TIMER1中断,我用示波器看了哈,发现32.768KHz的无源晶振没有起振。若TIMER1的计数脉冲来自内部时钟(Fosc/2),则程序可正常运行,程序编写环境为MPLAB IDE V8.9 编译器为MPLAB C30. TMR1的初始化程序如下:
void Init_TMR1(void)       
{
        T1CON = 0x00;
        _SOSCEN = 1;        // 使能辅助振荡器SOSC
        _TCS = 1;                // 选择来自TxCK引脚的外部时钟
        _TSYNC = 0;                // TCS=1;TSYNC=0;不同步外部时钟输入。;TCS=1;TSYNC=1;同步外部时钟输入
//        _TCS = 0;                // 计数脉冲来自内部时钟(Fosc/2)

        _TCKPS = 0;                // TCKPS1:TCKPS0=00;设置预分频比为1:1
        TMR1 = 0;
        PR1 = 32768-1;        // 一个周期为1s
        _T1IF = 0;
        _T1IP = 7;
        _T1IE = 1;
        _TON = 1;
}
Q1:我始终不知道环节出现了问题,DATASHEET看了好多遍,可是还是没有解决,不知如何令SOSC起振?
配置字我在IDE中也做了设置,发现不行,后来采用了如下的方式,还是不行。
// 设所需的_CONFIG2配置为:允许双速启动、主振荡器不使用PLL四倍频、禁止时钟切换和时钟监视、主振荡器选择HS振荡器模式
_CONFIG2( IESO_ON & FNOSC_PRI & FCKSM_CSDCMD & POSCMOD_HS );
// 设所需的_CONFIG1配置为:禁止JTAG端口、禁止代码保护、禁止写程序保护器、器件复位至正常工作模式、使能Clip-on Emulation mode、仿真器EMUC/EMUD引脚与PGC1/PGD1复用、
// 禁止看门狗定时器、禁止窗式看门狗定时器、看门狗定时器预分频比为1:32、看门狗定时器后分频比为1:1
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_ON & COE_ON & ICS_PGx1 & FWDTEN_OFF & WINDIS_OFF & FWPSA_PR32 & WDTPS_PS1);
*/
Q2:我始终没有理解配置字CW2中的 POSCMD和FNOSC的关系?
Q3:配置字CW2中的IESO和FCKSM的关系(二者都是时钟切换,有何差异?)?若使能CW2中的IESO,是不是刚上电时使用内部LPRC,稳定后系统始终采用POSCMD指定的振荡源?
Q4:振荡器控制寄存器OSCCON中的NSOC和FNOSC有关系吗?
Q5:我看了PIC24FJ16GA002.h,不太明白
**   Secondary Oscillator:
**     SOSCSEL_LPSOSC       Low Power Secondary Oscillator
**     SOSCSEL_SOSC         Default Secondary Oscillator
配置时如何选择?

问题比较多,我写的也比较啰嗦,麻烦抽空帮我解答下,谢谢!
沙发
wangch_sh| | 2014-4-3 21:03 | 只看该作者
无源晶振怎么接的?

使用特权

评论回复
板凳
ilinkyou|  楼主 | 2014-4-5 00:04 | 只看该作者
PIN11引脚的SOSCI和PIN12引脚的SOSCO连接一个32.768KHz的无源晶振,负载电容15pF

使用特权

评论回复
地板
youss| | 2014-4-5 10:12 | 只看该作者
32.768KHz的晶振应该配置为LP振荡器模式呵!

使用特权

评论回复
5
ilinkyou|  楼主 | 2014-4-6 13:42 | 只看该作者
我试过了,不过配置为Low Power Secondary Oscillator 还是 Default Secondary Oscillator
都不行的。
还可能是哪个环节出问题了?

使用特权

评论回复
6
hankchen86| | 2014-8-20 09:37 | 只看该作者
你查一下OSCCON寄存器中是否有LPOSCEN这个控制位,是用来使能LP振荡器的,我用的PIC24HJ128GP204就有这个控制位。

使用特权

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

本版积分规则

7

主题

11

帖子

1

粉丝