首页 » 互联网 » stm32单片机,RAM,MCUXpresso,模拟开关以及Buck芯片技能文章分享_措辞_运算放年夜器

stm32单片机,RAM,MCUXpresso,模拟开关以及Buck芯片技能文章分享_措辞_运算放年夜器

admin 2024-11-27 20:39:48 0

扫一扫用手机浏览

文章目录 [+]

问题:stm32单片机编程用库函数好还是寄存器好?

我学单片机已经四年了,用的一贯是标准库函数。

stm32单片机,RAM,MCUXpresso,模拟开关以及Buck芯片技能文章分享_措辞_运算放年夜器 stm32单片机,RAM,MCUXpresso,模拟开关以及Buck芯片技能文章分享_措辞_运算放年夜器 互联网

库函数和寄存操作到底哪个好,这个不好说,只能说根据个人情形和运用处所吧。
比如说我,虽然说我一贯用的是标准库函数,但是我也不但是用标准库,偶尔在须要的时候会用寄存器操作,由于寄存器操作的效率更高。

stm32单片机,RAM,MCUXpresso,模拟开关以及Buck芯片技能文章分享_措辞_运算放年夜器 stm32单片机,RAM,MCUXpresso,模拟开关以及Buck芯片技能文章分享_措辞_运算放年夜器 互联网
(图片来自网络侵删)

库函数和寄存器操作的差异可能和 C 措辞与汇编措辞的差异差不多吧,都是跟效率有关,但有时候效率并不是唯一指标。

我们都知道 C 措辞的效率要比汇编低,但是现在绝大多数嵌入式开拓职员用的还是 C 措辞!
为什么,由于它大略易学,随意马虎跨平台,移植性好,这是很大的上风,而汇编就不同了,它针对的是某一款内核进行开拓,比如51汇编措辞、ARM汇编措辞,一旦内核变了,如果你的代码采取纯汇编写的代码,那险些所有的代码都不适用了。
但是利用 C 措辞编写代码就不同,你在 51 单片机写的代码也能在 STM32 单片机中利用,你要做的事情便是把涉及到底层硬件的代码轻微修正一下就可以了,这种事情量很少,你的代码写得足够好的话,是很随意马虎的,这称之为移植。
那为什么 C 措辞可以做到跨平台呢?

我们知道单片机终极还是要通过汇编措辞实行的,所有的C 措辞实在都会通过编译器进行转化的,也便是说你写的 C 措辞程序会经由一种称为编译器的东西转为对应的汇编措辞,比如说你的 C 措辞程序要运行在 51 单片机上,你就要用对应的编译器编译,如果要运行在 STM32 上,你也要用另一个对应的编译器才行,这便是 C 措辞能跨平台的秘密!
跨平台的事情是交给了编译器,而不是说 C 措辞真的能直接在各种单片机上运行!

但是真正的单片机程序并不是只有 C措辞的,在进入 C 的天下之前,实在是有一段代码的,这称之为启动代码,但是这段代码很少!

库函数和寄存器的差异也是如此,库函数类似于 C 措辞,而寄存器就类似于汇编。

利用库函数的好处便是你不用深入每一个寄存器操作的细节,而是把事情重心放在功能实现上。
所有的寄存器细节都由封装好的函数去实现,你要做的便是合理的调用它。
但也正由于细节进行了封装,以是在编写库函数的时候会考虑更多,这就会导致库函数的代码比较臃肿,效率比较低下,但是它的好处便是方便移植、修正,便是说纵然库函数代码真涌现了问题,你也只是找对应的函数进行修正就可以了,其他的函数基本可以不用动……

查看原文:https://www.dianyuan.com/eestar/article-7894.html

RAM 目标与多工程空间

RAM 目标

我们都知道,FLASH 下载次数是有限定的,虽然对一个项目来说,一个芯片下载次数完备够项目的开拓利用,但有的开拓板会进行很多项目的测试功能,比如我就有一个开拓板,将所有的 I/O 引脚都引出来了,很多功能我都可以通过杜邦线连接来进行测试,非常方便。
但也正由于如此,以是几年下来可能会在这个开拓板上烧写不知多少次,很可能某一天就把 FLASH 给烧坏了,这样一来芯片就没用了。
你可能会说,不怕,我的焊工好,焊一个芯片分分钟的事情,但是你考虑焊盘的感想熏染吗?焊盘经不起你多少次焊接可能就废了,而且也不是随时随地都有芯片和焊接工具给你焊接啊。
以是最好的办法便是利用 RAM 下载功能。

RAM 下载最大的好处便是下载次数无限,以是你可以使劲考试测验各种可能,直到成功为止,根本不必考虑烧写次数问题,但是也有缺点。

