单片机

接口电路的设计在电单片机应用场合中还是很重要的,因为如果接口电路没有设计好,严重就会烧芯片,或者烧芯片IO口,轻者就会导致工作紊乱,工作不正常。

有时候这种问题自己在设计调试的时候根本发现不了,在批量生产或者用户在使用的时候才出现芯片被烧掉,或者IO口被烧掉。如果我们在设计的时候能考虑到接口的一些问题就可以减少,提高产品的可靠性。

下面我们就从电流倒灌问题和电平匹配问题进行叙述。

电流倒灌

1、概念

倒灌就是电流流进IC内部,电流总是流入电势低的地方。比如说电压源,一般都是输出电流,但是如果有另一个电源同时存在,并且电势高于这个电源,电流就会流入这个电源,称为倒灌。

2、危害

1)电流太大会将使IO口上的钳位二极管迅速过载并使其损坏。

2)会使单片机复位不成功。

3)会使可编程器件程序紊乱。

4)会出现闩锁效应。

3、原因

1.jpg

如上图,STM32的IO口框图。

当两个单片机进行串口通信,如果其中一个单片机断电,另一个单片机继续供电,正常运行。那么没有断电的单片机的IO口给断电的单片机的IO口供电,并同通过上拉保护二极管向断电的单片机进行供电。或者说两个单片机供电电压不一样,电流就会从供电高的一方流向供电低的一方。

4、解决办法

2.jpg
如上图,加一个小电阻,可以防止过流损坏二极管D1。还可以进行阻抗匹配,因为信号源的阻抗很低,跟信号线之间阻抗不匹配,串上一个电阻后,可改善匹配情况,以减少反射,避免振荡等。也可以减少信号边沿的陡峭程度,从而减少高频噪声以及过冲等。但不能解决灌流在Vcc上建立电压。一般情况下就会选择串电阻,取值范围是几欧到1K欧,根据实际情况而定,小编我喜欢取330欧。
3.jpg

如上图,在信号线上加二极管D3及上拉电阻R1,D3用于阻断灌流通路,R1解决前级输出高电平时使G1的输入保持高电平。

此方法既可解决灌流损坏二极管D1的问题,又可解决灌流在Vcc上建立电压。缺点只适用于速率不快的电路上。如果单片机IO口比较脆弱,或者两边电压不也一样需要低成本进行电平转换,且是但一方向,速率比较低(比如串口)的时候就可以选择该方案。二极管要选择肖特基二极管才比较好。

电平转换

在电路设计过程中,会碰到处理器MCU的I/O电平与模块的I/O电平不相同的问题,为了保证两者的正常通信,需要进行电平转换。如果两边的电平不一样就直接连接进行通信,像TTL电平就会出现上一节将的那样电流倒灌现象。

设计电平转换电路需要几个问题:

(1)VOH>VIH;VOL<vil

4.png

各种电平的电压范围,如上图。

(2)对于多电源系统,某些器件不允许输入电平超过电源电压,针对有类似要求的器件,电路上应适当做些保护。

(3)电平转换电路会影响通信速度,所以使用时应当注意通信速率上的要求。

1、NPN三极管电平转换

5.jpg

这个电平转换就是两级三极管电路组成。三极管只能单向进行转换,而且元器件比较多。

2、NMOS电平转换

6.jpg
该电路可实现双向传输,使用条件是VCC2>VCC1+0.7V,这个电路也是小编我常用的电路。

其工作过程是:

Port1向Port2传输:

(1)Port1高电平时,NMOS的Ugs=0V截止,Port2端的电压为VCC2高电平。

(2)Port1低电平时,NMOS的Ugs=3.3V导通,Port2端的电压为Port1端的电压低电平。

Port2向Port1传输:

(1)Port2高电平时,NMOS的Ugs=0V截止,Port1端的电压为VCC1--高电平。

(2)Port2低电平时,NMOS的体二极管导通,使得Vs的电压为0.7V左右,那么Ugs=VCC1-0.7V,只要选择的开启电压小于Ugs电压就可以让MOS管导通,Port1端的电压为Port2端的电压--低电平。

