MCU

MCU是Microcontroller Unit(微控制器单元)的缩写,它是一种集成了中央处理器(CPU)、存储器(ROM、RAM)、输入/输出端口(I/O)、定时器(Timer)、串行通信接口(UART、SPI、I2C等)和其他外围设备控制器的单个芯片。MCU通常用于嵌入式系统中,用于控制各种电子设备和系统。

由于其集成度高、体积小、功耗低以及成本相对较低等特点,MCU被广泛应用于各种嵌入式系统中,例如智能家居设备、医疗设备、汽车电子系统、工业自动化等。MCU的选择通常基于应用的需求,如处理性能、功耗、外设接口等因素。

全新RX23E-B相比现有版本数据速率快8倍,并包含125 kSPS ΔΣ A/D转换器

全球半导体解决方案供应商瑞萨电子(TSE:6723)今日宣布面向高端工业传感器系统推出一款全新RX产品——RX23E-B,扩展32位微控制器(MCU)产品线。新产品作为广受欢迎的RX产品家族的一员,具有高精度模拟前端(AFE),专为需要快速、精确模拟信号测量的系统而设计。

1.jpg

该新型MCU集成24位Delta-Sigma A/D转换器,转换速度高达125 kSPS(125,000采样/秒),比现有RX23E-A产品快8倍。与RX23E-A相比,它可以处理精确的A/D转换,同时将均方根(RMS)噪声降低至1/3(0.18µVrms @1kSPS)。RX23E-B能够更快速、更精确地测量应变、温度、压力、流速、电流和电压等关键参数,是高端传感器设备、测量仪器和测试设备的理想之选。特别值得一提的是,RX23E-B具备足够的性能来驱动工业机器人中使用的力敏传感器,这些机器人通常要求以10 µsec(100,000次采样/秒)的速度进行测量。这一产品还将AFE和MCU集成在单个芯片,从而缩小了系统的整体尺寸,减少元件数量。

Sakae Ito, Vice President of the IoT Platform Business Division at Renesas表示:“随着带有AFE传感器接口的RX23E-B推出,我们现在可以为从中端到高端系统的各类传感应用提供服务。我们还将继续扩展瑞萨的产品,以满足电池供电及无线传感器日益增长的低功耗需求。”

Takatsugu Nemoto, President at Meiko Electronics表示:“在Meiko Electronics,自RX23E-A推出以来,我们一直在开发评估板并为客户提供设计支持。现在,随着具备高速Δ-Σ A/D转换器的RX23E-B的推出,更多客户将能够体验到其增强的转换性能、紧凑的电路板设计和缩减的元器件数量所带来的好处。”

与RX23E-A类似,RX23E-B也集成了一个基于32MHz RXv2内核,且带有数字信号处理(DSP)指令和浮点运算单元(FPU)的CPU,并采用相同的制造工艺将AFE整合至单芯片中。它提供16位D/A转换器等新的外设功能,可实现测量调整、自诊断和模拟信号输出。该产品的+/-10V模拟输入可使用5V电源进行+/-10V测量,无需外部元件或额外电源。此外,还包括一个最大可支持40 SEG x 4 COM的LCD控制器和实时时钟(RTC)功能。

需要控制和测量多个目标(如机械臂、气体和液体分析仪)的大型仪器对分布式处理体系结构存在巨大需求。在分布式处理设计中,每个功能都可以作为单独的模块运行,由此负责电机控制、传感器测量和温度控制等各项任务,而非依靠专用MCU来管理所有功能。这种模块化方法允许进行独立开发,因而实现更大的设计灵活性,并简化了维护工作。由于每个模块都需要一个MCU进行计算,因此工程师可以利用内置AFE的MCU更轻松地开发传感器模块,而不是将分立AFE芯片与单独的MCU结合在一起。

RX23E-B提供支持高达125 kSPS A/D数据转换速率的版本和支持31.25 kSPS的版本。这两款产品都带来灵活的数据速率设置,从3.8 SPS到支持的最大值,允许用户根据其特定系统要求在数据速率和噪声之间选择最佳平衡点。这两款产品支持5.5mm见方的100引脚BGA封装和6mm见方的40引脚QFN封装,适用于紧凑型应用,也提供48引脚至100引脚的宽引脚封装。

