appleboy 发表于 2016-6-25 09:37:48

芯唐M0,错误的时钟操作会锁死吗?答,不会,详细见内。

本帖最后由 appleboy 于 2016-6-25 11:54 编辑

如下入的小板我拍了10个,一直没时间玩,现在想用一下,链接了JLINK,可以正常下载程序,当我的代码下载过之后,就再也无法链接JLINK了,连续测试2片都如此,

是不是我的代码配置错了某些寄存器呀?如果是STM32这种情况下只要是让代码运行前进行链接就可以了,但是这个芯唐怎么就无法链接呢?

即便控制复位端口也无效,救不活了?


感谢解答问题的热心网友,

使用NU LINK就好了

正确的配置如下

    SYS_UnlockReg();

    /* Enable IRC22M clock */
    CLK->PWRCON |=CLK_PWRCON_IRC22M_EN_Msk;
   
    /* Waiting for IRC22M clock ready */
    CLK_WaitClockReady(CLK_CLKSTATUS_IRC22M_STB_Msk);

    /* Switch HCLK clock source to*/
    CLK->CLKSEL0 &= ~CLK_CLKSEL0_STCLK_S_Msk;
    CLK->CLKSEL0 |=CLK_CLKSEL0_STCLK_S_Msk;

    /* Enable IP clock */      
    CLK->APBCLK |= CLK_APBCLK_UART_EN_Msk;                 // UART Clock Enable
   
    /* Select IP clock source */
    CLK->CLKSEL1 &= ~CLK_CLKSEL1_UART_S_Msk;
    CLK->CLKSEL1 |=CLK_CLKSEL1_UART_S_Msk;        // Clock source from external 12 MHz or 32 KHz crystal clock
                     
    /* Update System Core Clock */
    /* User can use SystemCoreClockUpdate() to calculate PllClock, SystemCoreClock and CycylesPerUs automatically. */
    SystemCoreClockUpdate();



http://www.amobbs.com/forum.php?mod=viewthread&tid=5644242&highlight=%E5%B0%8F%E6%9D%BF

appleboy 发表于 2016-6-25 09:43:30

void SYS_Init(void)
{
/*---------------------------------------------------------------------------------------------------------*/
/* Init System Clock                                                                                       */
/*---------------------------------------------------------------------------------------------------------*/
    /* Unlock protected registers */
    SYS_UnlockReg();

    /* Enable IRC22M clock */
    CLK->PWRCON &= ~CLK_PWRCON_IRC22M_EN_Msk;
    CLK->PWRCON |=CLK_PWRCON_IRC22M_EN_Msk;
   
    /* Waiting for IRC22M clock ready */
    CLK_WaitClockReady(CLK_CLKSTATUS_IRC22M_STB_Msk);

    /* Switch HCLK clock source to XTAL */
    CLK->CLKSEL0 &= ~CLK_CLKSEL0_HCLK_S_Msk;
    CLK->CLKSEL0 |=CLK_CLKSEL0_HCLK_S_Msk;

    /* Enable IP clock */      
    CLK->APBCLK |= CLK_APBCLK_UART_EN_Msk;                 // UART Clock Enable
   
    /* Select IP clock source */
    CLK->CLKSEL1 &= ~CLK_CLKSEL1_UART_S_Msk;
    CLK->CLKSEL1 |=CLK_CLKSEL1_UART_S_Msk;        // Clock source from external 12 MHz or 32 KHz crystal clock
                     
    /* Update System Core Clock */
    /* User can use SystemCoreClockUpdate() to calculate PllClock, SystemCoreClock and CycylesPerUs automatically. */
    SystemCoreClockUpdate();
               
/*---------------------------------------------------------------------------------------------------------*/
/* Init I/O Multi-function                                                                                 */
/*---------------------------------------------------------------------------------------------------------*/
    /* Set P1 multi-function pins for UART1 RXD and TXD*/
    SYS->P1_MFP &= ~(SYS_MFP_P12_Msk | SYS_MFP_P13_Msk);
    SYS->P1_MFP |=(SYS_MFP_P12_RXD | SYS_MFP_P13_TXD);

    /* Lock protected registers */
    SYS_LockReg();

}

wajlh 发表于 2016-6-25 09:50:26

不会锁死的,但是最好用nulink玩这个东西。

marshallemon 发表于 2016-6-25 09:50:46

配置成外部时钟了还玩啥?

appleboy 发表于 2016-6-25 09:56:25

marshallemon 发表于 2016-6-25 09:50
配置成外部时钟了还玩啥?