3、使用专用电平芯片转换电平

使用专用的电平转换芯片,分别给输入和输出信号提供不同的电压,转换由芯片内部完成,例如PCA9306DCTR等电平转换芯片。专用芯片是最可靠的电平转换方案。

7.png

优势:

1) 驱动能力强:专用芯片的输出一般都使用了CMOS工艺,输出驱动10mA不在话下。

2) 漏电流几乎为0:内部是一些列的放大、比较器,输入阻抗非常高,一般都达到数百K。漏电流基本都是nA级别的。

3) 路数较多:专用芯片针对不同的应用,从2路到数十路都有,十分适合对面积要求高的场合。

4) 速率高:专用芯片由于集成度较高,工艺较高,,速率从数百K到数百M的频率都可以做。

劣势:

1) 成本:专用芯片集众多优势于一身,就是成本是最大的劣势,一个普通的数百K速率的4通道电平转换芯片,价格至少要1元人民币以上,如果使用三极管做,成本2毛钱都不到。

8.jpg
4、使用电阻分压转换电平
9.jpg

优势:

1) 便宜:便宜是最大的优点,2个电阻一分钱不到;

2) 容易实现:电阻采购容易,占用面积小。

劣势:

1) 速度:分压法为了降低功耗,使用K级别以上的电阻,加上电路和器件的分布和寄生电容,速率很难上去,一般只能应用于100K以内的频率。

2) 驱动能力:由于使用了大阻值的电阻,驱动能力被严格控制,并不适合需要高驱动能力的场合,例如LED灯等

3) 漏电:漏电是该方案最大的缺点,由于通过电阻直连,左右两端的电压会流动,从而互相影响。例如,RS232接口采用该方案,上电瞬间外设就给主芯片提供2.8V的电平,轻则影响时序导致主芯片无法启动,重则导致主芯片闩锁效应,烧毁芯片。

5、使用电阻限流转换电平

10.jpg

优势:

1) 便宜:便宜是最大的优点,只需要一个电阻就解决。

2) 容易实现。

劣势:

1) 电阻选值不是很容易选择,需要对芯片内部很熟悉。

6、使用二极管转换电平

11.jpg

优势:

1) 漏电流小:由于二极管的漏电流非常小(uA级),可以单向防止电源倒灌,防止电流倒灌。

2) 容易实现。

劣势:

1) 电平误差大:主要是二极管的正向压降较大,容易超出芯片的工作电压范围。

2) 单向防倒灌:只能单向防止倒灌,不能双向防止倒灌。

3) 速度和驱动能力不理想:由于电阻限流,驱动速度和能力均不理想,只能应用在100K以内的频率。

来源:STM32嵌入式开发

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 36

作为使用RX单片机进行逆变器控制的应用,以UPS为例对基于MCU的电源控制可行性进行介绍。

RX-T系列主要应用于空调室外机和工业逆变器,在逆变器控制领域享有盛誉。近年来,还广泛用于UPS、太阳能逆变器和EV充电器等电源控制应用中。本次以UPS电源控制应用为例,对基于MCU实现的电源控制进行介绍。UPS是一种具有以下三大功能的设备,是表现MCU控制电源基础功能的最佳设备。

UPS功能

  • AC-DC转换器(以下简称AC-DC),包括将市电转换为直流电源的PFC

  • DC-DC转换器(以下简称DC-DC),用于将高压直流电源转换为低压直流电源,并充电到电池,或将低压直流电源的电池电源放电,并转换为高压直流电源

  • DC-AC逆变器(以下简称DC-AC),可将直流电源转换为交流电源,以支持电源插座连接型电子设备

这些电源控制是使用RX产品家族中的以下通用功能在一个MCU中实现的。虽然本次使用的MCU属于RX产品家族的RX66T系列,但是RX产品家族中,只要具有如下功能,也可以实现类似的或部分功能。例如RX72T、RX24T。