我们知道 STM32 分为 FLASH 和 RAM 两部分空间,本来 RAM 专门用来存放数据的,FLASH 用来放代码和不变的数据,现在好了,所有的代码和数据都放在 RAM 中,而 RAM 的空间一样平常来说不是很大,以是一些大的项目是无法利用 RAM 的方法存储的,只能对一些小项目或者功能进行测试。
而且原来分了两条总线对 FLASH 和 RAM 进行分别访问(哈佛构造),效率高,现在只能通过一条总线(该当是一条总线吧,也可能还是有两条总线同时访问)访问一个目标 RAM,效率可能低落。
但这些缺陷不是很明显,毕竟下载次数无限的诱惑力还是相称大的。
以是有必要新增一个专门用来功能测试的目标,这样你就可以尽情的测试了!

和建立 FLASH 目标一样,不过不同的是现在以 FLASH 作为模板创建新的 RAM 目标,这是由于 FLASH 目标已经具有下载功能了。

详细如何建立 RAM 目标可以参考 RAM 下载这一小节内容。
除了多了几个目标之外,其他设置都是类似的。
但是由于这个条记是良久之前写的(也可能是哪里摘抄的,不记得了),觉得写的不是很好,所往后期我会根据这个内容再重新整理,如果等不及的话的可以自行考试测验。

须要把稳一点的便是,由于所有的代码都是下载在 RAM 中的,以是不能利用复位按钮,由于一旦进行复位,那么程序就会跳转到FLASH 区进行实行,导致无法再实行到 RAM 中的程序里面,以是暂时不能利用复位按钮。
但是这个问题是可以办理的,后期我会在整理的 RAM 下载小节中先容这个方法。

以是有了前面的根本,再建立一个 RAM 目标是很大略的事情。
感兴趣的可以自行考试测验,实在弗成就等着我的条记出炉吧。

多工程

多目标办理了同一个芯片下不同功能代码的问题,现在还有一个问题便是如何管理不同芯片下的代码呢?比如 STM32F1 和 STM32F4 单片机是两个不同工程,他们的关系不再是多目标的关系,而是不同工程的关系,又该如何呢?这个时候就须要利用多工程的功能进行管理了。

怎么做呢?

首先建立一个多工程空间:

然后在不同工程文件夹下建立多工程空间:

然后将你须要的工程加入到这个空间当中进行管理……

查看原文:https://www.dianyuan.com/eestar/article-7895.html

超级下载算法在MCUXpresso IDE下的利用

痞子衡主导的"学术"项目 《RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计》 v1.0 版发布近 6 个月了,部分客户已经在实际项目开拓调试中用上了这个超级下载算法,目前反馈还可以,但这个超级下载算法远未到成熟状态,痞子衡正在策划 v2.0 版本。

RT-UFL v1.0下载地址:https://github.com/JayHeng/RT-UFL/archive/refs/tags/v1.0.zip

超级下载算法 RT-UFL v1.0 版本紧张针对 Segger J-Link 调试器,开拓测试也都是在 J-Link Commander 和 J-Flash 软件下进行的,但实在它也适用各大常用 IDE,本日我们就来聊聊它在 MCUXpresso IDE 下的利用:

一、准备测试环境

首先须要准备好测试环境,包含必要的软件和硬件,痞子衡的环境如下:

集成开拓环境:MCUXpresso IDE v11.4.0_6224,点此下载

软件开拓包:SDK_2.10.0_EVKB-IMXRT1050(Toolchain需包含MCUXpresso IDE),点此下载

软件驱动:J-Link driver v6.86f,点此下载

硬件工具:J-Link Plus调试器

硬件开拓板:MIMXRT1050-EVKB (Rev.A1)

二、在MCUXpresso IDE下利用步骤

2.1 将超级下载算法包打进J-Link驱动

第一步实在跟 MCUXpresso IDE 无关,由于是基于 J-Link 的超级下载算法,以是要给 J-Link 软件驱动先打个更新包,详细参照 《超级下载算法RT-UFL v1.0发布,附J-Link下安装教程》 一文。

Note: MCUXpresso IDE 安装过程中会顺便在 C:\Program Files (x86)\SEGGER\JLink 路径下安装一个默认的 J-Link 驱动(版本不可控,该当是跟 MCUXpresso IDE 匹配的),但为了避免不可预见的问题发生,最好自己手动安装一个明确的 J-Link 驱动版本来利用(痞子衡安装在了 C:\tools_mcu\SEGGER\JLink_V686f)。

2.2 利用MCUXpresso IDE导入一个SDK工程

然后我们须要一个 MCUXpresso IDE 工程,参照 《MCUXpresso IDE下SDK工程导入与workspace管理机制》 一文,这里我们导入了 \SDK_2.10.0_EVKB-IMXRT1050\boards\evkbimxrt1050\demo_apps\led_blinky 工程。

2.3 在SDK工程设置里指定包含超级下载算法的J-Link驱动

前面讲了,在安装 MCUXpresso IDE 时会同时安装一个默认 J-Link 驱动,MCUXpresso IDE 会默认调用这个驱动,我们须要在 MCUXpresso IDE 里重设 J-Link Server 路径,指向打了超级下载算法的 J-Link 驱动。