成功产品组合

瑞萨将面向精确压力测量及控制而设计的全新RX23E-B MCU与负责驱动电磁阀的智能功率器件相结合,开发出高速压力控制系统。集成的高精度AFE实现精确的压力控制,并最大限度减少了设计中的元件数量,从而降低BOM成本与电路板安装面积。这些“成功产品组合”基于相互兼容且可无缝协作的器件,具备经技术验证的系统架构,带来优化的低风险设计,以加快产品上市速度。瑞萨现已基于其产品阵容中的各类产品,推出超过400款“成功产品组合”,使客户能够加速设计过程,更快地将产品推向市场。更多信息,请访问:renesas.com/win

供货信息

RX23E-B现已上市,同时还提供适用于RX23E-B的瑞萨解决方案入门套件。借助该套件,工程师无需进行软件开发即可评估AFE和信号转换的操作与功能。有关RX23E-B和入门套件的更多信息,请访问:www.renesas.com/rx23e-b

瑞萨MCU优势

作为MCU领域的全球领导者,瑞萨电子的MCU近年来的平均年出货量超35亿颗,其中约50%用于汽车领域,其余则用于工业、物联网以及数据中心和通信基础设施等领域。瑞萨电子拥有广泛的8位、16位和32位产品组合,是业界优秀的16位及32位MCU供应商,所提供的产品具有出色的质量和效率,且性能卓越。同时,作为一家值得信赖的供应商,瑞萨电子拥有数十年的MCU设计经验,并以双源生产模式、业界先进的MCU工艺技术,以及由200多家生态系统合作伙伴组成的庞大体系为后盾。关于瑞萨电子MCU的更多信息,请访问:www.renesas.com/MCUs

关于瑞萨电子

瑞萨电子(TSE: 6723),科技让生活更轻松,致力于打造更安全、更智能、可持续发展的未来。作为全球微控制器供应商,瑞萨电子融合了在嵌入式处理、模拟、电源及连接方面的专业知识,提供完整的半导体解决方案。成功产品组合加速汽车、工业、基础设施及物联网应用上市,赋能数十亿联网智能设备改善人们的工作和生活方式。更多信息,敬请访问renesas.com。关注瑞萨电子微信公众号,发现更多精彩内容。

围观 5

随着汽车智能驾驶和智能座舱技术时代的到来,MCU作为汽车各种电子控制单元ECU的主要组件,广泛应用于ADAS、车身、底盘及安全、信息娱乐、动力系统等。MCU芯片用量占车用半导体器件总量约 30%,不同类型汽车对于车规级MCU的需求量都非常大,传统汽车平均单车用量达到 70 颗以上,而智能汽车单车用量有望成倍增长。根据权威机构预测,新能源汽车搭载的MCU数量是传统燃油车中MCU数量的三倍多,随着智能汽车渗透率的提升,新能源汽车中,每辆智能汽车有望采用超过300颗MCU。

1.png

豪威集团于今年7月份发布OMX14x系列之后,现已经可以提供量产版本芯片样品供客户测试。目前已有多家Tier 1有定点项目测试并使用。

OMX14x Family

2.png

OMX14x系列分为OMX14xN,OMX14xB两个子系列,具体配置如下:

OMX14xN 详细配置

-Core and Memory

  • Arm®Cortex®-M4F@ 120 MHz

  • Up to 1MB Flash with ECC (A/B bank OTA support)

  • 128KB data Flash with ECC and EEPROM emulation

  • Up to 128KB SRAM with ECC

-Digital interface

  • 4x CAN-FD, 3x LIN/UART, 3x SPI, 2x I2C

  • 8-pin SMTIO

  • Up to 128 GPIOs

-Analog and Timers

  • 2x 12bit ADC with programmable trigger

  • 1x Analog comparator with 8bit DAC

  • 6x 16bit advanced timer (ADVTMR) with 8chs (IC/OC/PWM)

  • 1x 16bit always-on timer (AOTMR)

  • 1x 32bit general purpose timer(GPTMR)

  • 2x analog timer(ANATMR) with flexible trigger system

  • 1x real time counter(RTC)

  • 1x temperature sensor

-Security/Fu-Sa

  • AutoSAR SHE(HSM Light)

  • ASIL-B

