MCU

现在的采用电池供电方式电机控制类的小型化电子产品,因为电池容量和体积等限制对功耗控制的要求越来越高。电池的容量和体积限制如何让用户能够更长时间使用产品,产品功耗的问题是经常让产品设计者头痛而又不得不面对的一个问题。包括:剃须刀、电动牙刷、洁面仪等。

电机类产品功耗主要是电机驱动模块占据大部分,其他外设部分的电流消耗占小部分,以单片机为核心的系统,其功耗主要由单片机功耗和单片机外围电路功耗组成。MM32SPIN2x有高达两个高级定时器,能够驱动双电机应用方案,可以提高总功率效率和性能。今天主要从MCU部分讲解如何降低单片机系统的功耗,需要从硬件和软件两方面入手。本章节将从MM32SPIN2x系列MCU的配置来介绍如何降低MCU的功耗。

如何降低MCU功耗

在系统或电源复位以后,微控制器处于运行状态。当CPU 不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。

降低功耗方法:

• 睡眠模式(CPU 停止,所有外设包括CPU 的外设,如NVIC、系统时钟(SysTick) 等仍在运行)

• 停机模式(所有的时钟都已停止,寄存器和SRAM 的内容依然保存)

• 待机模式(1.5V电源关闭,除了备用电路和备份域外,寄存器和SRAM 的内容全部丢失)

此外,在运行模式下,可以通过以下方式中的一种降低功耗:

• 降低系统时钟

• 关闭APB 和AHB 总线上未被使用的外设时钟

• 降低GPIO速度或者其他外设的速率

• 对与未使用的GPIO配置成模拟输入模式,针对有外部上拉或者下拉的GPIO口,在进入低功耗禁止设置相反的电平状态。

图1 低功耗模式一览

运行模式低功耗

1、降低系统时钟

在运行模式下,系统的主频越高,MCU处理指令的速度越快,但是同时功耗也会越大,设计人员需要跟实际应用对MCU处理性能和功耗之间找一个平衡点。MM32SPIN2x可以根据PLL倍频器设置最高96MHz系统时钟,可以通过对预分频寄存器进行编程,可以降低任意一个时钟(HCLK、PCLK1、PCLK2) 的速度。

2、外设时钟的控制

在运行模式下,任何时候都可以通过关闭外设时钟 (HCLK 和 PCLKx)来减少功耗,在不需要使用的外设建议不要开启外设时钟。

3、睡眠模式

通过执行 WFI或 WFE 指令进入睡眠状态。根据 CPU系统控制寄存器中的 SLEEPONEXIT位的值,有两种选项可用于选择睡眠模式进入机制:
• SLEEP-NOW:如果 SLEEPONEXIT 位被清除,当 WFI或 WFE被执行时,微控制器立即进入睡眠模式。
• SLEEP-ON-EXIT:如果 SLEEPONEXIT 位被置位,系统从最低优先级的中断处理程序中退出时,微控制器就立即进入睡眠模式。

在睡眠模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。

对于M0内核的MCU,有两个通用的函数__WFI()和__WFE()可以进入睡眠模式。

图2 睡眠模式下的最大功耗,代码运行在FLASH中

4、停机模式
停机模式是在 CPU 的深睡眠模式基础上结合了外设的时钟控制机制,在停机模式下电压调节器可运行在正常模式。此时在1.5V 供电区域的的所有时钟都被停止, PLL、 HSI 和HSE 振荡器的功能被禁止, SRAM和寄存器内容被保留下来。

在停机模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。

可以通过对独立的控制位进行编程,可选择以下功能:
•独立看门狗 (IWDG):可通过写入看门狗的键寄存器或硬件选择来启动 IWDG。
•内部振荡器 (LSI振荡器):通过控制/状态寄存器 (RCC_CSR)的 LSION位来设置。

在停机模式下,如果在进入该模式前 ADC 没有被关闭,那么这些外设仍然消耗电流。通过设置寄存器 ADC_CR2的 ADON位可关闭这个外设。其他没有使用的GPIO 需要设置模拟输入,否则有电流消耗。

如何进入和退出停机模式可以参考图1。在库函数中,MM32SPIN2x定义了一个PWR_EnterSTOPMode()函数,方便快速配置停机模式。