RX产品家族使用功能

  • PWM输出定时器(MTU3d,GPTW)

  • 12位A/D转换器(S12ADH)

  • 端口输出使能(用于PWM输出紧急停止)(POE3B)

  • 比较器(用于过流检测)(CMPC)

  • 12位D/A转换器(用于比较器参考电压)(R12DAb)

我们利用这些RX产品家族中的适合逆变器控制的功能,构建了以下电路方式的电源控制功能。

UPS电路

AC-DC

  • 通过基于MTU3的互补PWM输出(载波频率60KHz)对电机控制设备中经常使用的电流连续模式交错配置PFC电路进行驱动,从而输出电流纹波较少的DC电源。

DC-DC

  • 升压电路和降压电路相结合的斩波电路通过MTU3互补PWM;

  • 输出(载波频率40KHz)进行驱动,从而无电压波动实施AC-DC电源充电至电池(降压模式)以及电池电源放电向DC-AC供电(升压模式)。

DC-AC

  • 通过GPT互补PWM输出(载波频率20KHz)实现功率半导体的开关功能,从而使电机控制等类似的桥式电路产生110V@50Hz的正弦波。控制算法通过矢量控制输出无失真的正弦波。

1.png

2.png

将这些电路进行组合形成UPS,电源效率可高达98%以上,性能与专用产品相当。这使得除了AC-DC的PFC IC和DC-DC的功率IC等专用产品外,还可以实现基于MCU的电源控制产品,从而为客户提供更多的选择,做到适材适所。

本次为大家介绍了电源控制(UPS)作为逆变器控制应用的可行性。我们将继续推出符合客户需求的优质产品,为客户的创新事业添砖加瓦。敬请期待瑞萨RX产品家族的进一步发展。

更多资料

有关本次介绍的UPS的更多信息,请点击下方链接查看UPS应用指南:

https://www.renesas.cn/cn/zh/document/apn/rx66tgroup-digital-power-conversion-uninterruptible-power-system-ups-rev100

有关RX66T的更多信息,请点击下方链接查看RX66T产品页:

https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx66t-32-bit-microcontrollers-optimal-motor-control-industrial-home-appliance-and-robotics-applications

RX66T样例程序,请点击下方链接进入官网下载页面:

https://www.renesas.cn/cn/zh/document/scd/rx66tgroup-digital-power-conversion-uninterruptible-power-system-ups-rev100(注册并登录瑞萨电子官网后即可下载)

来源:瑞萨电子

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 12

之前为大家分享的《Cortex-M位带操作的原理》,虽然现在不常用位带操作了,但里面很多知识点值得学习和了解。

指针变量及例子

位带操作牵涉到的一个重要知识点就是指针变量。

这种位带映射操作,就是操作映射过后的地址,其实就是操作指针变量(存放地址的变量)。
指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。《摘自百度百科【指针变量】》
指针变量的例子:

int main(void)
{
   uint32_t *p;

  p = (uint32_t *)(0x42210184);

  System_Initializes();
  while(1)
  {
    *p = 0;
    TIMDelay_Nms(500);

    *p = 1;
    TIMDelay_Nms(500);
  }
}

上面例子中给p指针变量赋的值是“0x42210184”,只是强制转换成(uint32_t *)这种指针类型。 

而*p = 0;代表该地址上的数据值为0;也就是上面说的该地址存放的数据为0; 

前面有一个朋友问过我关于指针变量的问题,看到这里,相信你应该知道使用指针变量,直接打印指针就可以判断指针是否越界。

指针变量---位带操作

上面代码中“0x42210184”代表STM32F103系列芯片中PA1的位带别名地址(就是映射过去的地址),截一个图,大家看看:

1.jpg

提示:上图中对p的赋值,其实是一样的(在STM32中),都是0x42210184。
结合公式理解:

之前文章《位带操作原理》列出了关于片上外设区计算公式:

