参考别人的设计中,28035的复位脚XRS,参考数据手册中XRS引脚是具有欠压保护之类的一系列保证供电正常后再进行控制操作。但在参考设计中使用TI的TPS7333Q,其再RST引脚引出复位信号送至XRS,为何还需要给电源加此信号?
【问】28035的问题,是否有必要加个外部上电时序控制?
全部回复(5)
正序查看
倒序查看
现在还没有回复呢,说说你的想法
片内时钟振荡器为独立的
INTOSC1:片内时钟振荡器1(10MHz),可以为看门狗、系统内核、CPU定时器2提供时钟基准。
INTOSC2:片内时钟振荡器2(10MHz),可以为看门狗、系统内核、CPU定时器2提供时钟基准。
Crystal / Resonator:采用外部晶振作为时钟基准(XTAL),硬件上连接在X1 / X2脚。
External Clock Source:外部时钟源(XCLK – GPIO19 / GPIO38),如果没有使用外部晶振,那么可以使用一个外部的时钟源接入到XCLKIN管脚上,提供时钟基准。
默认情况下,系统内核时钟是由INTOSC1提供的,经过实际使用下来,片内的INTOSC1和INTOSC2并不是很精确,并且受温度影响较大。如果使用外部晶振,应该如何切换呢?
1. 启用编辑受保护的寄存器;
1 | EALLOW; |
2. 将CLKCTL[XTALOSCOFF]设置为0,启用外部晶振;并将CLKCTL[XCLKINOFF]设置为1,禁用外部时钟输入;
参考操作:
2 | SysCtrlRegs.CLKCTL.all = 0x2400; |
3. 将CLKCTL[OSCCLKSRCSEL] 设置为1,使用外部晶振作为系统时钟源;此时,系统时钟无分频和倍频,需要重新设置PLLCR;
参考操作:
3 | SysCtrlRegs.CLKCTL.all = 0x2401; |
4. 重新设置PLLCR,并等待设置完毕;
参考操作:
456789101112131415161718192021 | if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 1){ SysCtrlRegs.PLLSTS.bit.MCLKOFF = 1; SysCtrlRegs.PLLSTS.bit.DIVSEL = 0; SysCtrlRegs.PLLCR.bit.DIV = 0x000C; while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1) { SysCtrlRegs.WDKEY = 0x0055; SysCtrlRegs.WDKEY = 0x00AA; } SysCtrlRegs.PLLSTS.bit.MCLKOFF = 0; DelayUs(20/2); SysCtrlRegs.PLLSTS.bit.DIVSEL = 0x2;}else{ asm(" ESTOP0");} |
5. 关闭内部晶振INTOSC1;
参考操作:
22 | SysCtrlRegs.CLKCTL.all = 0x2501; |
6. 禁止编辑受保护的寄存器;
23 | EDIS; |
这样DSP可以工作在一个相对稳定和精确地时钟基准下。
0
回复
提示
@电源照宝
片内时钟振荡器为独立的 INTOSC1:片内时钟振荡器1(10MHz),可以为看门狗、系统内核、CPU定时器2提供时钟基准。INTOSC2:片内时钟振荡器2(10MHz),可以为看门狗、系统内核、CPU定时器2提供时钟基准。Crystal/Resonator:采用外部晶振作为时钟基准(XTAL),硬件上连接在X1/X2脚。ExternalClockSource:外部时钟源(XCLK–GPIO19/GPIO38),如果没有使用外部晶振,那么可以使用一个外部的时钟源接入到XCLKIN管脚上,提供时钟基准。默认情况下,系统内核时钟是由INTOSC1提供的,经过实际使用下来,片内的INTOSC1和INTOSC2并不是很精确,并且受温度影响较大。如果使用外部晶振,应该如何切换呢?1.启用编辑受保护的寄存器;1EALLOW;2.将CLKCTL[XTALOSCOFF]设置为0,启用外部晶振;并将CLKCTL[XCLKINOFF]设置为1,禁用外部时钟输入;参考操作:2SysCtrlRegs.CLKCTL.all=0x2400;3.将CLKCTL[OSCCLKSRCSEL]设置为1,使用外部晶振作为系统时钟源;此时,系统时钟无分频和倍频,需要重新设置PLLCR;参考操作:3SysCtrlRegs.CLKCTL.all=0x2401;4.重新设置PLLCR,并等待设置完毕;参考操作:456789101112131415161718192021if(SysCtrlRegs.PLLSTS.bit.MCLKSTS!=1){ SysCtrlRegs.PLLSTS.bit.MCLKOFF=1; SysCtrlRegs.PLLSTS.bit.DIVSEL=0; SysCtrlRegs.PLLCR.bit.DIV=0x000C; while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS!=1) { SysCtrlRegs.WDKEY=0x0055; SysCtrlRegs.WDKEY=0x00AA; } SysCtrlRegs.PLLSTS.bit.MCLKOFF=0; DelayUs(20/2); SysCtrlRegs.PLLSTS.bit.DIVSEL=0x2;}else{ asm("ESTOP0");}5.关闭内部晶振INTOSC1;参考操作:22SysCtrlRegs.CLKCTL.all=0x2501;6.禁止编辑受保护的寄存器;23EDIS;这样DSP可以工作在一个相对稳定和精确地时钟基准下。
0
回复
提示