-Temp. Range: Ta -40 to 105℃ (Tj=125°C)

-Power Supplies: 2.7-3.6V

-Package: LQFP64,100,144

3.png

OMX14xB 详细配置

-Core and Memory

  • Arm®Cortex®-M4F@ 120 MHz

  • Up to 2MB Flash with ECC

  • 128KB data Flash with ECC and EEPROM emulation

  • Up to 128KB SRAM with ECC

  • 32KB Retention SRAM

-Digital interface

  • 6x CAN-FD, 6x LIN/UART, 6x SPI, 2x I2C, 1x QSPI

  • 8-pin SMTIO

  • Up to 156GPIOs

-Analog and Timers

  • 2x 12bit ADC with programmable trigger

  • 1x Analog comparator w/ 8bit DAC

  • 8x 16bit advanced timer (ADVTMR) with 8chs (IC/OC/PWM)

  • 1x 16bit always-on timer (AOTMR)

  • 1x 32bit general purpose timer(GPTMR)

  • 2x analog timer(ANATMR) with flexible trigger system

  • 1x real time counter(RTC)

  • 1x temperature sensor

-Security/Fu-Sa

  • AutoSAR SHE(HSM Light)

  • ASIL-B

-Temp. Range: Ta -40 to 105℃ (Tj=125°C)

-Power Supplies: 2.9-5.5V

-Package: LQFP100, 144, 176

4.png

OMX14x系列主要优势

1、全国产化供应链车规MCU

OMX14x系列中OMX14xN为全国产化供应链的车规MCU。从Fab,到封测全部为国产厂家。

同时得益于豪威集团多产品线在供应链的协同优势,除了产品有性价比,更能提供安全稳定的供应。

 2、IP自研,优化

豪威拥有接近20年车规产品开发经验的研发团队。OMX14x系列除ARM core和eFlash外,所有IP自研,自研的优势除了消除IP授权成本,更重要的是可以对重要的IP结合真实用户场景针对性优化。

例如CAN-FD接口IP,多个CAN接口共享10KB RAM,优化后每个CAN模块可配置最多128个标准帧filter,最多64个扩展帧filter,最多32个TX buffer/FIFO, 最多64个RX buffer,RX FIFO0最多接收64帧报文,RX FIFO1最多接收64帧报文。

用户可以在RAM空间允许的范围内,根据实际使用情况自由地分配发送单元、接收单元和滤波器filter的数量,使用更灵活。充足的接收单元保证了即使总线处于高负载率的情况下,仍然能够充分接收确保不丢失报文。

豪威CAN-FD IP已通过第三方基于ISO16845-1一致性测试,可提供测试报告及压力测试报告。

CAN FD Buffer对比

5.png

CAN FD 第三方一致性测试报告

6.png

3、降低客户验证移植成本

OMX14x系列与客户实际使用产品能够硬件P2P完全兼容,系统验证时原始PCB直接贴片即可使用。无需重新Layout投板。

OMX14x系列支持Keil,Eclipse,IAR等主流IDE。软件移植提供独立的代码生成工具Auto Generator Tool,图形化配置GPIO,Clock及外设,提高移植效率。同时免费提供MCAL供客户使用。

来源:豪威集团 OmniVision

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

围观 33

近日,四维图新旗下杰发科技功能安全MCU芯片AC7840x与国内某头部Tier 1厂商合作,率先应用在新能源汽车动力电池域推出BMS方案。这标志着国产汽车MCU芯片厂商正式打破了一直以来仅应用于中低端车身域的传统,开始在汽车功能安全等级要求较高的核心区域崭露头角,为推动国产汽车芯片的创新迈出了关键一步。

动力电池,作为新能源汽车最重要的核心零部件,决定着电动汽车未来的普及和长远发展。BMS(Battery Management System)是一种监测、控制和保护车辆电池的系统,在电池运作系统中充当 “电池保姆”的角色。车规级MCU芯片作为BMS的核心组件之一,负责执行电池监测、均衡控制、温度管理、充放电控制、通信协议支持和故障诊断报警等各种任务,新能源汽车BMS系统通常要求MCU芯片须通过AEC-Q100、ISO 26262功能安全等一系列测试和认证,以确保电池的安全、高效运行。