AliasAddr = 0x42000000+(A-0x40000000)*32 + n*4
对比截图中第一个p赋的值,就是片上外设的计算公式。

第二个p只是对代码优化了:“&”到“-”的优化,可以看编译器相关手册。
第4个p就是上一节代码中值,有没有发现,位带操作其实就操作指针变量啊?
这样相比读出寄存器,再&或者|再写入寄存器的效率要高多啦?
位带别名区最低有效位

有朋友发现,*p = 0;这样操作对地址0x42210184(PA1输出)写入0,PA1输出低。假如我写入0x10,那么PA1输出多少呢?

答案:输出低。
原因在于:在位带区中,每个比特都映射到别名地址区的一个字只有 LSB 有效,也就是最低一位有效。

位带操作另一种宏定义

有通过之前的两个公式,可以推出下图的公式:

2.jpg

上面框起来的定义适合RAM和外设两种,假如定义一个LED为PA1,只需要将PA1相关参数传入即可。
LED另外一种定义:

#define LED BIT_ADDR((GPIOA_BASE + 12), 1)
这种定义需要注意:+12,其实是ODR相对GPIOA的基地址的偏移地址。
我曾在这里遇到的坑:我将STM32F1的移植到F4上,出现了问题,我找了半天才发现由于这个偏移地址不一样导致的。
STM32F1的ODR偏移是12,而F4的ODR偏移是20。所以,建议大家使用GPIOA->ODR这种方式。(不管是标准外设库还是HAL库都有这样定义)。

来源:strongerHuang

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 10

一、前言

程序存储器(又称数据Flash),顾名思义,是用来存储用户的程序,使单片机能够按照编写的代码顺序执行,完成指定的任务。所以程序存储器是只读存储器(只读存储器),我们已经听过很多次了。

代码存储在程序存储器里面,一般有常数、表格、pi值、数码管形状、SCM ID号、内部参考信号源、关机唤醒定时器频率、IRC参数等数据。

注意: 单片机每次都是烧录程序,烧录就是为了把代码放到程序存储器中,而我们用的电脑则是把硬盘的数据和程序放到RAM,再用CPU去读取RAM里面的数据和程序。

二、存储器的存储单位与编址

存储信息的基本单位称存储元件,每个存储元件是一个二进制位,一位可存放一个二进制数0或1,每8位组成一个字节。

编址是为了方便我们存取存储器中的信息,我们需要给每个存储单元编号,即编址。

1. 存储单位

  • 位(bit):计算机的最小数据单位

  • 字节(Byte):1Byte = 8bits

  • 字(Word):1Word = 2Bytes = 16bits

2. 编址

51单片机的存储单元是一个字节,为了存取数据方便,每个存储单元都有编号,这个编号就是编址,编址采用二进制数。例如:0000 0010B可以代表第二个存储单元。

三、51单片机有哪些内部存储器

存储器是单片机的又一个重要组成部分,存储容量为256个单元的存储器结构中每个存储单元对应一个地址,256个单元共有256个地址,用两位16进制数表示,即存储器的地址(00H~FFH)。

存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混淆。

1.片内RAM

RAM(Random Access Memory)又叫随机存取存储器,正常情况下不仅可以写入数据到RAM,也可以从RAM读取数据。

单片机内部总共有256Bytes的RAM。RAM的每一个字节都有编码,从0000 0000开始直到1111 1111,不同区域的RAM有着不同的功能。可以把RAM想象成一栋办公楼,不同的楼层有不同的部门,不同的部门自然干不同的活。

注意: 因为单片机一次只能处理8个bit的数据(字长为8),并且一个8位二进制数的范围是0到256,所以单片机一次能寻址的范围也就是0到256。

2.片内ROM

ROM(Read-OnlyMemory),又叫只读存储器,正常情况下只能从ROM读取数据,不能往写入数据。

单片机内部的ROM大小为4KB(4096Bytes),字节地址范围为000H~0FFFH。

在特殊条件下,可以把程序烧入到ROM中,所以ROM也叫程序存储器。