注:当一个中断或唤醒事件导致退出停机模式时,HSI 振荡器被选为系统时钟。时钟频率为 HSI的 6 分频。

5、待机模式

待机模式可实现系统的最低功耗。该模式是在 CPU 深睡眠模式时关闭电压调节器。整个1.5V供电区域被断电。 PLL、 HSI 和 HSE 振荡器也被断电。 SRAM和寄存器内容丢失。只有备份的寄存器和待机电路维持供电。

可以通过设置独立的控制位,选择以下待机模式的功能:
• 独立看门狗 (IWDG):可通过写入看门狗的键寄存器或硬件选择来启动 IWDG。
• 内部振荡器 (LSI振荡器):通过控制/状态寄存器 (RCC_CSR)的 LSION位来设置

如何进入和退出待机模式可以参考图1。在库函数中,MM32SPINx定义了一个PWR_EnterSTANDBYMode ()函数,方便快速配置停机模式。

退出待机模式后,除了:电源控制/状态寄存器 (PWR_CSR),所有寄存器被复位。

从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚、读取复位向量等)。电源控制/状态寄存器 (PWR_CSR)将会指示内核由待机状态退出。

图3 停机和待机模式下的典型和最大电流消耗

小结

常用方法:降低系统时钟、不打开不使用的外设时钟、进入睡眠模式、进入停机模式、进入待机模式;

低功耗模式函数入口:
1) 睡眠模式:__WFI()、__WFE();
2) 停机模式:PWR_EnterSTOPMode();
3) 待机模式:PWR_EnterSTANDBYMode ();

如何退出低功耗模式:
1)睡眠模式:任意中断/唤醒事件;
2)停机模式:任意外部中断、IWDG不复位方式唤醒;
3)待机模式:WKUP引脚的上升沿、 NRST引脚上外部复位、 IWDG复位;

需要注意的:
1)睡眠模式:无唤醒延时;
2)停机模式:PLL、HSI和HSE被禁止,唤醒或中断退出时,HSI/6被选为系统时钟;
3)待机模式:SRAM和寄存器内容丢失,唤醒后的代码执行等同于复位;

通过合理地配置低功耗模式,关闭不使用的外设,降低I/O口速度,我们可以在不影响正常使用的同时,降低MCU运行功耗,延长电池供电设备的使用时间。

转自: 灵动微电MMCU,转载此文目的在于传递更多信息,版权归原作者所有。

围观 4

作者:杜芹&李寿鹏
来源:半导体行业观察

根据市场分析机构IC Insights预测,2018年,全球的MCU将成长18%,出货数量达到近306亿,MCU营收预期将增长11%,达到186亿美元的历史新高水平。预计2019年将持续增长9%,达到204亿美元。但和很多其他集成电路产品一样,这个市场的领先厂商全部都是外商。

数据来源:IHS CLT

IHS的统计资料显示,2018年的前十名的MCU供应商中,无一例外全部是外国厂商,这十家厂商2018年所占的市场份额更是高达86.7%,剩下的MCU供应商只占了13.3%。来到国内市场,这个表现更是堪忧。

国产MCU现状

华大半导体MCU事业部的总经理谢文录日前在接受半导体行业观察采访的时候表示,中国每年的MCU市场容量达到400亿元左右,国产MCU目前总的市场占有率还不到5%,产品也主要是聚焦在中低端领域,高端领域自给率几乎为零。根据他的观点这主要由以下原因造成的:

第一,芯片的研发周期长,整机的生命周期长,厂商不需要总是更换芯片,现在用的芯片是五到十年前的平台;

第二,MCU属于主动器件,在汽车、家电、工业设备等领域,MCU的价格虽然很低,但由于所用MCU芯片的价格占整机成本的比例非常小,因此这些行业的用户对采用国产MCU的态度就非常谨慎;

第三,MCU已经不再是高毛利产品,国产MCU与进口MCU的价格差距已经不足以驱动高端用户选择尚不成熟的国产MCU。这就出现了“越不用越不成熟,越不成熟越不用”的恶性循环。因此,国产MCU长期被禁锢在低端领域,持续进行着国产厂商之间的低层次竞争,而始终无法跃上一个台阶去与进口MCU竞争更高价值的市场。