1.png

杰发科技全系列车规级MCU芯片已完成新能源汽车动力电池域BMS方案的布局,包括AC7801x平台、AC7840x平台和AC7870x平台。AC7801x平台主要应用于电流传感器领域,已与霍尼韦尔进行合作,用于其电池包内电流传感器等车载硬件和设备中,充分保障新能源汽车电池系统安全工作及续航里程优化,目前已搭载到多款新能源汽车中,出货量突破百万颗。

中端BMS方案由AC7840x平台执行,可提供较为基础的电池监测和管理功能,包括电压监测、温度监测、充放电控制等,能较好控制成本,适用于较为简单的电动汽车应用场景。目前,杰发科技MCU芯片AC7840x已与多家Tier 1厂商就BMS方案达成合作,将搭载于多款新能源汽车上。AC7840x是杰发科技符合功能安全ISO 26262 ASIL-B支持AUTOSAR的车规级MCU芯片,符合AEC-Q100 Grade 1认证,信息安全符合SHE标准,支持安全启动。

高端BMS系统的方案设计和功能实现都更为复杂,由杰发科技即将于2024年推向市场的AC7870x平台执行,AC7870x是公司推出的符合功能安全ASIL-D多核高主频高端MCU芯片,支持锁步核和Hypervisor,符合国际Evita Full标准,支持国密SM2/3/4算法。搭载AC7870x的高端BMS方案可实现电池均衡、快充控制、故障诊断、安全保护等较全面的功能,适用于对性能、安全性和电池寿命有更高要求的高端电动汽车和能源存储系统。

近日,杰发科技凭借MCU芯片BMS方案的领先性,在2023xEV电池技术暨2023新能源光储充融合产业大会上一举斩获“BMS国产化芯片TOP企业”奖项。2023中国xEV动力电池系统产业链TOP企业评选由NE时代和RIO凌傲咨询推出,旨在发掘优质企业,凝聚研发力量,推动动力电池产业高质量发展,助力电气化转型。评委会由动力电池产业的外部专家,以及NE研究院资深团队共同组成,覆盖车企、电池、BMS、电池结构件、热管理、热安全等领域,并从市场表现、研发实力、未来潜力和财务状况等四个核心维度进行评选。   

2.png

除新能源汽车行业以外,杰发科技还提供包括工业储能在内的多领域BMS方案,出货量突破百万颗。

杰发科技作为国产汽车芯片行业的领军者,此次MCU进入新能源汽车动力电池域并推出BMS方案,不仅为中国汽车电子产业注入了新的活力,也展现了国产芯片在高端领域的竞争实力。未来,随着新能源汽车市场的不断发展和技术的不断创新,杰发科技有望在汽车电子领域继续发挥重要作用,为中国汽车产业的全面提升贡献更多力量。

来源:AutoChips

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

围观 33

近日,曦华科技完成由景林资本、洪泰基金、鲁信创投联合投资的超2亿元B+轮融资,老股东弘毅投资继续加持。2023年内曦华科技已连续完成两轮融资,深得资本市场关注。本轮融资资金将用于持续强化曦华科技在汽车芯片领域的核心技术研发,加速多款车规级新产品研发及迭代量产。

曦华科技是一家专注于智能感知和计算控制领域的本土IC设计公司。公司成立于2018年,为国家级高新技术企业,专精特新企业,目前已布局专利等知识产权超过400项,参与车规级功能安全国家标准起草,在深圳、上海、北京、合肥、成都设有研发中心和销售办公室;公司旨在为全球客户提供应用于智能终端的感知、计算控制类芯片和解决方案,从手机、智能穿戴等消费终端拓展到智能电动汽车应用,重点关注汽车智能座舱、新能源系统、自动和辅助驾驶系统等需求;公司产品包括高性能车载MCU及MCU+、人车交互传感器、屏幕显示驱动和桥接芯片等。

1.jpg

曦华科技M01系列芯片

汽车领域,曦华科技CVM011x系列(以下简称M01系列)多颗32位车规级MCU产品实现量产,并开始稳定向客户供货。产品已成功导入多家整车厂,落地定点项目数十个,被广泛应用于汽车车身控制、热管理、PEPS、发动机防盗模块、尾灯、储能、电子换挡器等场景。同时,M02系列面向域控制器多核MCU正在开发中, 并已提前锁定国内头部OEM客户,该系列将主要面向动力/底盘/ADAS域等应用场景。