如果ROM的大小不够存入所有程序,也可以外接ROM。单片机最多可外接64KB的ROM。内部ROM和外部ROM是统一编址,要么就只用64KB的外部ROM,要么就用4KB的内部ROM+60KB的外部ROM(外部ROM的开头4KB闲置)。

3.外部数据存储器

外部数据存储器一般由静态 RAM 构成,其容量大小由用户根据需要而定,最大可扩展到 64KB RAM,地址是 0000H~0FFFFH。CPU 通过 MOVX 指令访问外部数据存储器,用间接寻址方式,R0 、R1 和 DPTR 都可作间接寄存器。

注意: 外部 RAM 和 扩展的 I/O接口是统一编址的,所有的外扩I/O 口都要占用 64KB 中的地址单元。

四、如何区分ROM和ROM

片内ROM和片外ROM的区分:在单片机既有片内ROM又有片外ROM时,会产生一部分重复的地址范围,为了解决区分片内和片外ROM的问题,51单片机设置了一根控制线EA(低电平有效),所以

EA = 0 => 有效 => 访问片内存储器

EA = 1 => 无效 => 片内存储器被忽略

本质的原理:就是当PC的值大于了某个值时将访问外部存储器,PC的值小于了某个值时将访问内部存储器。这个值由存储器容量的大小绝定,在8051单片机中,片内ROM = 4KB,所以当PC小于0FFFH时,访问片内ROM。

五、存储器数据读写说明

要对256字节存储器的每个存储单元进行读写,需要8根地址线和8根数据线,先送8位地址选中某个存储单元,再根据读控制或写控制,将选中的存储单元的8位数据从8根数据线送出,或通过8根数据线将8位数据存入选中的存储单元中。

当地址总线A7~A0将8位地址00011111(1FH)送入存储器时,会选中内部编址为1FH的存储单元,这时再从读控制线送入一个读控制信号,1FH 存储单元中的数据00010111从8根数据总线D7~D0送出。

六、总结

对于RAM和ROM,当我们写程序的时候,我们把程序误认为ROM,也就是说,我的某个逻辑形成了一系列的逻辑开关,但是当CPL进行操作的时候,在传输的过程中,交换逻辑需要不断的改变,所以RAM就诞生了。

但是由于技术的限制,RAM不能下电来保存逻辑,即电路中的每个硅电子都不能被保存,并且这个过程限制了内存的大小。因此,RAM和ROM是通过CPU总线连接的。

通过51单片机的RAM地址,ROM地址,可以看到,ROM存储程序,通过CPU传递数据,到RAM,而RAM是各个寄存器的集合,按ROM程序形成逻辑,响应CPU,同时传递给ROM信号(这里ROM的逻辑已不变,相当于与或非的各种开关)。

来源:嵌入式悦翔园(作者:JamesBin)

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 9

近些年的MCU市场,8位单片机一直是这个领域的主力军之一,尽管随着物联网的发展,特别是近年来对智能化、高安全性、高可靠度等性能需求的提高, 32位MCU的占比有着些许的攀升。但8位单片机凭借其应用的简单灵活、安全稳定、成本优势等特点,在诸如手环、蓝牙耳机、校园卡等低功耗场景下都占据着绝对的使用比例;另外,在较复杂的白电场景中,例如电视机、空调、洗衣机,以及冰箱等一系列应用,也都有8位MCU的身影;并且在对速率要求较高,安全性要求有需求的场景下,比如医疗保健、数据处理、工业控制、通信等产业场景下,大量的数据也需要越来越多IO处理工作,这无形中也增加了对8位MCU的需求。

Microchip的8位单片机作为这个领域的翘楚,其PIC与AVR系列 MCU 作为这个区间的两种行业领先架构,有哪些技术上的独到技术和过人之处?本期视频,就请Microchip市场推广经理张荣宝 (Paul Zhang)老师带着大家一探究竟。

访谈嘉宾

1.jpg

张荣宝 (Paul Zhang),MCU8产品部市场推广经理