第四,在生态环境建设上,多数国产MCU企业还停留在开发板、烧写器和基础固件库上,至于开发环境(IDE)、RTOS和中间件,依旧依靠第三方更高层应用的支撑。在物联网、专业算法库、行业应用以及大学计划等方面,国产MCU企业与国际MCU大厂依旧相距甚远。

第五,在技术先进性方面,多数国产MCU企业还是停留在依附ARM建立的生态环境的层面,甚至很多企业的产品直接以与国外大厂软硬件兼容为卖点。比如,F103这样一款流行的32位MCU,国内现在居然有大约20款左右的仿制产品。这样的方法固然可以很容易地进入市场,尤其在市场缺货和价格竞争激烈的情况下。但是这样的做法,会面对芯片硬件和支撑软件等领域的侵占他人知识产权的风险。

谢总还讲到,虽然MCU由于同质化问题严重,价格已经很低,但是国际MCU大厂基本都以IDM整合型元器件制造商的模式开展业务,往往卖出一颗MCU的同时还能顺带卖出MCU周边的多颗价值远超MCU自身的模拟芯片、功率器件、传感器等产品,从而实现公司整体上的高收益。但大多数国产MCU厂家还是只能仅仅依靠MCU自身的利润来造血发展。“这样的发展速度是极其缓慢的,或者只能依靠某些MCU的局部创新来做到个别细分市场或应用的冠军,但是却无法撼动MCU整体市场的格局。”,谢文录补充说。

相较而言,目前以华大半导体为代表的一批有战略发展目标的国产MCU厂家,通过潜心打磨产品技术细节,已经逐步实现了在超低功耗技术指标、可靠性技术指标、产品批量质量管控等方面赶上和局部超越国际主流MCU大厂,并向国际顶尖MCU技术水平看齐。未来3-5年,这批有技术、有雄心的国产MCU企业,将有能力在汽车、工业、白色家电等高附加值产品领域向国际MCU大厂发起挑战。中国的MCU正在逆袭的道路上走得越来越好。”

国产MCU发展的契机

谢总告诉半导体行业观察记者,随着经济的发展以及中国制造业的蓬勃发展,本土MCU发展迎来了几个契机:

第一,作为广泛应用到汽车、家电、专业设备装备等各类工业产品中的电子元器件,MCU在这些产品中往往都是承担系统的主动控制功能,直接决定了产品的功能实现。其一旦被卡脖子,则我国大量工业产品的生产将受到直接的影响,其影响程度将不亚于之前的电阻电容缺货潮;

第二,我国的物联网新兴业不断涌现,作为物联网末梢节点的核心元器件,MCU芯片的国产化率,也将直接影响到我国物联网产业是否能不受制约地长期稳定健康发展;

第三,MCU应用“定义权”在中国。不管从消费类的玩具、手机周边、家居家电,到工业类的电机控制、汽车电子、无线通讯,甚至物联网、人工智能,在中国都有大量的开发团队和配套的支持体系,以及广泛的消费群体和应用场景。这使得MCU产品及方案的“定义权”逐步移到中国来,而这是本土MCU厂商生存成长的天然土壤;

第四,过去十多年,国外的企业给我们培养了大量高技术人才,中国有距离和服务理念方面的优势。本土的MCU厂商及其员工,已经习惯了“今日事今日毕”的高效的行事风格,堪比外卖订餐的便捷。这一点在全球其他电子行业市场是难以想象的。而随着物联网和新能源汽车的高速发展,未来MCU的市场需求将有爆炸性的增长,前景看好。在竞争激烈的全球市场中,国产MCU是最有机会突出重围的一抹朝阳;

第五,从工艺角度来看,中国的工艺制造其实并没有落后国际太大。国内已经基本具备了包括半导体工艺与封装测试在内的发展MCU的产业链生态环境。在MCU产品最依赖的Flash存储器工艺方面,我国依托智能卡芯片产业发展起来的高品质的Flash存储器工艺已经能保障我国各类MCU产品的设计与生产;

再者,目前国家对半导体产业链的各个环节都有相应的政策鼓励,国产MCU也会直接或间接地从中受益。尤其鼓励国产替代的政策,更是给本土MCU带来了前所未有的机遇。其他如国内MCU企业一方面是没有国际MCU大厂的各种历史包袱,轻装上阵;国内也有成熟的Flash工艺支撑和价格优势;国产MCU厂商能更及时有效地提供MCU应用开发相应的技术支持,加快客户实现想要开发的新产品等都是支持本土MCU发展的后盾。