2.4 确保板卡处于Flash启动模式且SDK工程能够XIP

现在可以将板卡供上电,确保板卡处于 NOR Flash 启动模式(Boot Mode 以及 Boot Cfg 要设置精确),然后再检讨一下 MCUXpresso IDE 工程里的 Flash 启动头是否与板卡上的实际 Flash 型号相匹配……

查看原文:https://www.dianyuan.com/eestar/article-7810.html

仿照开关掌握运算放大器增益

本日在合宙的"大众年夜众号上看到了一个基于Air的手持示波器,然后我就顺道看了一下,在里面看到了一个仿照开关掌握运算放大器增益的运用,分享给各位同好,供各位同好参考。
这个还是比较常见的,在一些动态调度量程或者什么的运用都会用得到。
这种动态调度运算放大器增益的方法在一些书里也有写,例如下图:

那么首先还是看一下负压供电部分,这个和之前的7912负压LDO不一样,这个用的是圣邦微的SGM3204电荷泵电源芯片,输入电压范围1.4~5.5V,输出电压范围-1.4~-5.5V,最大输出电流200mA,供各位同比如较参考。

然后便是本日要重点先容的动态掌握运算放大器增益的一个思路:用仿照开关去掌握反馈电阻,电路图如下:

电路事理:用单片机的管脚去掌握Z输出端-INA和哪个Y输入端连接。
下图是74HC4051的真值表,还是很好理解的,当单片机掌握S2,S1,S1都为低电平 000 的时候,Y0和Z导通;当单片机掌握S2,S1,S0都为001 的时候,Y1和Z导通;以此类推(有点像三八译码器哈哈)。

那么就看一下S2,S1,S0为000的情形吧,在这种情形下,Y0和Z相通,运算放大器部分就变为了下图,运算放大器变为2倍的同比较例放大器:

再看一下S2,S1,S0为001的情形,此时Y1和Z导通,此时在仿照开关的掌握下,运算放大器等效为下图,此时放大倍数为4倍:

剩下的几种情形就不赘述了,相信各位同好可以自己打算出来。
然后再看一下这个运算放大器的电源部分串联了一个小电阻,构成了一个RC低通滤波器,这个也可以更好的抑制电源里的,或者是来自外部的高频噪声。

然后第一级的两个二极管是为了做钳位,防止过压输入破坏运算放大器……

查看原文:https://www.dianyuan.com/eestar/article-7914.html

【把稳事变】Buck芯片改buck-boost产生负压

在事情中,有时会用到负压,例如运算放大器有时为了让其能更好的轨到轨输出(例如之前举的例子就算是轨到轨运放,也不能完备输出0V,会有几mV),会为运算放大器供应负压供电,让他能真正的输出0V(点击图片可跳转)。
或者便是一些LCD驱动也会用到负压,等等等等。

那么产生负压的办法也有很多,例如前几天写的示波器的负压,有用负压LDO(7912)的,也有用电荷泵芯片的,也有二极管和电容搭的比比皆是。
那么本日就给大家供应另一个思路,便是Buck芯片改Buck-boost供应负压。

在实际电路设计当中,开关电源 DC-DC 的运用非常广泛,个中以降压 Buck 电路最为常见,以 12V转5V为例,其范例拓扑构造如下图所示。
其输入电压 VIN,输出电压 VOUT 和占空比之间的关系为

VOUT=DVIN

那么只要稍稍改变,就可以将Buck拓扑改为Buck-boost,输出电压和占空比之间的关系为

VOUT=-VIND/(1-D)

TI 也有专门的正压转负压电源芯片可以直策应用,如 TPS63710、 LMR70503 等,其运用电路更为大略,方便利用。
由于Buck改Buck-boost的话,一些管脚,例如EN或者是PG管脚的掌握/输出须要分外处理,如下图。

Buck做Buck-boost把稳事变:1.输入端电容接GND,只管即便不要接Vout。
如果接到Vout,则须要外接肖特基二极管做输入电源回流(图中的D1)。

2.把稳芯片的电压输入范围会变小。
由于芯片的参考变为了负压输出,以是芯片的输入电压范围须要减去Vout。

3.把稳最大输出电流,达不到Buck的最大输出电流……

查看原文:https://www.dianyuan.com/eestar/article-7915.html

更多精彩内容,尽在电子星球 APP(https://www.eestar.com/)

六篇技能文章,让你秒懂电容的脾气秉性

七篇DIY技能文章献给你,让你脑洞全开

五篇文章帮你开启DSP的学习思路

汇总篇:关于PID知识,重点在此

标签:

相关文章

好书推荐:《芯片简史》_芯片_本书

这些器件的发展就像一颗种子萌芽,逐渐演化成了双极型晶体管、MOS场效应晶体管、光电二极管等,并集成到一起,构成了各种芯片。本书还先...

互联网 2025-01-22 阅读0 评论0