现于 MicrochipTechnology Inc.(美国微芯科技公司)上海分公司任市场推广经理,负责公司8位单片机产品的营销。他拥有10多年的嵌入式应用的研发经验和单片机 产品的推广经验。张荣宝于1996年毕业于山东科技大学,获得机械电子工程专业学士学位;于2007年获得复旦大学电子与通信工程专业的硕士学位。

点击观看


2.jpg

(图片来源:Microchip Technology Inc.)

更多相关设计资源,归纳如下

关于Microchip Technology

Microchip Technology Inc. 是领先的微控制器和模拟半导体提供商,为全球范围内数以千计的各类客户应用提供低风险产品开发、更低的总系统成本和更快的面市速度。Microchip 的总部位于亚利桑那州钱德勒市,提供杰出的技术支持,交付及时可靠,产品品质优异。

小编的话

作为全球最大的8位单片机供应商,Microchip致力于推动8位单片机的发展和应用。通过张荣宝先生的介绍和分析,想必大家对8位单片机何以仍然能够快速发展有了更为清晰的了解。您正在使用8位单片机开发哪些产品?您在应用AVR 和 PIC MCU 产品系列过程中有哪些心得和经验?欢迎分享和讨论。

来源:得捷电子DigiKey

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 17

前言

在STM32之前,都是老大头51,带着它的“小弟们” MSP430、AVR、PIC在单片机界呼风唤雨。

那个时候,市场上遍布8位机,大学教材用51入门,个人、企业学单片机基本上也都在用51。虽然AVR也有一些8位机市场,但与stc带领下的51单片机是完全不能相比的。当然,这个时候也有16位机的msp430,其他厂家单片机还有pic,高端嵌入式处理器等市场有arm7、arm9等。这个时期的单片机市场是百花齐放、百家争鸣,但总体来说,还是势均力敌、一片祥和的。那么,这个局势是从什么时候开始打破的呢?这还得从物联网的崛起说起。 

原因

当时,物联网(Internet of Things,IoT)逐步进入人们的视野范围。随着它的发展,嵌入式领域对于高性能处理器的需求呈现爆发式增长。

虽然8位CISC(复杂指令)架构内核8051占据了半壁江山,但奈何其性能低下,寻址范围受限,已经难以适应更多的新兴应用领域。而32位架构微处理器内核凭借其极佳的执行效能,不仅能满足物联网对数据处理能力的要求,还能兼顾物联网的低功耗和高性能要求,斩获物联网市场的独家宠爱。在32位架构微处理器中,属ARM公司推出了面向各类嵌入式应用的微控制器核Cortex-M内核受到市场青睐,Cortex-M之于32位MCU就如同8051之于8位MCU。而正是Cortex-M的出现,让ST公司看到了这个内核的强大之处——利用该内核设计了大放光芒的STM32,打破了曾经的单片机局面。

崛起过程

如今,我们往回看那段历史,会发现一切改变都由那时发生——

从2007年6月11日推出第一代STM32产品——Cortex-M MCU STM32F1开始,单片机市场迎来了STM32新星,32位MCU浪潮,如期而至。

1.jpg

2.jpg

此后,芝麻开花节节高,STM32成功的故事也一直在延续。ST公司陆续在每一年都基于新的内核或者新的技术领域有所突破,发布超过了19个STM32 产品系列,包括一个MPU产品线,生产工艺也从180nm不断进阶到110nm、90nm和40nm。例如:

2009年推出了全球第一款超低功耗系列STM32 L1;

2010年推出了第一款在高性能的基于90纳米工艺、120 MHz 的STM32F2产品线;2011年推成第一款高性能Contex-M4的处理器STM32F4;

......

2019年推出全球最为强大的第一款双核处理器STM32MP1、最新一代混合信号Contex-M4 MCUs和世界上最大的MCU STM32H7;

2020年推出全球首颗内置LoRa收发器的SoC——STM32WL。

3.jpg