我焊接了外部晶振,现象依旧

appleboy 发表于 2016-6-25 10:21:35

第三个又报废了

    SYS_UnlockReg();

    /* Enable IRC22M clock */
    CLK->PWRCON &= ~CLK_PWRCON_IRC22M_EN_Msk;
    CLK->PWRCON |=CLK_PWRCON_IRC22M_EN_Msk;
   
    /* Waiting for IRC22M clock ready */
    CLK_WaitClockReady(CLK_CLKSTATUS_IRC22M_STB_Msk);

    /* Switch HCLK clock source to*/
    CLK->CLKSEL0 &= ~CLK_CLKSEL0_STCLK_S_Msk;
    CLK->CLKSEL0 |=CLK_CLKSEL0_STCLK_S_Msk;

    /* Enable IP clock */      
    CLK->APBCLK |= CLK_APBCLK_UART_EN_Msk;                 // UART Clock Enable
   
    /* Select IP clock source */
    CLK->CLKSEL1 &= ~CLK_CLKSEL1_UART_S_Msk;
    CLK->CLKSEL1 |=CLK_CLKSEL1_UART_S_Msk;        // Clock source from external 12 MHz or 32 KHz crystal clock
                     
    /* Update System Core Clock */
    /* User can use SystemCoreClockUpdate() to calculate PllClock, SystemCoreClock and CycylesPerUs automatically. */
    SystemCoreClockUpdate();

mcu5i51 发表于 2016-6-25 10:26:18

NUC 的没有NULINK,起动初始化前一定要延时1-2秒;
不会锁死,不过好像只能用NULINK上电解锁,我遇到过

appleboy 发表于 2016-6-25 10:29:10

mcu5i51 发表于 2016-6-25 10:26
NUC 的没有NULINK,起动初始化前一定要延时1-2秒;
不会锁死,不过好像只能用NULINK上电解锁,我遇到过 ...

谢谢,提供了重要信息了,我换NULINK看看

wmm20031015 发表于 2016-6-25 11:15:49

不会被锁的,把RST脚连上,重新烧程序

appleboy 发表于 2016-6-25 11:52:53

wmm20031015 发表于 2016-6-25 11:15
不会被锁的,把RST脚连上,重新烧程序

JLINK链接RST也不行,必须用NULINK

LVmcu 发表于 2016-6-25 12:23:07

新唐的M0还是不错的。

appleboy 发表于 2016-6-25 12:33:21

LVmcu 发表于 2016-6-25 12:23
新唐的M0还是不错的。

谈不到不错吧,刚出的时候我申请了一块板子,拿到手就放下了,一放就是好几年

主要问题就是芯片热,这么热的芯片功耗小不了的,也许几年过去了,有所改进了吧!

但是也没看到其亮点在哪

LVmcu 发表于 2016-6-25 12:38:00

appleboy 发表于 2016-6-25 12:33
谈不到不错吧,刚出的时候我申请了一块板子,拿到手就放下了,一放就是好几年

主要问题就是芯片热,这么 ...

我是这2年开始用的,主要就是PWM和AD功能能和现有设备的5V匹配,至于你说的发热问题没发现过。

appleboy 发表于 2016-6-25 12:41:34

LVmcu 发表于 2016-6-25 12:38
我是这2年开始用的,主要就是PWM和AD功能能和现有设备的5V匹配,至于你说的发热问题没发现过。 ...

说到点子上了,5V是兼容的优势

原来的芯片功耗很大的,现在确实没有明显温升了。

ysu_er 发表于 2016-6-25 15:22:10

M051我一直jlink没碰到过锁死的情况

appleboy 发表于 2016-6-25 18:13:28

ysu_er 发表于 2016-6-25 15:22
M051我一直jlink没碰到过锁死的情况

你一定是很精通这颗芯片,我不了解,而且也没看手册,直接就改了一下时钟,改成外部,内部都不能使用的状态了

用NULINK擦除后,我现在也是用JLINK来调试了,一切正常,只要记得不弄错时钟JLINK就没事,一旦弄错了时钟非NULINK不可,STM32还能通过复位呀,或者BOOT呀进行JLINK链接前的操作,这个芯唐你是怎么弄都不行,就得上独家的NULINK

abc220 发表于 2016-6-25 18:20:10

这个小板我也拍了一些,改天有空根据楼主的经验也试试。
页: [1]
查看完整版本: 芯唐M0,错误的时钟操作会锁死吗?答,不会,详细见内。