打印
[技术问答]

9G 请教 新唐M0 Mini54LAN 上电不工作

[复制链接]
4140|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
现象:
    MCU上电复位正常时, LDO_CAP脚 输出 约1.8V(内部供电)
    MCU不正常时,LDO_CAP脚 输出 仅 650mV

环境:
    MCU 5V供电正常,由7805降压过来,7805输入12V;
        电源滤波电容在 VDD脚附近
    RC复位电路参考手册的电路,10K 10uF
    LDO_CAP外接 10uF,距离MCU近

测试:
    用BSP自带的demo,仅开启IRC_22M,一个GPIO口,用于LED闪烁,其他都没启用

    用旧版BSP V1.0.06 也会出现LDO_CAP只有650mV
    用新版BSP V2.0 也会出现LDO_CAP只有650mV

请教高手,出现此问题有哪些可能

附测试代码:
void SYS_Init(void)
{
    SYS_UnlockReg();
        /* Enable  IRC_22MHz */
        SYSCLK->PWRCON &= ~(SYSCLK_PWRCON_XTLCLK_EN_Msk);
        SYSCLK->PWRCON |= SYSCLK_PWRCON_IRC22M_EN_Msk;   
        /* Waiting for 12MHz clock ready */
        SYS_WaitingForClockReady(SYSCLK_CLKSTATUS_IRC22M_STB_Msk);   
        /* Switch HCLK clock source to XTAL */
        SYSCLK->CLKSEL0 &= ~SYSCLK_CLKSEL0_HCLK_S_Msk;
        SYSCLK->CLKSEL0 |= SYSCLK_CLKSEL0_HCLK_IRC22M;
        /* Update System Core Clock */
        SystemCoreClockUpdate();
        SYS_LockReg();
}
void LED_Init(void)
{
    _GPIO_SET_PIN_MODE(P3,2,GPIO_PMD_OUTPUT);
    P32 = 1;
}
int32_t main (void)
{
    uint32_t u32i;

    SYS_Init();
    LED_Init();

    while (1)
    {
        for (u32i=0;u32i<0x0001FFFF;u32i++)
        {
            P32 = 0;
        }
        for (u32i=0;u32i<0x0001FFFF;u32i++)
        {
            P32 = 1;
        }
    }
}
沙发
tigerdill2000|  楼主 | 2013-8-9 17:27 | 显示全部楼层
本帖最后由 tigerdill2000 于 2013-8-9 17:31 编辑

谢谢回复
补贴函数
void SystemCoreClockUpdate (void)            
{
    uint32_t u32CoreFreq, u32ClkSrc;

    u32ClkSrc = SYSCLK->CLKSEL0 & 0x7;
        
    if (u32ClkSrc == 0)
        u32CoreFreq = __XTAL;                /* External crystal clock */

    else if (u32ClkSrc == 3)
        u32CoreFreq = __IRC10K;        /* Interanl 10K crystyl clock */

    else if (u32ClkSrc ==  7)
        u32CoreFreq = __IRC22M;        /* Internal 22M */

    else
        u32CoreFreq = __IRC22M;         /* unknown value, use default Internal 22M */


    SystemCoreClock = (u32CoreFreq/((SYSCLK->CLKDIV & 0xF) + 1));
    CyclesPerUs = (SystemCoreClock + 500000) / 1000000;
}
更新系统时钟,库自带的函数,从Demo保留下来的

SYSCLK->PWRCON &= ~(SYSCLK_PWRCON_XTLCLK_EN_Msk)
是清 使用外部晶振 寄存器对应位

现在我分析的原因是:那个LDO_CAP输出的电压是给 M0内核用的1.8V
当LDO输出650mV时,M0内核没工作起来,所以用户代码也无法执行

不知道为何 M0 内置的 LDO 5V转1.8V的 工作不正常

未命名.jpg (38.99 KB )

未命名.jpg

使用特权

评论回复
板凳
tigerdill2000|  楼主 | 2013-8-15 08:54 | 显示全部楼层
谢谢大家的回复
已经排除软件问题
先已提交nuvoton华南技术支持解决

使用特权

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

本版积分规则

1

主题

5

帖子

1

粉丝