“一只南美洲亚马逊流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起美国德克萨斯州的一场龙卷风。”STM32这只小蝴蝶带来的改变效果也很明显。2007年ST公司的通用MCU全球排名还只是第11位,2015年便上升到第3位,2018年上升到第2位,2018年则在中国供应商的排名中ST公司一举拿下第一的高地,此后数年,ST的地位几乎无人撼动。

4.jpg

如何学习

入坑STM32后,我们应该如何学习?

如今,STM32堪称爆火,并且潜力无穷。所以,有很多人都在学STM32。

但STM32对入门者可能不是特别友好,因为知识很多,但是对于有一定开发经验的人来说,就是一把好兵器,它能帮你大大缩短开发周期。

那应该如何入坑STM32呢?

(1) 根据时间表定时定量学习

大学时期,都有实验室的学长学姐带着入门,安排任务。

比如,基本任务是一周内学完搭好环境、熟悉调试软件,结合《STM32Fxxx参考手册》、《STM32固件库使用手册》和光盘视频,实现基本篇的GPIO应用。

(2) 举一反三,并通过阶段任务检查学习效果

在学习例程时,可以尝试修改该例程的外设配置,达到举一反三的效果。

每一周,学长学姐会根据你的学习进度,安排给你一个阶段任务,用来检查你的学习效果。

如果你是自学,那么可以根据网上教程和各大资源网站上的“STM32入门小项目合集”,主动给自己找一个小项目,把它实现出来。

这里我推荐正点原子的资源,毕竟每次看视频时的片头曲“我的未来不是梦”让我对STM32充满激情,当然野火、小苗、普中也不错~

(3) 基本外设、功能会用就行,后期需要什么再去针对性地学

按部就班地把STM32知识从头到尾系统性地学习完,固然很好。但是,你要知道学习单片机只是为了解决问题,我们只要在遇到问题时,能够通过STM32解决就行。

因此,当你把基本外设、功能都差不多掌握了,程序能跑起来,并且也知道哪里可以修改、修改成什么就已经基本入门了。

此后,你可以通过一些大大小小项目,巩固理解和探索新功能,你的经验也随之增加。

(4) 学好C语言,可以学着画PCB制板、焊接

软件和硬件都要两手抓。C语言对于STM32的学习至关重要,C语言不好,还跑什么代码?学会画板子、焊板子,这样有什么需求,都可以自己添加。

当然,上面的建议都是给0基础的STM32入门者,若是你有一定基础,那当然是对症下药,哪里不会补哪里。

学海无涯,勇于探索新技术

“学海无涯、永无止境”,更何况是每一年都在推陈出新的STM32。

事实上,STM32 的开发方式已经发生了很大的变化。

比如:

2014 年,ST 公司推出了 HAL 库和 MCU 图形化配置软件STM32CubeMX。

2017 年年底,ST 公司收购了 Atollic 公司,把专业版 TrueSTUDIO 转为免费软件。

2019 年 4 月,ST 公司正式推出了自己的 STM32 程序开发 IDE 工具软件 STM32CubeIDE1.0.0,打造了一个完整的 STM32Cube 生态系统。

而STM32Cube 生态系统已经完全抛弃了早期的标准外设库,STM32 系列 MCU 都提供 HAL固件库以及其他一些扩展库。

STM32Cube 生态系统的两个核心软件是STM32CubeMX 和STM32CubeIDE,且都是由 ST 官方免费提供的。

使用 STM32CubeMX 可以进行 MCU 的系统功能和外设图形化配置,可以生成STM32CubeIDE 项目框架代码,包括系统初始化代码和已配置外设的初始化代码。

如果用户想在生成的 STM32CubeIDE 初始项目的基础上添加自己的应用程序代码只需把用户代码写在代码沙箱段内,就可以在 STM32CubeMX 中修改 MCU 设置,重新生成代码,而不会影响用户已经添加的程序代码。

由此看来,使用STM32CubeMX 和 TrueSTUDIO 进行STM32 开发是一个良好的组合方式!