谢文录也指出,由于MCU芯片的价格占整机成本的比例非常小,国产MCU的价格差距无法撼动高端用户转而选择尚不成熟的国产厂商,所以国产MCU都缺乏机会在这些领域取得实质性的突破。但是现在国家层面,以及包括一些地方政府层面,都已经意识到了这一点,并在积极引导和鼓励整机企业尝试采用国产MCU,打破“越不用越不成熟,越不成熟越不用”的恶性循环。

国产MCU的突围之道

谈到国产MCU该如何发展的时候,谢文录表示,中国MCU厂商应在未来的发展应该充分发挥自身优势,以细分为导向,以时效和价格为驱动,先从行业客户开始进驻,从一些专用设备开始做起,不断提升产品的性能和稳定性,然后向通用领域进军,寻找突围之道。这个具体可以分为两个方向——做大做强和做小做精。

如果选择前者,你需要给客户提供广泛的产品线,且你不容易被替代,但这需要你长期的资金投入,那就需要很大的魄力和庞大的资金支持;选择后者的话,就是在一个细分市场做深做精,性能做到最好,严格控制价格,等发展到一定程度,再寻找新的机会。但他进一步指出,国内中小型MCU企业在发展过程中一定要找准自身定位,以市场需求为先,精细自身业务并调整内部运营,对产品及服务进行不断调整和创新,完善产品,实现产品的标准化、规范化,并保证产品质量的稳定性。这样才有可能在大环境下分一杯羹。

“MCU企业的高度集中化也是行业发展趋势。中小型MCU企业如能有自身具有创新的技术与产品,从而形成并购价值,这也不失为一条可行的发展道路。人云亦云,盲目跟风,没有自身技术特点与创新能力,这反而会是中小MCU企业发展的陷阱。”谢文录强调。

建立MCU生态也是本土厂商需要关注的另一个方面。

按照谢文录的观点,这一直是中国MCU的短板。由于MCU在世界范围内的发展已经非常充分,且受到生态等因素的制约,依靠纯市场化自发的发展已难以崛起,必须与半导体晶圆制造厂相结合,用较大的资本投入,来迅速跃上一个较高层次的竞争平台。

来到软件和应用上,在谢文录看来,国产MCU应加强与中国软件企业合作,打造自主可控的嵌入式系统生态环境,比如华为Lite OS、阿里AliOS和RT-thread。这些嵌入式和物联网的OS已经具备主流嵌入式OS的基本功能,再结合阿里和华为云平台优势,在物联网领域内的应用颇具特色。另外,可借助ARM成熟的MCU IP平台,避开繁杂的软件开发和固件整合工作,快速投入终端产品技术与创新应用上去,并大大减少投资成本,从而逐步进入并占据高端产品的市场份额。

通过这些努力,有望经过3~5年发展,整合成有一定规模的企业,在工业、白色家电等领域与外企一争高下。而在汽车领域,由于产品自身认证与车型导入的固有时间节奏限制,所需的时间可能还会更长一些,但也最多5~8年就能看到成果。中国的MCU正在逆袭的道路上走得越来越好。但他也指出,国产MCU想进一步发展,还需要本土整机厂给机会,只要有了这个机会,本土MCU是不怕与国外的领先厂商竞争,也只要有了这个机会,本土厂商才能不断提升。

“作为中国电子旗下的一家专注MCU相关技术的企业,华大半导体已将智能卡芯片做到全球第四、中国第一,从中获取了不少MCU设计经验与批量生产经验,公司也拥有宏大的战略目标和雄厚的资金,在这些因素的推动下,华大半导体已经针对不同领域设计出了多款杰出的芯片。例如在超低功耗MCU方面,华大半导体绝对是国内领先的MCU供应商,其HC32L系列产品在超低功耗性能与EMC可靠性方面已经部分超越了国际传统MCU大厂的对应产品。其他如工业MCU、电机驱动与算法、汽车MCU方面,华大也在同步并进。我们未来也会往高性能、安全和可靠性等方面出发,打造市场需要的产品,参与MCU的国际竞争”,谢文录最后说。

在AIoT、工业和汽车的时代中,国产MCU想要乘势而上,抓在机遇。那就需要拿出自家的看家本领,才能不被浪头掀翻。希望本土MCU厂商能在这波新机遇下,获得阶梯式的飞跃。