公司车载事业部产品线包括高性能32位MCU、MCU+CapSensor等;目前已获得德国莱茵颁发的ISO26262 ASIL-D功能安全流程认证,以及国创中心颁发的ISO26262 ASIL-B功能安全产品认证(CVM014x系列);2023年Q1季度,曦华科技又正式推出基于ARM Cortex M0+内核的车规级MCU新品CVM011x系列。公司全系产品均通过AEC-Q100车规可靠性测试标准,并内嵌信息安全模块及加密引擎。目前,CVM014x系列、CVM011x系列车规级通用型MCU已正式量产;CVM012x系列预计在2024年上半年量产出货,目前已获得多家头部客户的支持。

2.png

中国正从汽车大国向汽车强国迈进,汽车产业面对电动化、智能化重大变革,啓需自主可控、供应链安全的国产汽车芯片支持,行业空间巨大。曦华科技的车规MCU产品已实现量产稳定供货,本轮融资将用于加快高端产品研发及深化产业生态建设,纵向上研发功能更强大和更高安全等级的多核MCU系列,横向上拓展MCU+芯片和方案,以丰富的产品矩阵更好满足客户需求。同时,公司也致力于推动整个行业的蓬勃发展,与上下游产业链形成良性的联动和配套供,携手共进,铸就汽车品质新时代。

来源:深圳曦华科技

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

围观 10

1.jpg

2.jpg

来源:航顺芯片

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

围观 15

日前,德州仪器参加了由电子发烧友主办的 2023 电机控制先进技术研讨会,并凭借其高性能的 MSPM0G3507 芯片,获得 2023 年度电机控制器十大主控芯片奖项。这款芯片在电机控制领域具有丰富的应用场景,其卓越的性能和稳定性赢得了业内专家和客户的赞誉与肯定。

1.jpg

德州仪器 MSP 产品线应用工程师何帅先生

出席颁奖典礼并领奖

德州仪器的 MSPM0G3507 微控制器 (MCU) 是一款高度集成的超低功耗 32 位 MCU。它基于增强型 Arm® Cortex®-M0+ 32 位内核平台,工作频率最高可达80MHz。这款低成本 MCU 提供高性能模拟外设集成,支持 -40°C 至 125°C 的工作温度范围,并在 1.62V 至 3.6V 的电源电压下运行。

此外,MSPM0G3507 还配备了丰富的外设接口,方便用户进行系统集成。这款芯片适用于各种类型的电机控制系统,包括直流无刷电机、步进电机、永磁同步电机等。其广泛的应用领域包括工业自动化、电动车、航空航天、机器人等。

MSPM0G3507 的主要优势:

·高性能模拟外设集成:具有两个总计多达 17 个外部通道的 12 位 4Msps ADC、一个 12 位 1Msps DAC、三个高速比较器、两个零漂移零交叉运算放大器和一个通用放大器。

·智能数字外设:提供了丰富的数字外设,包括两个 16 位高级控制计时器、五个通用计时器、两个窗口式看门狗计时器以及一个具有警报和日历模式的 RTC。

·超低功耗:具有优化的低功耗模式,待机时仅需要 1.5µA 的电流,同时保留 RTC 和 SRAM。这使得 MSPM0G3507 在低功耗应用中具有优势,可以大大延长电池寿命,降低能耗。

·丰富的存储资源:提供了 128KB 的闪存和 32KB 的 SRAM。能够满足基础的电机控制应用的存储需求,同时保持了低功耗的特点。MSPM0G3507 也可以通过外部扩展存储器来灵活地实现更大的数据存储和处理能力。

·增强型通信接口:提供了四个 UART、两个 I2C、两个 SPI 以及 CAN 2.0/FD。这些通信接口可以让 MSPM0G3507 与多种设备或系统进行高效的数据交换,实现电机控制的精准和稳定。

德州仪器还提供了一个基于 MSPM0G3507 的开发板,该开发板集成了一个在线调试探针,可以方便设计人员进行编程、调试和能耗测量。

MSPM0G3507  作为今年发布的 MSPM0 家族的一员,高性能模拟和低功耗特性使其成为理想的主控芯片。TI MSPM0 系列低功耗 MCU 包含具有不同模拟和数字集成度的器件,可让客户找到满足其工程需求的 MCU。MSPM0 MCU 平台将 Arm® Cortex®-M0+ 平台与超低功耗整体系统架构相结合,使系统设计人员能够在降低能耗的同时提高性能。

来源:德州仪器

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

围观 25

Silicon Labs(亦称“芯科科技”)制作本篇设计应用文章将说明8 位微控制器(MCU)的独特优势,如何为开发人员实现简化的设计以提升开发效率并节省总体成本。点击链接获取完整内容:https://cn.silabs.com/mcu/8-bit-microcontrollers/why-8-bit-mcus-are-here-to-stay 

几十年来,8位MCU)一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。简单、有效的 8 位 MCU 在推动智能物联网产品的发展中发挥了核心作用。虽然其后代的功能(如32 位和无线 MCU)继续领先,但对于广泛的应用来说,8 位 MCU 的普及和偏好没有放缓的迹象。

业界已经证明,尽管不可否认对高端、尖端解决方案存在需求,但对于需要8 位支持的简单应用来说,将始终存在一个巨大的市场,且这一需求保持稳定。更大并不总是更好,尤其是在优先考虑低功耗、长寿命和高产量的领域。

市场对 8 位 MCU 的成熟需求

玩具、电动工具、医疗器械、烟雾报警器、安全、个人护理、家用电器和汽车电子元件等行业仍然需要能够可靠地执行任务且复杂度尽可能低的MCU。8 位微控制器能够满足这一需求,允许制造商将额外的时间和资源用于更高的维护或新兴业务领域。

此外,8位 MCU 的持续使用使制造商能够在其产品线中为客户提供真正的定制选项。选择更多功能和更多连接性的能力,或者相反,选择基线模型的能力,支持更广泛和更多样的产品组合。

1.png

8位MCU对于设计简化的刚需

遗憾的是,一些微控制器制造商似乎计划逐步淘汰8 位微控制器架构,这不利于此类微控制器的开发者和客户。虽然 32位 MCU 无疑为相应的应用提供了更多的功能和连接选项,但也增加了复杂性。在某些情况下,32 位 MCU 需要完全不同的编码语言或开发环境。数十年来,广泛使用的8 位 MCU 已经积累了大量代码库,这样做抵消了利用广泛的公共 8 位代码库可能节省的时间。这也使得开发人员更难(甚至不可能)仅使用 32 位 MCU 将传统组件和部件集成到新产品中。

上佳的解决方案是采用各种MCU 选项,从 8 位开始,到 32 位,再到无线甚至更高。对于不需要无线连接的简单应用而言,开发人员可以选择可靠、成熟的8 位 MCU 来节省空间和成本。随着复杂性的增加,开发人员在理想情况下可以创建混合 MCU 架构,为应用中所需的每项任务选择正确的位数。凭借这种灵活性,客户可以从一系列解决方案(从“好”、“更好”到“最佳功能”)中进行选择,以满足他们的特定需求和预算。

为什么开发平台对 MCU 选择至关重要

因此,一个关键的考虑因素是您MCU 协同工作的能力,特别是当涉及到您的编码语言时。为了确保这一点,您的MCU 应该在单个开发环境中是可编程的,无论 MCU 的位数或连接性如何。这使得开发人员不必为同一应用中的不同 MCU 维护两套单独的代码数据库,并允许将传统 MCU 集成至新兴应用中。

一个额外的好处是能够根据不断发展的需求、标准或要求(包括安全方案)来改进您的产品和应用程序。在单个应用中选择不同MCU 的能力可确保您的基准解决方案保持健康、稳定,同时您的前沿投资完全能够经得起未来考验。

芯科科技坚守其 MCU 根基

作为提供卓越速度和低功耗的行业领导者,芯科科技以支持尖端物联网应用和无线解决方案而闻名。然而,我们提供(并将在可预见的未来持续支持)高质量、价格合理的8 位 MCU 产品线,满足消费产品和医疗器械行业及其他领域的实际需求,这也是事实。

好消息是,所有芯科科技MCU(8 位、32位和无线)都可以在 Simplicity Studio 中进行编程,这是我们所有技术、SoC 和模块的统一开发环境。

2.png

Simplicity Studio 包括 SDK 资源、软件和硬件配置工具,以及集成开发环境(IDE),其中包含行业标准代码编辑器、编译器和调试器,无需额外成本。

减轻您对MCU 如何在应用中协同工作的担忧,或者如果您正在构建不必要的复杂性或未使用的功能,将使您确信您正在充分利用您的开发和制造资源。

探索芯科科技全系列8位和32位MCU产品组合:https://cn.silabs.com/mcu

来源:SiliconLabs

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

围观 20

01、问题现象与分析

客户项目中使用的 MCU 型号是 STM32G0B1, 他们反馈在代码中尝试擦除并编程 FLASH时, 发现 FLASH 的状态寄存器显示编程错误(如图 1 所示). 问题是当前代码还没有开始擦除和编程, 怎么就有了编程错误标志了呢 ? 如果不将此错误标志清除, 后续的编程操作无法继续.客户对于每次想要操作 FLASH 之前这个清除动作既感觉多余也感觉别扭, 且还不得不做, 且做了也不知对整个产品的稳定性会有什么样的影响 ?

1.jpg

图1.Flash 编程错误标志

访问客户时, 客户也曾私下里反馈, 经常在网络论坛上获取类似这种问题, 客户怀疑是不是STM32 本身就存在某些未曾公开的问题 ? 其实, STM32 的所有问题都已公开在勘误手册中, 如果客户的问题在勘误手册中没找到, 那么极有可能是自己代码哪里出了问题。 

问题分析及测试 

查看客户的工程, 由于客户的工程相当庞大, 各个模块和任务相互交叉, 一时半刻是很难从如此庞大的工程中找出问题, 更麻烦地是, 客户的电脑是有加密系统的, 导致在工程内查找任何字符和函数都相当痛苦. 好在是, 问题能够稳定地复现。 

于是尽量精简客户的代码, 将所有不相关的任务,模块统统移除掉, 并且保持问题能够重现. 并使其能够在 ST 官方的 NUCLEO 板上重现. 这样一来, 就完全可以脱离客户原来的硬件环境进行测试. 由于客户的环境非常不利于查找问题, 效率事倍功半. 于是, 将客户的最小化工程提取出来(与软件泄密无关), 并拿到办公室进行测试. 很快就找到了问题所在。 

原来客户的工程中有用到两个串口, 串口 2 和串口 3, 都是使用的 DMA 模式。客户不同的软件人员负责不同的模块, 最终在整合代码时, 串口 2 并没有使用, 所以串口 2 对应的初始化代码是删除掉的, 但由于串口 2 和串口 3 的 DMA 中断是共用一条中断线, 是相同的中断入口, 在中断处理时,串口 2 的 DMA 处理函数和串口 3 的处理函数都会一起处理. 问题就出在串口 2 的 DMA 中断处理并没有移除 。如 stm32g0xx_it.c 文件 :

2.jpg

如上图,DMA 的通道 4~7 以及 DAM2 的通道 1~5 都是共用一个中断入口的。在这个中断处理函数内, 串口 2 并没有使用到, 但其对应处理代码由于疏忽仍然保留了下来。句柄hdma_usart2_rx, 和 hdma_usart2_tx 内的数据成员很多都是不定内容或为 0. 当代码运行到函数内部, 如下图所示出问题的代码行:

3.jpg

如上面代码所示, 代码运行到上图 866 行代码 hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU));时, 实际上是给错误地址 0x0800 4109 赋值了, 此地址是内部 FLASH 地址, 这样相当于直接写 FLASH, 肯定会出错, 这也是为什么FLASH->SR.PGSERR 置位的原因. 我们都知道, 写内部 FLASH, 必须先擦除, 才可以写入, 而且写也是调用对应的 HAL API 函数, 且还需要先写 key 解锁 FLASH 等操作, 有一套写操作流程. 并不是直接用赋值语句, 这样操作出现问题一点也不奇怪。

当在中断中将串口 2 的 DMA 对应处理函数移除掉后功能就恢复正常, 这也佐证了结论的准确性。 