本文直接来源:嵌入式资讯精选

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 14

DDR5系统管理引入了一种全新的边带总线,其正式名称为JESD403-1 JEDEC模块边带总线。DDR5标准的开发正由JEDEC和MIPI联盟合作进行。

1.png

在引入这种全新应用的情况下,该应用所用到的SPD集线器、PMIC和微控制器需要在确保协议合规性的基础上实现高度集成。因此,瑞萨开发了一种结合瑞萨SPD5集线器SPD5118、瑞萨PMIC、温度传感器和新款瑞萨RA RA2E2组的解决方案,以实现符合JEDEC JESD403和MIPI I3C BasicSM要求的边带总线操作。另一方面,这些关键的瑞萨设备已通过MIPI I3C BasicSM的全面认证,并且该系统还能够向后兼容旧版JEDEC I2C实施。

DDR5 DIMM边带总线和主机总线的简要架构

瑞萨DDR5解决方案附带原型套件,可配合上述的总线和电源布局架构使用,并在RA I3C总线的前端采用了电平移动电路,以满足JESD403-1的特定总线电压要求。客户可以通过他们的SDRAM模块充分利用此集成套件,从而加速产品发布计划。

2.png

管理总线协议

边带总线采用特定的结构化寻址方案(如下文简述)来识别DIMM以及DIMM上的设备。因此,I3C基础的ENTDAA和基于PID的地址计算方案并不需要强制执行。基于此情况,SPD集线器通过两个模式处理地址计算和HID分配,而DIMM上能够以I3C基础模式运行的设备应为JEDEC SETHID CCC和SETAASA CCC提供支持。

  • 在JEDEC I2C模式中(默认通电),通信(以DIMM上的设备为目标从属设备)由主机发出启动条件开始,后接7位从属地址和一个读/写字位。通信过程中,作为首个接收器的SPD集线器将替换寻址DIMM的从属地址的LSB 3bits(HID)并转发到本地总线,不包括0x7E的广播地址。SPD集线器借助精密电阻检测HID/DIMM_ID并辅助HID分配。

  • JEDEC I3C模式将一直生效,直至作为边带总线上首个接收器的SPD集线器接收到JEDEC SETHID CCC为止。一旦集线器检测到JEDEC SEHID CCC,集线器便会停止HID数位翻转,并将传入的7位从站地址按原样透明地传送到本地总线中。在此操作之后,DIMM上所有从SPD集线器接收SETHID CCC的I3C设备应更新其静态地址分配,并等待SETAASA CCC完成地址分配以进入I3C基础操作。

下图对上述两种模式的操作说明进行了汇总。

在收到JEDEC SETHID CCC之前I2C模式默认通电

3.png

接收到JEDEC SETHID CCC时,进入I3C模式

4.png

RA2E2组包含全面通过MIPI I3C BasicSM认证的I3C接口,可向后兼容旧版JEDEC I2C实施,设计师能够简化硬件设计,同时轻松而顺畅地实现从旧版I2C平台到I3C平台的转移。

DDR5 ARGB LED控制实施

RA2E2组在尺寸仅为4.00mm×4.00mm的24引脚HW四方扁平无引脚(HWQFN)封装中提供6通道的通用PWM定时器。借助硬件支持,可以通过最大化可控ARGB LED阵列的数量来拓展照明效果的选项。

演示和验证

作为MIPI联盟的成员和较早采用MIPI I3C Basic SM和JEDEC JESD 403-1的先行者,瑞萨解决方案的边带总线运行和协议合规性验证已通过Prodigy I3C协议分析器和模拟器完成,可支持MIPI I3C Basic V1.0, V1.1规格。此外,瑞萨解决方案能够向后兼容SM总线,以满足英特尔目前对LED照明控制的DDR4和DDR5结构要求,而瑞萨的第三方合作商也将提供包括H/W、F/W和S/W在内的全套解决方案,从而改善整体开发环境。

5.jpg

来源:瑞萨MCU小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 13

页面

订阅 RSS - 单片机