本文转自:微信号 - 半导体行业观察,作者:杜芹&李寿鹏,转载此文目的在于传递更多信息,版权归原作者所有。

围观 8

Holtek BH67F5235整合触控按键与24-bit Delta Sigma A/D电路,同时内建LCD Driver,适合用在各种触控LCD电子秤相关产品。

内置触控按键侦测电路,侦测更精准,可大量减少外部元件(如电阻及电容),缩小产品体积,降低成本,并提升产能;内置24-bit Delta Sigma A/D电路,搭配内建LDO,提供外部传感器的电源,达到量测的功能。内建True EEPROM,轻易实现产品自动调校/标定的功能,简化开发及生产。

BH67F5235 MCU资源包含 3K×16 PROM、192×8 RAM、32×16 Emulated EEPROM;并提供24-pin SSOP、28-pin SSOP与32-pin QFN封装形式。

BH67F5235与先前BH67F5245相较,提供更精简的功能,方便客户开发不同档次系列性产品。

来源:HOLTEK

围观 14

Holtek Cost-Effective Flash MCU系列新增HT68F0036,内建大驱动电流I/O,适合用于各种激光头相关产品,例如:激光投线仪、激光手电筒、舞台激光束模块、激光定位灯等产品。内建5组高驱动电流I/O,可以直驱各式红光、假绿光及真绿光激光头,不需要外挂MOS,此外内建一对互补式PWM可以直驱蜂鸣器,可大量节省外部外围元件,达到有效节省外部元件成本及提高生产良率。

此产品的工作电压为1.8V~5.5V,系统资源为1K×14 Flash Memory、64×8 RAM、32×14 True EEPROM、8-bit互补式PWM、8-bit Timer及Time Base各一组。Oscillator提供2种模式 – HIRC(8MHz)与LIRC(32kHz),其中内建的高精度HIRC及LIRC振荡电路,在定温定压下精度为±1%。封装提供16NSOP。

来源:HOLTEK

围观 10

Holtek针对红外测温应用新推出BH67F2762系列Flash MCU成员,BH67F2762整合红外测温与24-bit Delta Sigma A/D电路,同时内建LCD Driver,适用各种LCD型红外测温产品,如耳温枪、额温枪、红外测温仪等。

BH67F2762 MCU资源包含16K×16 Flash Program Memory、1024×8 Data Memory、256×8 True EEPROM;红外测温电路集成OPA、24-bit A/D及LDO,可精简元件缩小产品体积;LCD Driver具有升压/稳压功能,使LCD亮度不受电源下降影响;通讯接口完整(UART/I2C/SPI),方便与不同Device沟通;内建EEPROM,可轻易实现产品自动调校/标定的功能,简化开发及生产。

BH67F2762维持与先前BH67F2752相同外部封装与脚位,提供48-pin与64-pin LQFP封装形式,方便客户开发不同档次系列性产品。

来源:HOLTEK

围观 5

全新的参考设计简化了家用电器及工业设备用户的2D/3D接口开发

全球领先的半导体解决方案供应商瑞萨电子株式会社(TSE:6723)今日宣布,推出两款免触控用户接口(UI)解决方案,以简化基于2D和3D手势控制的应用设计。这两款新的解决方案基于瑞萨电子的电容式传感器微控制器(MCU),支持用户接口的开发,使用户无需触摸设备即可控制家用电器、工业及OA设备。该用户接口解决方案使电器和设备制造商能够快速开发免触控接口,从而在设备的便捷性和设计方面提升其产品附加值。

在很多情况下,如用户手潮湿、无法触碰,或进行触控不安全时,免触控操作都具有其特别的优越性。例如在厨房中,采用瑞萨电子的全新免触控用户接口解决方案,用户可在水龙头附近通过手势调节水温和流速,在锅炉外使用手势就可调节风扇的运行。瑞萨电子的免触控用户接口解决方案让客户可以在其嵌入式设备中轻松部署。该解决方案的参考设计现在即可下载获取。

瑞萨电子株式会社家庭事业部副总裁守屋 徹表示,“目前瑞萨电子的200多位客户都部署了基于MCU的触控键解决方案,而且反响热烈,我们对此感到非常荣幸,并希望继续向客户提供能为市场带来新功能和新体验的解决方案。新的免触控解决方案代表了电容式触控传感器系统发展的又一次飞跃,该系统具有高灵敏度和良好的抗噪性能,可在多种条件下运行,使新的用户接口更友好,更便于在家庭和工作场所使用。”

