历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2020年02月12日 | STM32开发何使用STVP后就无法正常工作了

2020-02-12 来源:elecfans

前言

目前很多用户在使用 STM8 的时候使用了 16MHz 的内部振荡或者外部晶体来作为时钟源。事实上,STM8 家族中有些系列是支持最高 24MHz 主频的,比如 STM8S207、STM8AF52,等等。那么,需要更快的运行速度时,是否只需要使用更高的主频就可以直接运行了呢?


问题

某客户在其产品的设计中,使用了 STM8AF52A9。客户工程师称其一段以前已经验证过的代码,使用 STVP 下载后无法正常运行。但是他试过在 IAR for STM8 中是可以正常调试的,不知道为何使用 STVP 后就无法正常工作了呢?


调研

1.了解问题

使用编译好的.s19 文件使用 STVP 烧写到 STM8AF52A9,发现上电后是无法正常工作的。观察用户代码,在 IAR 中进入调试状态,可以断点调试,单步调试,都可以。不过,最后发现在线调试时,一旦运行到以下代码时,程序就死掉了。

status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE);

2.分析问题

STM8 上电后默认的主时钟源为内部 HSI RC 时钟的 8 分频,即 fHSI/8。原因是 HSI 时钟的稳定时间短,而 8 分频可保证系统在较差的 VDD条件下安全启动。等主时钟源稳定后,用户可以自行将主时钟切换到其他时钟源上。

先来看一下刚才这个函数的原型:

ErrorStatus CLK_ClockSwitchConfig(CLK_SwitchMode_TypeDef CLK_SwitchMode,CLK_Source_TypeDef CLK_NewClock, FunctionalState ITState, CLK_CurrentClockState_TypeDefCLK_CurrentClockState)

它的作用在于切换时钟源。CLK_SwitchMode 代表使用的切换方式,有自动切换和手动切换;CLK_NewClock 代表新的时钟源;ITState 代表是否使能或禁用中断;CLK_CurrentClockState 代表切换后原时钟源的状态是否保持或关闭。所以,用户代码的意思就是:使用自动切换方式,切换主时钟到 HSE,不产生中断,切换后原主时钟源关闭。


切换主时钟源后程序就出问题这种情况,看来问题很可能出在 HSE 上,必须对外部晶振进行检测。原本思考是否 HSE 外部晶体的振荡是否存在什么问题,但是在使用示波器进行检测后发现 HSE 已经是在正常的振荡当中了,而且波形很漂亮。但是,在示波器上看到频率是 24MHz。检查晶体上的标记,果然是 24MHz 的频率。所以,客户在使用 STM8AF52A9 时,为了提高性能,使用了最高主频 24MHz。


客户所遇到的问题应该就出在 24MHz 的使用上了。客户以前使用都是 16MHz 的主频。STM8 要求,如果用户使用的主时钟频率超过了 16MHz,那么 Flash 以及 EEPROM 的访问需要配置 1 个等待周期。


STM8AF52A9 数据手册可见如下:

参考手册 RM0016 在 HSE 的描述中,也提到了:

对于选择 0 等待周期还是 1 等待周期,必须在选项字节中选择。检查芯片的选项字节,发现选择的是 0 等待周期,所以问题就是就出在这了。


3.问题解决

使用 STVP,在 OPTION BYTE 页面修改选项字节,将等待周期设置为 1 个等待周期,如下:

下载更新芯片的选项字节,使用之前的.hex 文件,可以正常工作了。


结论

由于使用的 24MHz 主频已经超出 16MHz,而在选项字节中并没有修改等待周期为 1 等待周期,导致在 Flash 访问上存在问题,无法正常运行程序。


处理

需要修改选项字节,将等待周期修改为 1 等待周期。

推荐阅读

史海拾趣

Gowanda Electronics公司的发展小趣事

对于连续可调直流稳压电源电路,网友可能会有多个方面的问题,以下是一些常见问题及其解答:

一、技术原理与性能参数

  1. 问:连续可调直流稳压电源电路的工作原理是什么?
    : 连续可调直流稳压电源电路的工作原理主要是通过扩展开关电源的电压和电流容量,采用高频调制技术,将输入的交流电转换为直流电,并通过调节电路使输出电压稳定在一个可调范围内。其内部包含整流、滤波、稳压等多个环节,以提供稳定且可调的直流电压输出。

  2. 问:如何选择合适的连续可调直流稳压电源?
    : 选择连续可调直流稳压电源时,需要考虑的主要因素包括所需电压范围、电流容量、稳压精度、纹波噪声、保护功能等。同时,也需要根据应用场景考虑电源的体积、重量、散热性能等因素。

二、使用与维护

  1. 问:在使用过程中,输出电压不稳定怎么办?
    : 如果输出电压不稳定,可以首先检查电源输入电压是否稳定,使用稳压电源或变压器等辅助设备来保持输入电压的稳定。其次,检查输出端电压设置是否正确,确保输出电压值在设定范围内。最后,检查电源输出端负载是否符合规定,避免负载过重或过轻导致输出电压波动。

  2. 问:如何对连续可调直流稳压电源进行日常维护?
    : 日常维护主要包括检查电源输入输出线路的连接是否牢固,清洁电源外壳和散热风扇上的灰尘,以及定期检查电源的工作状态和性能指标。如果发现异常或故障,应及时进行处理或更换损坏的部件。

