LPC1833单片系统,关闭外设时钟操作后,再也无法连机通信?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC1833单片系统,关闭外设时钟操作后,再也无法连机通信?

696 Views
9218sky
Contributor II

1. blinky project 正常运行的单片系统上,发觉功耗较大,偿试关闭外设的时钟。

2. 但下载完关闭外设时钟的代码后,悲剧发生了,原来正常运行的 BLINKY PROJECT 不会闪亮 LED 了,而且也无法连机(MDK 通过 ULINK)。

    关闭外设时钟代码如下(LPC17xx可以在MDK下操作外设时钟及电源控制, LPC18xx 却没有了):

void PerClk_Config(void) {

Chip_Clock_Disable(CLK_APB3_I2C1); 
Chip_Clock_Disable(CLK_APB3_DAC);

Chip_Clock_Disable(CLK_APB3_ADC0);
Chip_Clock_Disable(CLK_APB3_ADC1);
Chip_Clock_Disable(CLK_APB3_CAN0);
Chip_Clock_Disable(CLK_APB1_MOTOCON);
Chip_Clock_Disable(CLK_APB1_I2C0);
Chip_Clock_Disable(CLK_APB1_I2S);
Chip_Clock_Disable(CLK_APB1_CAN1);

Chip_Clock_Disable(CLK_SPIFI);
Chip_Clock_Disable(CLK_MX_SPIFI);
Chip_Clock_Disable(CLK_MX_LCD);
Chip_Clock_Disable(CLK_MX_ETHERNET);
Chip_Clock_Disable(CLK_MX_USB0);
Chip_Clock_Disable(CLK_MX_EMC);
 Chip_Clock_Disable(CLK_MX_SDIO);

 Chip_Clock_Disable(CLK_MX_DMA);
Chip_Clock_Disable(CLK_MX_USB1);
Chip_Clock_Disable(CLK_MX_EMC_DIV);

 Chip_Clock_Disable(CLK_MX_EEPROM);
 Chip_Clock_Disable(CLK_MX_WWDT);
Chip_Clock_Disable(CLK_MX_UART0);
Chip_Clock_Disable(CLK_MX_UART1);
Chip_Clock_Disable(CLK_MX_SSP0);
Chip_Clock_Disable(CLK_MX_TIMER0);
Chip_Clock_Disable(CLK_MX_TIMER1);
Chip_Clock_Disable(CLK_MX_RITIMER);
Chip_Clock_Disable(CLK_MX_UART2);
Chip_Clock_Disable(CLK_MX_UART3);
Chip_Clock_Disable(CLK_MX_TIMER2);
Chip_Clock_Disable(CLK_MX_TIMER3);
Chip_Clock_Disable(CLK_MX_SSP1);
Chip_Clock_Disable(CLK_MX_QEI);

Chip_Clock_Disable(CLK_USB0);
Chip_Clock_Disable(CLK_USB1);

// Chip_Clock_Disable(CLK_APLL);
Chip_Clock_Disable(CLK_APB2_UART3);
Chip_Clock_Disable(CLK_APB2_UART2);
Chip_Clock_Disable(CLK_APB0_UART1);
Chip_Clock_Disable(CLK_APB0_UART0);
Chip_Clock_Disable(CLK_APB2_SSP1);
Chip_Clock_Disable(CLK_APB0_SSP0);
Chip_Clock_Disable(CLK_APB2_SDIO);

return;
}

3. 转而想到 ISP 的操作上去,同样也无法连机。屈闷中。手头上只购得三片 MCU,已搞垮二片了。

4. 请问还有办法让 LPC1833 复活吗?需要怎样做?望知情的给于指导。谢谢。

Labels (1)
0 Kudos
3 Replies

477 Views
jeremyzhou
NXP Employee
NXP Employee

Hi ,

非常感谢使用NXP产品,很高兴为你提供技术支持!

你能分享一下用的代码工程或者介绍了你使用的工程来自哪里,然后具体操作哪些步骤才导致这样的问题,这样方便我这边复现一下你的问题。
Have a great day,

TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

477 Views
9218sky
Contributor II

您好

我的板子已成功恢复下载,仿真功能。

有关你提出的问题如下:

MDK 4.74, 并参考

"lpcopen_2_12_keil_iar_keil_mcb_1857\applications\lpc18xx_43xx\keil_uvision_projects\keil_mcb_1857\periph\periph_systick" 里面的工程,做了些更改。没有用原来板初始化代码, 我的工程里没有加载这二个文件"board_sysinit.c", "board.c"。

当时更改后,代码能正常的运行。后来尝试关闭外设操作减少功耗,在执行完 "systickinit();",后加入了上列的代码 。

sysinit_c 文件更改 1.jpg

sysinit_c 文件更改 2.jpg

sysinit_18xx_43xx_c 更改.jpg

祝愉快。

谢谢。

0 Kudos

477 Views
jeremyzhou
NXP Employee
NXP Employee

Hi ,

既然芯片恢复说明硬件没有问题,是软件方面导致的原因,请问你有用单步调试的办法锁定具体在哪一步或者哪一行的代码导致的问题出现的吗?
Have a great day,
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos