打印
[技术问答]

HC32F136K8 无法连接到芯片

[复制链接]
777|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jyrpxj|  楼主 | 2021-5-14 03:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
仿真器:cmsis_DAP
芯片:HC32F136K8

排除仿真器问题,电路问题,电脑软件驱动问题

程序:
main()
{
  uint32_t k;  

  App_PortCfg();  //IO口设置 无关紧要
  App_PLL40MHZ();  //时钟设置

  while(1)
  {
     k=Sysctrl_GetHClkFreq();

  }

}


void App_PLL40MHZ(void) //时钟切换至RCH>>(XT8M>>PLL40M)   
{
  stc_sysctrl_pll_cfg_t stcPLLCfg;
  stc_sysctrl_clk_cfg_t stcCfg;
  Flash_WaitCycle(FlashWaitCycle1);
  
  Sysctrl_SetXTHFreq(SysctrlXthFreq6_12MHz);
  Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);
  Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);
  Sysctrl_ClkSourceEnable(SysctrlClkXTH, TRUE);
  
  stcPLLCfg.enInFreq    = SysctrlPllInFreq6_12MHz;   //8MHz
  stcPLLCfg.enOutFreq   = SysctrlPllOutFreq36_48MHz;  //PLL 输出48MHz
  stcPLLCfg.enPllClkSrc = SysctrlPllXthXtal;              //输入时钟源选择TXH
  stcPLLCfg.enPllMul    = SysctrlPllMul5;             //8MHz x 5 = 40MHz
  Sysctrl_SetPLLFreq(&stcPLLCfg);
  Sysctrl_SetPLLStableTime(SysctrlPllStableCycle16384);
  Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);
  
  Sysctrl_SysClkSwitch(SysctrlClkPLL); //时钟切换 句A


  //块B起
  stcCfg.enClkSrc    = SysctrlClkPLL;
  stcCfg.enHClkDiv   = SysctrlHclkDiv1;
  stcCfg.enPClkDiv   = SysctrlPclkDiv1;
  Sysctrl_ClkInit(&stcCfg);    // 将句A换为块B部分后,再也无法连接到芯片了,怎么回事

  //块B止
}

使用 句A 发现问题:
PCLK_PRS 会莫名其妙变为3   8分频

HCLK_PRS 会莫名其妙变为7  128分频

我的想法是外部TXH晶振8M  PLL 5倍 至40MHZ  结果却是40M/128=312500HZ, 为什么配置会自己变?


将句A改为块B 芯片就再也无法连上了,也无法擦除。

已经这样搞坏了两块板上的芯片,手头样片不多了。求助!




使用特权

评论回复
沙发
wukaili666| | 2021-5-14 09:22 | 只看该作者
看一下时钟切换的例程吧

使用特权

评论回复
板凳
HuangHongLun| | 2021-5-15 09:31 | 只看该作者
那样操作会锁死芯片的吗?应该是你把主频配置乱了。应该是可以擦除的吧,用jlink进行擦除。

使用特权

评论回复
地板
huquanz711| | 2021-5-17 07:13 | 只看该作者
看下官方操作例程

使用特权

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

本版积分规则

8

主题

45

帖子

1

粉丝