三、故障排查与解决

  1. 问:电源无法输出电压或电流怎么办?
    : 如果电源无法输出电压或电流,可以首先检查电源输入电压是否正常,电源本身是否损坏。其次,检查电源输出端连接是否正确,是否存在开路或短路的情况。最后,检查电源是否过载或短路,确保电源在正常工作范围内。

  2. 问:电源输出电压波动大怎么办?
    : 输出电压波动大可能是由于电源输入电压不稳定、输出端负载不匹配或存在电磁干扰等原因造成的。解决方法包括稳定输入电压、匹配适当的负载、检查并消除电磁干扰源等。

四、扩展与升级

  1. 问:如何扩展连续可调直流稳压电源的电压和电流范围?
    : 扩展电压和电流范围通常需要根据具体的电源设计来进行。一般来说,可以通过更换更高功率的整流管、滤波电容和稳压元件等方式来提升电源的电压和电流容量。同时,也可以通过增加并联或串联电路的方式来实现电压和电流的分档调节。

  2. 问:如何进行电路的升级和改造?
    : 电路的升级和改造需要根据实际需求和技术能力来进行。在升级过程中,需要注意保持原有电路的稳定性和可靠性,避免引入新的故障点。同时,也需要关注新技术的发展和应用,以便在升级过程中采用更先进、更高效的电路设计方案。

以上是针对连续可调直流稳压电源电路的一些常见问题及其解答。希望这些信息能够对网友有所帮助。

法思特(FAST)公司的发展小趣事
在操作过程中应遵守相关安全规定,确保人员和设备的安全。
品赞(G-Switch)公司的发展小趣事
电路结构相对简单,易于实现和维护。
Display Engineering Services公司的发展小趣事
能够快速响应电源断相故障,有效防止设备损坏。
聚辰(Giantec)公司的发展小趣事

港源公司深知品质是企业生存之本。公司先后通过了ISO9001质量管理体系认证、ISO14001环境体系认证、ISO45001职业健康安全管理体系认证以及IATF16949汽车质量体系认证等国际权威认证。这些认证不仅证明了港源公司在品质管理方面的卓越能力,还为公司赢得了国内外客户的广泛信赖和好评。港源公司坚持“诚信、创新、和谐、共赢”的企业核心价值观,致力于为客户提供高品质、高可靠性的产品和服务。

强盛电子(AEC)公司的发展小趣事

随着环保意识的日益增强,AEC积极响应国家绿色发展的号召,将环保理念融入企业的日常运营中。公司投入大量资金进行环保技术的研发和应用,推动生产过程的绿色化、低碳化。同时,AEC还积极参与社会公益活动,为保护环境、促进可持续发展贡献了自己的力量。

问答坊 | AI 解惑

求助 怎样控制3.5 TFTLCD

        手头有一块3.5寸的TFTlcd,想用来做示波器屏幕, 想用atmega16单片机来控制, 发现avr单片机控制的频率太低了,屏幕刷新太慢了,弄不好, 大家说说用什么来控制好呢?…

查看全部问答>

请问用Source Insight怎么看bootloader里的代码流程

不知道大家分析代码用到什么工具,听说Source Insight好用,下了一个但是不太会用,哪位大侠用过的告诉在下一声,怎么看bootloader里的代码流程?…

查看全部问答>

横屏时工具栏显示位置?

WM5.0  PPC 程序 竖屏时候工具栏显示在最下方 现在想要在横屏时候,事工具栏显示在最右边 该怎么做?…

查看全部问答>

【DIY新作】LED点阵时钟.3种字体.4种动画.自动旋屏.GPS校时【附原理图】

    半年来一直在 DIY 辉光管、荧光管的时钟,其实算来,我最早DIY的时钟是LED点阵的。     时隔3年,再次汇集这段时间以来的想法,重新DIY了一款简洁、实用、功能完备的LED电子时钟。   ...…

查看全部问答>

我有两块“LatticeXP2 Brevia开发套件”闲置有需求者联系qsjit@163.com

我有两块“LatticeXP2 Brevia开发套件”闲置有需求者联系qsjit@163.com …

查看全部问答>

WIN7 64位安装FSSDC-9B506 Mlink驱动

因驱动光盘里附带的MLink驱动不支持在WIN764位系统下安装 为此我花了不下一整天的时间来解决MLINK驱动的问题 最后换了32位Windows Server 2008总算可以使用 可实在不甘心一个64位硬件跑个32位版本的系统在同事的帮助下我安装了微软自带的虚拟XP ...…

查看全部问答>

本人转让一块郭天祥TX-1C单片机学习板,可以在淘宝交易,要的进来,学习视频都有

因为我现在暂时要出去,本人转让一块郭天祥TX-1C单片机学习板,完全兼容他的视频。我买来是花了198玩了没几天。。。可以在淘宝交易,要的进来,学习视频都有,要的去看看,很便宜http://item.taobao.com/item.htm?id=16276203504…

查看全部问答>

AN1165 MEMS麦克风前置放大器电路

用于MEMS麦克风前置放大器电路的运算放大器 …

查看全部问答>

我做蓝牙控制小车 现在没法控制 求大侠指点

我现在做手机蓝牙控制小车,现在车身已经安装好了 程序也是好的,通过电脑串口可以控制单片机来控制小车,我买的HC06蓝牙模块通过TTL也可以和电脑串口发送命令,但是我把蓝牙模块连接到51单片机上后手机蓝牙发送命令就是没法控制单片机,求求哪位大 ...…

查看全部问答>