免触控用户接口解决方案的关键特性:

全新手势解决方案分别检测2D坐标和3D空间中的动作。针对这两种解决方案,瑞萨电子为内置电容式触控功能的MCU提供参考设计材料,包括硬件参考(电路图、电路板设计数据文件和元器件清单),以及坐标计算中间件、示例程序、应用笔记和用于监控所检测到坐标的评估工具。

两款免触控用户接口解决方案已通过IEC 61000 4-3三级(注1)和4-6三级(注2)噪声抗扰度标准的B级(注3)测试,能够实现稳定运行(注4)。

3D手势解决方案有三种不同尺寸,可根据应用进行选择:

  • 标准版(160 × 160 × 100 mm),搭载RX231 MCU
  • 小型版(80 × 80 × 80 mm),搭载RX130 MCU
  • 纤薄版(100 × 100 × 20 mm),搭载RX130 MCU,可节省更多空间

关于瑞萨电子触键式解决方案

除了新的免触控用户接口解决方案,瑞萨电子还为具有挑战性的或非传统的触控材料(如木材),以及需要在潮湿、肮脏环境(如厨房或工厂)中运行的设备提供触键式解决方案。瑞萨电子提供的开发环境包括QE for Capacitive TouchWorkbench6解决方案套件评估系统,专门用于电容式触控按键开发;此外还包括非常适用于工业设备与家用电器人机接口的瑞萨电子RX130产品组等电容式触控按键MCU系列。

展望未来,瑞萨电子将继续致力于开发基于人机接口的解决方案,以增强电器及设备的日常用户体验,为智能社会的发展做出贡献。

供货信息

2D和3D免触控用户接口解决方案现已可下载。
https://www.renesas.com/products/software-tools/boards-and-kits/eval-kit...

更多信息

了解更多关于瑞萨电子的电容式触键解决方案,请访问:https://www.renesas.com/solutions/proposal/touch-key.html

(注1)IEC 61000-4-3三级:电子设备辐射电磁能量抗扰度测试,在10V/m电磁场下进行。
(注2)IEC 61000-4-6三级:电子设备电磁辐射干扰的传导抗扰度测试,测试电压为10V。
(注3)B类:即使发生临时性跌落或损失,该类设备也必须能提供独立恢复的功能。
(注4)有关测试条件,请参阅应用笔记。

围观 5

Holtek AC体脂秤MCU系列新增BH66F2662成员;BH66F2662整合体脂量测与24-bit Delta Sigma A/D电路,增加MCU内部资源,内建LED Driver及UART/SPI通讯接口,特别适用于各种四电极LED蓝牙AC体脂秤相关产品。

BH66F2662资源包含16K×16 Flash Program Memory、512×8 RAM、64×8 True EEPROM;内置四电极体脂量测电路,采用交流量测方式,阻抗量测更精准,可大量减少外部元件(如OPA、Analog Switch及Sine Wave Generator),缩小产品体积,降低成本及提升产能;内置24-bit Delta Sigma A/D电路,搭配内建LDO,提供外部传感器的电源,达到体重量测的功能。内建True EEPROM,轻易实现产品自动调校/标定的功能,简化开发及生产。

BH66F2662维持与先前BH66F2652相同外部封装与脚位,提供28-pin SSOP与32-pin QFN封装形式,方便客户开发不同档次系列性产品。

来源:HOLTEK

围观 8

对于MCU,一切底层配置,最终都是在配置寄存器。

STM32F1xx官方资料:《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO)

51单片机访问地址

51单片机经常会引用一个reg51.h的头文件。

下面看看它是怎么把名字和寄存器联系在一起的:

sfr p0=0x80;
p0=0x00;

sfr是一种扩充数据类型,点用一个内存单位,值域为0-255.利用它可以访问51单片机内部所有的特殊功能寄存器。前一句“sfr p0=0x80”就是将P0映射到地址0x80。后一句“p0=0x00”就是往p0地址(0x80)代表的寄存器写值。

STM32访问地址

寄存器地址名称映射

