你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

时钟树变更之后下载程序

[复制链接]
JQChirs 提问时间:2019-3-15 19:17 /
  原先原理图第一版上的晶振是8M,程序上配置的PLL_M为8。后来做第二版原理图的时候板子上的晶振选的是24M,但是!
  但是!
  程序没有改,PLL_M还是8,也就是说整个时钟树上面的时钟翻了3倍。如下图所示。
时钟树.PNG
         现在出现的问题就是IAR JLINK下载程序,就会报出connecting to cpu via connect under reset failed。我们试了好几个板子,都是因为下了8M的程序,我估计是因为单片机的时钟和下载器产生矛盾了,急问现在这个问题如何去解决。。。。


收藏 评论6 发布时间:2019-3-15 19:17

举报

6个回答
JQChirs 回答时间:2019-3-15 19:25:16
现在10几台设备,如果程序擦不掉的话,我估计就要干掉板子上的晶振或者单片机了。领导黑脸中。。。。
wenyangzeng 回答时间:2019-3-15 19:51:44
本帖最后由 wenyangzeng 于 2019-3-15 19:57 编辑

这个倍频系数一定要重新分配一下的。举手之劳,以免留下后患。

无标题.png

  1. void SystemClock_Config(void)
  2. {

  3.   RCC_OscInitTypeDef RCC_OscInitStruct;
  4.   RCC_ClkInitTypeDef RCC_ClkInitStruct;

  5.     /**Configure the main internal regulator output voltage
  6.     */
  7.   __HAL_RCC_PWR_CLK_ENABLE();

  8.   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  9.     /**Initializes the CPU, AHB and APB busses clocks
  10.     */
  11.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;
  12.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  13.   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  14.   RCC_OscInitStruct.HSICalibrationValue = 16;
  15.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  16.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  17.   RCC_OscInitStruct.PLL.PLLM = 12;
  18.   RCC_OscInitStruct.PLL.PLLN = 180;
  19.   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  20.   RCC_OscInitStruct.PLL.PLLQ = 4;
  21.   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  22.   {
  23.     _Error_Handler(__FILE__, __LINE__);
  24.   }

  25.     /**Activate the Over-Drive mode
  26.     */
  27.   if (HAL_PWREx_EnableOverDrive() != HAL_OK)
  28.   {
  29.     _Error_Handler(__FILE__, __LINE__);
  30.   }

  31.     /**Initializes the CPU, AHB and APB busses clocks
  32.     */
  33.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  34.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  35.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  36.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  37.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  38.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  39.   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  40.   {
  41.     _Error_Handler(__FILE__, __LINE__);
  42.   }

  43.   HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);

  44.     /**Configure the Systick interrupt time
  45.     */
  46.   HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  47.     /**Configure the Systick
  48.     */
  49.   HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  50.   /* SysTick_IRQn interrupt configuration */
  51.   HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
  52. }
复制代码


评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

七哥 回答时间:2019-3-16 00:16:18
JLINK下载程序跟你的晶振设置没有必然关系,下载程序时不用外部晶振。
理论上讲,只要接了复位管脚,无论什么时候都能进入下载模式。程序下载完,能不能跑得起来,这个跟晶振和时钟设置是有关系的,不能错。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

JQChirs 回答时间:2019-3-19 09:37:09
toofree 发表于 2019-3-16 00:16
JLINK下载程序跟你的晶振设置没有必然关系,下载程序时不用外部晶振。
理论上讲,只要接了复位管脚,无论什 ...

我JLINK采用的是SWD下载方式,从我下载的方式来看,我试了好几块板子,只要从在24M晶振的代码上下了8M
的程序,全部挂掉。全都是Reset failed。
JQChirs 回答时间:2019-3-19 09:49:26
jqchris 发表于 2019-3-19 09:37
我JLINK采用的是SWD下载方式,从我下载的方式来看,我试了好几块板子,只要从在24M晶振的代码上下了8M
的 ...

而且我的JLINK是两线制的,没有复位引脚。
七哥 回答时间:2019-3-19 10:03:55
本帖最后由 toofree 于 2019-3-19 10:06 编辑
jqchris 发表于 2019-3-19 09:37
我JLINK采用的是SWD下载方式,从我下载的方式来看,我试了好几块板子,只要从在24M晶振的代码上下了8M
的 ...

可以肯定的是,外部晶振跟下载程序半毛钱关系没有。
把你的过程详细描述一下吧,多上点图片。
下载程序有很多步操作,连接、擦除、下载、校验。下载完成后,复位跑程序。你到底挂在哪一步了?
在STM32CubeMX建工程时,一定要把SWD打开着。否则如果不开的话,第一次下载没有影响,下次就连不上了。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版