另外, 客户反映, 这个最小化工程, 相同的代码, 使用 IAR 时测试会出错, 但使用 KEIL 时并没有出错. 这个很奇怪. 这就引出的另外一个问题. 相同代码, 不同编译器运行结果不一致的问题。于是继续找原因, 对比 IAR 和 KEIL 的调试情况, 发现当代码运行到图 2 中 857 行代码 if 语句时其判断结果不相同. IAR 调试环境会进入到 if 语句内容, 从而导致错误的给内部 FLASH 地址赋值, 进行导致问题. 而 KEIL 调试环境并没有进入到 if 语句内部, 因此并没有触发问题. 那么为什么if 语句的判断结果不一样呢?

为了方便并避免不同编译器对长语句的执行顺序的差异, 将这个 if 长语句拆开:

4.jpg

如上红色代码, 用它替换原来的 if 判断语句. 结果发现 tmp1 在 IAR 和 KEIL 两个编译器环境中的值是一样的, 但是 tmp2 的值却不一样, 正是由于 tmp2 值的不一样, 导致 if 语句的最终判断结果不同。进一步发现, tmp2 的值主要是由于 flag_it 的值在两种编译器环境不一样所致。

5.jpg

如上 IAR 编译器环境, flag_it 的值为 0x2000 10f8。

6.jpg

如上 KEIL 编译器环境, flag_it 的值却是 0x2000 14F0。 

那么 flag_it 的值又是如何来的呢? 从如下代码:

7.jpg

如上所示, flag_it 的值来自 hdma->DmaBaseAddress->ISR, 原来是 DMA 相关 ISR 寄存器的值, 但实际调试如下:

8.jpg

如上 IAR 调试环境下, 出错时, hdma->DmaBaseAddress 实际指向的是地址 0, 其成员 ISR为其第一个成员, 实际也就是地址 0 上的数据. 我们都知道, 在默认情况下, MCU 的地址 0 默认是映射到内部 FLASH 的首地址 0x0800 0000 上的, 而此地址一般保存的是栈顶.。也就是说, IAR 编译环境下, 地址 0 指向栈顶地址 0x2000 10f8。 

对应地, 在 KEIL 调试环境下:

9.jpg

如上 KEIL 调试环境, hdma->DmaBaseAddress 同样地实际指向的是地址 0, 而地址 0 的上对应的数据为栈顶地址: 0x2000 14F0。 


也就是说, 在不同的 编译器 IAR 和 KEIL 环境下, 地址 0 指向栈顶地址是未必相同的, 进而导致两种编译环境下运行相同的代码结果不一样。 

我们知道, 通常栈地址是由编译器来指定的, 在默认情况下, IAR 和 KEIL 都会将栈放在内存的所有静态变量之后来分配. 其具体的分配地址这两个编译器都会默认按自动填充地方式来. 实际分配的地址具有不确定性, 当然, 我们也可以通过链接配置文件(IAR 的.icf 文件, KEIL 的.sct 文件)来将栈地址指定某一固定地址, 但我们通常不会这么做, 且完全没有必要.

02、小结

至此,将问题稍作小结。给变量 flag_it 实际赋值栈顶地址, 不同的编译器环境下, 此栈顶地址的不一致导致变量 flag_it 的值不一致, 进而导致 if 语句的判断结果不同, 最终导致 IAR 和 KEIL 这两个编译器环境下运行相同代码而结果不一样的情形。

03、后记

有时会听到某某客户反馈说, 在网络上看到 STM32 某款 MCU 存在某某问题, 然后问是不是 ST 故意隐瞒 ? 

不存在故意隐瞒的说法,芯片终究是要经过终端验证的。 

正常来讲, 任何芯片存在应用局限是正常的。对于 ST,一方面会正式地将所有已知 bug或应用局限放入到勘误手册中公示, 大家需要注意使用最新版勘误手册;另一方面,对于 ST 量产芯片,因本身缺陷导致的问题的概率非常低。事实上,绝大多数问题都来自我们自身的应用,遇到问题若简单的基于芯片品质来回猜疑非常不利于开发者静下心来查找问题原因。其实,面对问题时,我们很多人欠缺的并不是多么高深的水平,而是一颗冷静、自信并富有条理的心。

来源:STM32单片机

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

围观 28

页面

订阅 RSS - MCU