STM32肯定也是可以这样来设置寄存器的。但是由于STM32的寄存器数目太多了,如果以这样的方式列出来,需要很大的篇幅,而且也不方便开发。所以,MDK采用的方式是通过结构体来将寄存器组织在一起。

下面就介绍MDK如何把结构体和地址对应起来的,为什么修改结构体成员变量的值就可以达到操作寄存器的值?这些事情都是在stm32f10x.h文件中完成的。

注:stm32f10x.h文件在STM32固件库下的目录是:

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹下。

GPIOA的寄存器地址名称映射

我们通过GPIOA的寄存器为例来进行介绍。

GPIOA->ODR=0x00000000;

首先,我们需要看一下GPIOA是个什么东西?通过宏定义我们可以看到:

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB               ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC               ((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD               ((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE               ((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOF               ((GPIO_TypeDef *) GPIOF_BASE)
#define GPIOG               ((GPIO_TypeDef *) GPIOG_BASE)

GPIOA是一个将GPIOA_BASE强制转换成GPIO_TypeDef的指针。这句话的意思就是,GPIOA指向地址GPIOA_BASE,而GPIOA_BASE存放的数据类型是GPIO_TypeDef。再看一下结构体GPIO_TypeDef的定义:

typedef struct
{
  __IO uint32_t CRL;
  __IO uint32_t CRH;
  __IO uint32_t IDR;
  __IO uint32_t ODR;
  __IO uint32_t BSRR;
  __IO uint32_t BRR;
  __IO uint32_t LCKR;
} GPIO_TypeDef;

结构体里面声明了7个变量,这个时候就明白了“GPIOA->ODR”就是指:GPIOA结构体下的ODR变量。

其实结构体的7个变量就是GPIOA的7个寄存器。我们需要知道GPIOA下的ODR寄存器的地址,首先需要知道的是GPIOA的基地址是怎么计算的呢?

#define GPIOA_BASE            (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE            (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE            (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE            (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE            (APB2PERIPH_BASE + 0x2000)

因为GPIO都是挂载在APB2总线之上的,所以它的基地址是由APB2总线的基地址+GPIO在APB2总线上的偏移地址决定的。那么APB2总线的基地址是怎么计算的呢?

#define PERIPH_BASE           ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)

原理都是一样的,APB2总线的基地址也是从其他地址进行地址偏移得到的。

所以到这个时候,就可以算出GPIOA的基地址位了:

GPIOA_BASE=0x40000000+0x10000+0x0800=0x40010800

这上面就已经知道了GPIOA的基地址,那么那些GPIOA的7个寄存器的地址又是怎么计算出来的呢?


GPIOA的寄存器的地址=GPIOA基地址+寄存器相对GPIOA基地址的偏移值

寄存器相对于GPIOA基地址的偏移值可以在上面的寄存器地址映射表中查到。稍微解释一下:GPIO的每个寄存器都是32位的,所以每个寄存器是占用4个地址,也就是说一共占用28个地址。地址偏移范围为(000h-01Bh)。这个地址偏移是相对于GPIOA的基地址而言的。

那么你可能又有一个疑问:结构体里面的寄存器又是怎么与地址一一对应的呢?这就涉及到结构体的一个特征,那就是结构体存储的成员的地址是连续的。上面讲到GPIOA是指向GPIO_TypeDef类型的指针,又由于GPIO_TypeDef是结构体,所以自然而然我们就可以算出GPIOA指向的结构体成员变量对应地址了。

总结与分析

对于STM32而言,使用“GPIOA->ODR=0x00000000;”来对寄存器赋值的原理,也就是将GPIO下的所有寄存器放在一个结构体内,通过基地址和在基地址上的偏移地址不断转化,最终找到准确的寄存器实际地址来进行赋值。也就是说,和51单片机最大的不同就是:由于STM32的寄存器数目太多,就将其中控制同一外设的寄存器设置成一个结构体(如GPIO、DMA等),通过对结构体的地址和寄存器相对于结构体的偏移地址,来确定某个特定的寄存器。

来源:CSDN,作者:Yngz_Miao
原文:
https://blog.csdn.net/qq_38410730/article/details/79816270
版权声明:本文为博主原创文章,转载请附上博文链接!

围观 21

新的解决方案延长了电池续航,能够实现长距离连接,并且帮助可穿戴设备和遥控设备实现语音控制和音频传输功能

全球领先的嵌入式解决方案供应商赛普拉斯半导体公司(纳斯达克代码:CY)近日宣布,推出两款低功耗双模蓝牙5.0和低功耗蓝牙(BLE)MCU样片,以支持构建物联网中的蓝牙Mesh网络。两款全新MCU的型号分别为CYW20819和CYW20820,能够同时提供蓝牙5.0音频和BLE连接,低功耗的无线解决方案能够帮助依靠电池供电的运动手环、健康监测设备和语音遥控设备实现音乐传输和语音指令控制。设计人员还可以利用该解决方案来开发低成本、低功耗的、并能相互通信的蓝牙Mesh网络设备,通过简单、全面、无需hub的蓝牙连接,也实现智能手机、平板电脑和家庭语音助手之间的网络通信。

CYW20819蓝牙/BLE MCU能够同时保持SSP(串行端口配置)协议连接和蓝牙Mesh连接。CYW20820拥有与CYW20819相同的功能,但集成了最大输出功率为10dBm的功率放大器,用于400m以内的远距离应用,以及家庭范围内的全覆盖。在为平板电脑和智能手机提供传统蓝牙连接的同时,CYW20820还可为基于传感器的智能家居或企业应用构建低功耗、符合标准的Mesh网络。CYW20820搭载了Arm® Cortex®-M4内核,与现有的解决方案相比,连接200ms Beacon的工作功耗降低了60%,使用CR2032纽扣电池的情况下,其电池寿命最长可达123天,拥有行业领先的表现。因此,它成为了可穿戴设备、传感器、遥控器、智能家居照明以及医疗设备的理想选择,并且它能够与鼠标和键盘等双模人机接口(HID)设备实现向前、向后的兼容。

赛普拉斯物联网、计算和无线连接事业部营销副总裁Brian Bedrosian表示:“一直以来,为运动手环和健康监测设备提供更舒适的语音控制、音乐和音频辅导等功能,不得不以牺牲电池续航为代价。但是,赛普拉斯最新的低功耗蓝牙MCU解决了这一难题。赛普拉斯拥有业界领先的物联网连接产品组合,新推出的MCU是对这一系列产品的重要补充。低功耗、高性能、高性价比的解决方案,能够满足互操作蓝牙Mesh应用、语音控制以及支持音频功能的可穿戴设备对可靠性的严格要求。”

之前,如果没有额外的连接中继,用户只有在蓝牙设备的附近才能对其进行控制。但是,借助蓝牙Mesh网络技术以及集成的高性能功率放大器,CYW20820可帮助网络内的设备进行相互通信,轻松实现家庭内的全覆盖,让用户可以方便地通过手机、平板电脑和智能音箱上的应用程序来控制所有设备。

赛普拉斯ModusToolbox™开发工具支持CYW20819和CYW20820 MCU的开发,它为蓝牙Mesh网络和传感器套件提供示例代码和应用。同时,赛普拉斯还提供了CYW20719、CYW20706和CYW20735 BLE解决方案及CYW43438、CYW43570 Wi-Fi®和蓝牙Combo(组合)解决方案,可为智能家居设备打造基于Wi-Fi和全兼容蓝牙的Mesh网络。如果想了解更多关于赛普拉斯蓝牙Mesh网络解决方案的信息,请访问 www.cypress.com/ble-mesh

此外,赛普拉斯还提供基于CYW20819的认证蓝牙模块(CYBT-213043-02)和两个评估套件,目前均已开放预订。

采用CYW20819 MCU的赛普拉斯CYW20819EVB-02评估套件(用于评估和开发)将于2019年3月上市;

赛普拉斯Mesh网络评估套件(CYBT-213043-MESH)将于2019年第二季度上市。它使用了基于CYW20819 MCU、符合蓝牙5.0标准并且经过监管机构认证的模组,能够用于蓝牙Mesh网络应用开发。

赛普拉斯的蓝牙解决方案使用了目前被普遍选用的蓝牙协议栈,可使用ModusToolbox套件中的最新版本WICED® SDK进行设计,帮助开发人员轻松使用无线连接技术,进行智能家居照明设备、智能家电及健康类应用的设计。想要了解更多关于赛普拉斯无线解决方案的信息,请访问: www.cypress.com/wireless

围观 12

页面

订阅 RSS - MCU