武汉芯源半导体

吹风机一直以来都是消费者日常生活中的高频刚需产品,而高速风筒更是因为其快速干发、护发养发和低噪音的优势,逐渐成为家庭不可或缺的电器之一。

高速风筒通过采用高速电机和优化的气流设计,能够在短时间内快速吹干头发,同时减少噪音和能耗。然而,要实现这些功能,需要有一个稳定、可靠且智能的控制系统。MCU作为高速风简控制系统的核心,承担着传感器数据采集、高速电机控制、用户界面交互以及安全保护等多重任务。武汉芯源半导体CW32L010系列MCU可支持低成本、高性能、低功耗、高度集成的高速风筒方案,以满足市场对高效、安全、智能的高速风筒需求。

1733831726249142.png

本文将介绍武汉芯源半导体CW32L010系列单片机在高速风筒的应用方案,该方案采用的是目前市场上主流的MCU+MOS+预驱方案,使用32位MCU CW32L010F8P6作为主控单元,无刷马达的开关电路采用分离的MOS,再配合预驱。这种方案的性价比高,匹配灵活,适合大规模生产‌。

1733831742305422.png

CW32L010高速风筒应用方案概述

1、电机控制:CW32L010通过PWM信号精确控制电机转速,实现风速的平滑调节。同时,集成电流检测功能,实时监测电机工作状态,防止过载和过热。

2、温度控制:利用温度传感器和CW32L010的ADC功能,实时监测出风口温度,并通过PID控制算法自动调节加热元件功率,保持恒定温度输出。

3、用户界面:CW32L010通过按键接口接收用户指令,控制风速、温度等设置,并通过LED或LCD显示屏反馈当前状态。

4、安全保护:集成过热、过流、短路等保护功能,确保风筒在异常情况下自动断电,保障用户安全。

5、通信接口:可选配蓝牙、WiFi等无线通信模块,实现与智能手机APP的互联,提供远程控制、状态监测、智能推荐等功能。

3.png

图:CW32L010F8P6高速风筒应用框图

CW32L010高速风筒方案特点

1、高性能处理能力:主控采用CW32L010F8P6,基于ARM Cortex-M0+ 32位高速处理器内核,能够实时处理复杂的控制算法,确保风筒在不同风速和温度设置下的稳定运行。

2、低功耗设计:CW32L010采用特别工艺制程,将待机电流控制在0.3uA,高温待机电流是竞品平均水平的1/4~1/8。可延长风筒的电池寿命(对于可充电式风筒)或降低整体能耗(对于插电式风筒)。

3、高度集成:CW32L010F8P6集成了多种外设接口,所有型号都提供全套的通信接口(二路 UART、一路 SPI 和一路 I2C)、12 位高速 ADC、四组通用和基本定时器、一组低功耗定时器以及一组高级控制 PWM 定时器,方便与传感器、电机驱动器、显示屏等外围设备连接,简化电路设计,降低成本。

4、智能控制:支持多种智能控制算法,如温度控制、风速调节、过热保护等,提升用户体验,同时确保使用安全。

5、易于开发:武汉芯源半导体提供丰富的开发工具和软件库,支持快速原型设计和调试,缩短产品开发周期。

4.png

注:CW32L010内部框图

CW32L010 可以在 -40℃到 85℃的温度范围内工作,供电电压宽达 1.62V ~ 5.5V。支持 Sleep 和 DeepSleep两种低功耗工作模式CW32L010 可以在 -40℃到 85℃的温度范围内工作,供电电压宽达 1.62V ~ 5.5V。支持 Sleep 和DeepSleep两种低功耗工作模式。

CW32L010系列产品提供 QFN20、TSSOP20、SOP16 三种不同的封装形式,不同封装的产品所能实现的功能有所不同,具体情况如下表所示:

5.png

注:CW32L010 家族产品功能列表

随着国产品牌在技术上的成熟,高速风筒市场迎来了飞速的增长,这对风筒方案的成本控制提出更高的要求。武汉芯源半导体的CW32L010系列产品是基于华虹半导体最新的90nm超低漏电嵌入式闪存工艺,极其出色的性能和更合理的价格定位,为用户带来了极具竞争力的选择,实现了高性能与低成本的完美结合。

来源:武汉芯源半导体

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

围观 31

作者:电子创新网张国斌 

Cortex™-M0+是ARM公司2012年发布的一款拥有极高能效的低功耗、低成本微控制器内核IP,基于32位ARMv6内核架构,支持Thumb/Thumb-2子集ISA,单核心,如果采用低成本的90nmLP工艺制造,其核心面积区区0.04平方毫米,每MHz单位频率消耗的电流、功耗分别仅有9μA、11μW,基于该内核的MCU可广泛用于家用器具、白色家电、医疗监控、测量、照明、马达控制设备等领域。

发布10多年来,基于Cortex™-M0+的MCU已经大量出货,知名的半导体厂商如TI 、ST 、NXP等多家MCU厂商都推出了基于Cortex™-M0+的MCU ,如今,物联网市场如火如荼 ,在大量基于Cortex™-M0+的MCU已经面市的情况下,Cortex™-M0+ MCU在以这片红海中还有发展的空间吗?

答案是:有,近日武汉芯源半导体推出的基于Cortex™-M0+内核CW32L010新品系列就是通过差异化的细节设计开辟了属于自己的新赛道。

1730182416867487.png

武汉芯源半导体有限公司技术总监张亚凡在接受电子创新网独家专访时表示:“我们此次新品发布打出的口号是“树立M0+产品行业新标杆”,目前我们提供三种封装形式,分别是QFN20,TSSOP20和SOP16。分别针对当前通用应用环境下的小型化需求、标准兼容需求以及引脚间距大一些、引脚数要求少一些的需求。”

他补充说该产品瞄准的是需求量最大的通用20引脚入门级32位MCU市场,最大的引脚数就是20。和早期功能简单的8位机相比,芯源半导体提供了高达64Kbyte的FLASH容量和高达4Kbyte的RAM容量。

“这是因为很多客户发现在开发过程中,如果用市面上常规的20引脚产品,Flash配置通常为16K,32K,RAM通常为2K或者1K,经常遇到存储容量不够导致开发进行不下去的问题。我们这次得益于华虹在90nm制程上Flash技术的长足发展,直接给到客户翻倍的存储容量,让客户在入门级的MCU上也可以灵活安排程序和数据存储。”他指出,“除此之外,作为一个标准品通用MCU,我们该提供的配置都有提供,没有过度的裁剪。比如说应该配备的、各种定时器、ADC、SPI、I2C、UART等等。另外值得注意的是,这是一个标准工业级温度范围的、具备宽电压工作特性的、经由正规设计、验证和测试流程,用正向研发方式做出来的产品,是我们芯源半导体在MCU技术道路上的一个重要里程碑。”

据介绍,CW32L010系列采用主频高达48MHz的ARM® Cortex®-M0+内核,配备高速嵌入式存储器,包括多达64K字节FLASH和4K字节SRAM。该系列接口丰富,所有型号均提供完整的通信接口(双路UART、一路SPI和一路I2C),以及12位高速ADC、四组通用和基本定时器、一组低功耗定时器和一组高级控制PWM定时器。

2.png

此外,CW32L010支持在-40℃至85℃的工作温度范围内运行,供电电压范围为1.62V至5.5V,同时具备Sleep和DeepSleep两种低功耗模式。

此外,它还有如下特点:

1、64K超大Flash存储容量, 数据保持时间长达25年,支持擦写保护、读保护和安全运行库保护功能

2、黑客级代码安全防护:创新的安全特性 - 允许用户划定一块指令存储区域,仅通过指令总线取指令执行,禁止数据总线访问,即使攻击者尝试通过下载间谍程序挟持内核也无法访问该区域,有效保护敏感算法和关键功能。

3、极限超低功耗:待机电流低至0.3uA - 高温待机电流仅为1.2uA,远低于竞品平均水平。

4、全新设计的高级定时器:兼容G4相关IP - 新增PWM移相、多点比较等功能,单个高级定时器支持多达6对互补PWM输出,灵活调整PWM边沿位置。

5、高精度RTC补偿:补偿精度达0.060ppm - 支持亚秒级读数,优化了RTC补偿机制。

6、全面升级的低功耗串口:支持LIN、RS485硬件使能 - 接收数据时可灵活配置接口电平,产生关键字中断和帧超时中断,支持多种硬件功能。

7、出色的Latch Up测试成绩:高温闩锁门限测试成绩高达±600mA - 远高于行业一般水平,提供强大的ESD防护能力,是相比竞品一般水平的3~6倍

8、高性能ADC:16路ADC输入,各通道采样率可达2M - 采样保持时间可独立配置,适应不同应用需求。

9、内部时钟源特性优异:内置RC时钟源技术特性优于竞品 - 无论是HSI还是LSI,都表现出色,降低了对外置晶体的依赖,优化了成本。

张亚凡特别指出该新品超低功耗评估指标非常多,一般将待机电流(常温/高温)、全速运行电流等几个主要指标拿出来比较,CW32L010采用特别工艺制程,将待机电流控制在0.3uA,特别是高温待机电流是竞品平均水平的1/4~1/8。

精雕细琢打造产品,细节见真章

他表示在高速ADC方面,CW32L010的ADC配置比以前增加了一个功能:就是每个采样通道都是可以独立配置采样保持时间的,他说这也是客户提的要求。因为如果这个功能没有的话,客户在对不同的信号源进行采样的时候,就得被迫用同一种采样保持时间,那实际工作的时候就存在众口难调的问题,有些内阻比较大的信号源要求比较长的采样保持时间,如果加信号调理的话就又需要额外的开支了。现在的设计比较好,不同的通道独立配置时间,让ADC配置的适应性灵活性更强了。

在这次新品发布会上,武汉芯源半导体提出了在安全方面新品是“黑客级安全代码防护”,对此张亚凡表示作为专业的MCU,必然考虑用户的代码及知识产权保护。尽管目前大多数MCU都支持多种安全等级,阻止通过SWD/ISP接口读取Flash内容。但通过下载间谍程序,用挟持内核的方式对Flash指令区做数据访问一般都被允许。CW32L010则可以阻止这个入侵,芯源半导体独创性的允许用户划定一块指令存储区域,在这个区域内只能通过指令总线取指令执行,但不允许通过数据总线访问数据,用户可以将敏感的代码库存储在这个区域,只能调用,无法复刻。除此之外,CW32全系列产品,符合IEC60730,IEC61508 功能安全设计规范。

此外,他还强调该MCU的IO口带有滤波防抖,“我们用MCU的时候经常会用IO口来检测按键、或者继电器触点的状态变化,传统上的思路是,按键产生中断的时候不要立即马上去处理他,要延迟10个毫秒左右再去判断一次,如果两次判断都是有动作,那再去处理也不迟。今天这个由软件来做的按键防抖功能,我们用硬件来完成了。”他解释说,“我们是怎么做的呢?我们的IO口的信号传输到中断系统的通道,可以选择去通过一个数字滤波器,而这个数字滤波器的刷新时钟可以在上面这些时钟源里面去自由选择。那如果我们选择了这个速度比较低的LSI作为这个时钟源,那就相当于用比较慢的速度对这个输入信号进行了多次的确认,相当于节省了软件的开销了。同样的,如果外部有滤波电容的话也就不再需要原先那么大的,这是节省了硬件开销了。”

此外,他表示该MCU的内部时钟源的温度特性和校准结果非常优秀,“我们都知道,我们这个规格的MCU,配置外部晶体的客户是很少的。系统稳定运行的时钟源基本都靠内部的RC振荡器来提供。这里如果没有设计好的话,很容易出现时钟偏差的。严重的时候还会影响串行通信波特率上不去,以及电机转速不准确,时序响应不及时等等问题。而我们做到的内部时钟的出厂精度是完全满足客户的苛刻要求的,目前没有客户对这个性能指标不满意,在国内工艺制程里面也很难找到对应的参数成绩。”他解释说。

针对未来产品规划,他表示:“有的客户说,CW32L010很好,但是RAM容量4K还是偏少了一点,引脚数还是少了一点。那我们下一个产品会解决这个问题,那就是CW32L011,它被设计为最大32个引脚,内置6Kbyte的RAM,同时它是我们第一颗96M主频的Cortex-M0+产品。”

此外,他透露:“另外为了更好的适应电机控制应用,我们还会出一颗48Pin的产品,在继承了CW32L011的96M主频的同时,还增加了两路DAC、两路OPA、以及8Kbyte的RAM,DMA控制器以及除法开方硬件单元,Cordic三角函数计算器等等硬件,使得她在应对电机控制应用的时候更加的游刃有余。”

受益于物联网以及电子产品智能化的发展,近几年全球MCU市场规模呈现增长的趋势。根据Precedence Research的数据,2022年全球MCU市场约为282亿美元,预计2030年有望达582亿美元,未来 8年CAGR为9.48%;同时根据IHS和IC Insights也预测2022年中国MCU市场规模约为390亿元,同 比增长7.7%,预计2026年将有望突破500亿元,未来增长潜力巨大。

在这个巨大的增量市场中,虽然玩家众多,但是只要在产品上以客户需求为导向,精雕细琢,精心打造,总能开辟出属于自己的新赛道。(完)

注:本文为原创文章,未经作者授权严禁转载或部分摘录切割使用,否则我们将保留侵权追诉的权利

围观 32

10月14-16日,2024年慕尼黑华南电子展(electronica South China)于深圳国际会展中心(宝安新馆)成功举办。

1.png

在刚刚落幕的2024年慕尼黑华南电子展上,武汉芯源半导体有限公司凭借其优秀的产品性能和技术能力,荣获“2024年度硬核MCU芯片奖”、“2024年度卓越成长表现企业奖”、“IoT 最具潜力企业奖”三项大奖。这一荣誉标志着武汉芯源半导体在国产半导体行业中稳步发展,以及其产品在市场上得到广泛认可。

1729559990212144.jpg

武汉芯源半导体的荣誉时刻

在芯师爷举办的“2024年度硬核芯评选”活动中,武汉芯源半导体的CW32系列MCU产品以其出色的产品性能和高可靠性等,荣获“2024年度硬核MCU芯片奖”。同时,公司因其在技术研发、市场拓展和品牌建设方面的卓越表现,被授予“2024年度卓越成长表现企业奖”。

1729560009206770.png

在电子发烧友举办的“2024第九届IoT创新奖”评选活动中还荣获“IoT 最具潜力企业奖”。IoT创新奖由领先的电子科技媒体“电子发烧友网” 主办,已连续成功举办八届。该奖项旨在发掘和表彰IoT行业中具有开拓精神并为企业带来杰出贡献的领导者,具有创新价值和深远影响的杰出技术,以及在过去一年中,被市场和行业用户所高度关注和认可的创新产品。

1729560022466758.jpg

产品展示与技术交流

武汉芯源半导体受邀参加此次慕尼黑华南电子展。展会期间,武汉芯源半导体展示了其最新的安全低功耗MCU产品CW32L010系列,以及通用高性能CW32F003/F030系列,安全低功耗CW32L083/L052/L031系列,无线射频CW32W031/R031系列,车规MCU CW32A030系列等。这些产品在智能家居、工业控制、消费电子和电动工具等多个领域的应用案例,吸引了众多参观者的目光。

1729560045841965.png

展会期间 ,还吸引了芯查查以及电巢科技两家媒体现场采访。

1729560062186801.png

在芯师爷举办的“第六届硬核芯生态大会”上,武汉芯源半导体高级销售经理高先贵发表了主题演讲《树立M0+产品行业新标杆,武汉芯源半导体CW32L010安全低功耗MCU引领创新》,从公司介绍、新品CW32L010、生态应用三个方面进行了演讲,详细介绍了武汉芯源半导体的发展历程、CW32L010的技术优势以及CW32的生态及应用。

1729560083204113.jpg

行业认可与市场影响力

武汉芯源半导体的获奖不仅是业界对其产品实力的认可,也是对其市场影响力的肯定。公司表示,将继续努力,为客户提供更优质的产品和服务。同时,继续携手合作伙伴,共同推动中国半导体产业的发展,为全球电子产业的进步贡献力量。

来源:武汉芯源半导体

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

围观 27

随着智能家居技术的不断进步,即热式热水器作为现代家庭中的重要组成部分,正逐渐向智能化、节能化方向发展。本方案通过采用武汉芯源半导体的CW32F030系列单片机,以其高性能、超强抗干扰等特性,为即热式热水器的智能化提供了理想的解决方案。

即热式热水器的智能化需求

即热式热水器需要快速响应用户的用水需求,同时保证水温的恒定和安全。智能化的即热式热水器应具备以下特点:

快速加热:能够在短时间内提供所需温度的热水。

温度控制:精确控制出水温度,避免烫伤或能耗浪费。

节能高效:根据用水习惯自动调节功率,减少能源消耗。

安全保护:具备漏电保护、过热保护等安全功能。

CW32F030K8T7在即热式热水器的控制说明

1.png

图:CW32F030K8T7在即热式热水器的控制板

1、硬件要求

加热器参数:AC 220V 3KW;  

吸水泵参数:DC 12V  功率40W   水压0.8Mpa  水流4L/Min;

2.按键功能说明

2.1:按“+”或“-”键可对设定温度进行设置。每按一次“+”键,数值增加 1;每按一次“-” 键,数值减少1。若持续按住“+”键或“-”键 2 秒钟以上,数码管的数值则以 3/S的频率快速增加或减少,设定完后闪烁显示设定温度,无操作3S后静止显示当前的水温。“+”或“-”键只能单向设置,即:按“+”键只能增加;按“—”键只能减少。

温度设置范围:摄氏温度设置值:25~55℃。(控制精度要求±1℃)

2.2:同时长按“+”“-”键 3—5 秒,关闭加热功能,数码管显示OF;再次同时长按“+”“-” 键3—5 秒,开启加热功能,数码管显示当前水温。长按:消除滤芯清洗报警,同时计时清零。

3.控制要求

3.1 接通电源自检,如果有效,蜂鸣器发出“嘀”的一声,数码管自动显示“--”;

3.2 程序里面有累计运行30小时后滤芯清洗警报功能,长按“+”键 3—5秒,消除滤芯清洗报警故障代码。

3.3 当设置温度高于当前水温时,加热功能开始加热;当水温加热到设定温度后加热功能关闭,吸水功能正常工作。

2.png

图:CW32F030K8T7在即热式热水器的电路图

CW32F030K8T7在即热式热水器的应用优势

1. 系统特性优异

● ARM® Cortex®-M0+ 内核;最高主频64MHz;

● 工作温度:-40℃ 至 105℃;宽压供电:1.65V 至 5.5V;

CW32F030C8T7基于ARM Cortex-M0+内核,提供高达64MHz的处理速度,能够快速处理加热元件的控制信号,确保热水器能够迅速响应并提供热水。

2.内部资源丰富

●支持25路I/O接口;

●12位高精度ADC,±1 LSB,最高1M SPS转换速度;

●三路低功耗UART,支持小数波特率;

●两路SPI 接口 12 Mbit/s;

●两路I2C 接口 1 Mbit/s;

●16位高级控制定时器,支持6路捕获/比较通道和3对互补PWM输出,死区时间和灵活的同步功能;四组16位通用定时器;三组16位基本定时器;窗口看门狗定时器;独立看门狗定时器;

3.png

图:CW32F030K8T7在即热式热水器的应用框图

CW32F030C8T7有着丰富的外设接口,配备了多路UART、SPI、I2C等通信接口,同时,其高精度的ADC(模数转换器)可以实时监测水温,实现对温度精确控制,采用高性能的温敏电阻实时采集热水器内水温,将温度信号转变为电压信号送CW32F030C8T7单片机处理后,在数码管进行实时显示。

通过PWM(脉宽调制)信号精确控制加热功率,保证出水温度的恒定。

内置的看门狗定时器和多种安全保护机制,可实现过温保护、干烧保护等,确保即热式热水器在各种异常情况下的安全运行。

3. 超强抗干扰

● HBM ESD 8KV;MM ESD、CDM ESD、Latch up@105℃全面达到JEDEC较高等级;

● EFT 4KV,IEC61000-4-4 Class:4(Power)/4(IO);

4.png

图:截取CW32在苏轼宜特的部分测试报告

关于即热式热水器方案更多详细信息,请联系武汉芯源半导体:18002584030。想了解CW32更多详细信息,请访问官方网站www.whxy.com

来源:武汉芯源半导体

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

围观 16

2024年4月24日上午,武汉芯源半导体有限公司与上海科学技术职业学院共同举办的“CW32嵌入式创新实验室揭牌仪式”在上海科学技术职业学院第二会议室隆重举行。

1.png

活动现场,武汉芯源半导体与上海科技职业学院的领导及嘉宾齐聚一堂,共同见证了这一历史时刻。武汉芯源半导体北中区销售总监孙秀艳、CW32产业应用专家李家庆、CW32生态社区李工,以及上海科学技术职业学院教务处处长邵汝军、继续教育学院院长张华、通信与电子工程学院院长褚结等领导出席了揭牌仪式。

2.png

作为中国本土的MCU厂商,武汉芯源半导体始终坚持以创新驱动发展,专注32位MCU芯片设计,致力于提供本土化、工业级、高品质、低成本的集成电路产品。而上海科学技术职业学院作为培养高素质技术技能人才的摇篮,对嵌入式技术领域的教育和培训同样倾注了极大的心血。此次揭牌仪式的成功举办,体现了双方在推动嵌入式技术创新和人才培养上的共同理念和坚定决心,为培养集成电路创新型应用人才、推动国产芯片产业发展注入新动力。

3.png

此次合作,“CW32嵌入式创新实验室”将成为企业和学校之间的桥梁和纽带,双方也将对各自优势资源进行有机结合,为双方共同探索集成电路领域的前沿技术、推动产学研一体化进程提供有力支持。

未来,武汉芯源半导体将与更多高校进行合作,不断完善嵌入式创新实验室的建设和管理,为培养更多优秀的集成电路创新型应用人才、推动国产芯片产业的繁荣和发展做出贡献!

来源:武汉芯源半导体

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

围观 17

近年来,各种型号的MCU爆发式面市,甚至有些SoC芯片主要的功能不是MCU,但是能实现部分MCU的功能,在大面积缺货的时期也被拿出来替代MCU来用了。那这些新涌现的芯片,和MCU有哪些区别呢?

根据计算机组成原理,具备运算器、控制器、存储器、输入和输出设备的,都算完整的现代计算机,都可以运行程序,实现一定的运算和控制功能。

1.png

但是呢,专业MCU厂家是有意见的,在MCU缺货大潮中,为了抢夺生意,有很多设计团队选择快速拼接一个MCU芯片出来,比如说选择某个能够提供eFlash的IP的工艺制程,然后购买ARM或者RISCV的处理器内核,再找一些RAM以及UART,SPI,I2C,GPIO的IP作为外设,粘贴上一些ADC和定时器的模块,一个像模像样的MCU貌似就大差不差了。也对,也不对。

对在哪里呢?对就对在常见的通用MCU看起来也就是这么些东西在里面,很多使用MCU的客户在选型的时候主要是看这些功能配置,所以当问他这么个产品是否符合他的使用要求的时候,他基本能说OK。

那不对在哪里呢?我们都知道,很多事情得实践才会出真知,一个芯片在电子系统中能不能用,那是得实际移植实际开发出产品,最后还要通过专业测试甚至是大批量挂机才能够确定的。

在实际工作中,往往会发生一些试了才知道的事情,比如:

1、 发现各种温度和电压环境下不能稳定工作。

2、 发现抗干扰性能不过关。

3、 发现不能加密,软件容易被盗读。

4、 发现RAM没有自检和校验功能,运行出错的时候程序发现不了。

5、 过安规认证的时候发现缺少相关的安全库和硬件电路。

6、 时钟停振的时候程序发现不了。

7、 量产的时候发现某个故障芯片来源不明,无法追溯。

等等等等

哦!我明白了,这些都是要踩坑了才会发现的一些问题!

对呀!MCU首先是芯片,目前芯片的软硬件技术迭代已经比以前快很多了,但是毕竟不是今天改明天就能有。每次发现芯片的使用问题的时候,都需要下一代产品来做软硬件升级的,这是一个需要长时间累积经验的过程。所以说,有些只具备账面功能的类似MCU的芯片产品,某种意义上来讲,不算是真正的专业MCU。

那怎么分辨出谁的芯片做得好做得专业呢?看品牌知名度吗?

那当然还不是绝对的啦,可以从一些细节看出来这家品牌的专业化程度的,比如:

1、 这家MCU的ESD、Latch UP等报告的测试成绩怎么样。

2、 这家MCU的各种保护措施怎么样,比如程序读保护、上下电保护、时钟保护、程序执行保护、防呆设计等等。

3、 这家MCU的安全自检功能,比如IEC60730以及IEC61508要求的自检库软硬件有没有支持。

4、 这家MCU的唯一ID及编程追溯功能齐全不齐全。

5、 这家MCU的文档升级记录是不是越来越不频繁。

哦,那品牌知名度也不是唯一的考虑要素了。

哈哈,不当第一个吃螃蟹的人是对的,这的确能够避开很多技术风险,但是你也错过了很多的技术机会不是吗?正所谓机遇和挑战都是并存的,什么东西都让别人先去试,那试的好坏别人也不告诉你,等你知道这颗芯片好的时候,黄花菜都凉了不是。

这说得也是,看来还是得多加学习,练就火眼金睛。

还有个思路推荐给你,选择一些背景深厚的品牌也可以,不一定非得是芯片品牌。比如大的分销品牌旗下的芯片品牌,因为分销品牌的客户群体大,也很珍视品牌口碑,他们搞出来的芯片品牌基本上就不会乱做产品,因为他不能说是捞一票就跑对吧。

有这样的品牌吗?给我推荐一下呗。

当然有啊,比如力源信息旗下的武汉芯源半导体就是这个情况。力源信息已经是国内排名前列的本土分销商,多年服务专业工程师。力源信息最早于2015年入局半导体事业,目前有全资的子公司武汉芯源半导体在做通用MCU系列产品,新推出的超低功耗系列反响非常好哦,似乎刚做不久就有设计非常成熟的产品问世。既然他都敢大批量地卖,咱们试试也无妨。

相关阅读:

快乐解说MCU:CW32的工作电压特性

快乐解说MCU:三分钟,带你了解低功耗MCU

来源:CW32生态社区

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

围观 34

一、简介

半双工即Half duplex Communication,是指在通信过程的任意时刻,信息既可由A传到B,又能由B传A,但同时只有一个方向上的传输存在。由于这种方式要频繁变换信道方向,故效率低,但可以节约传输线路。半双工方式适用于终端与终端之间的会话式通信。

二、实际操作(以CW32L083为例)

设置 UARTx_CR2.SIGNAL 为 1 使 UART 工作于单线半双工工作模式。在该模式下,使用 UARTx_TXD 引脚进行数据的发送和接收,不占用 UARTx_RXD 引脚(UARTx_RXD 可作通用 IO 使用)。写数据到 UARTx_TDR 寄存器后,UARTx_TXD 引脚立即进入发送状态,输出 UARTx_TDR 寄存器中的数据。数据 发送完成后,UARTx_TXD 引脚恢复到常态的接收状态。没有发送数据时,UARTx_TXD 引脚处于接收状态,数据接收完成后,接收完成标志位 UARTx_ISR.RC 会被硬件置 位,此时应尽快读取 UARTx_RDR 寄存器,并清除 UARTx_ISR.RC 标志位。

1.png

UART工作在单线半双工模式时,UARTx_TXD引脚需要配置为开漏输出。另外用户应采取适当的应用层保护机制,以确保不会出现多主机同时向总线发送数据。

三、UART单线半双工通信示例

硬件采用CW32L083VxTx StartKit单板,用杜邦线连接PA08和PA06引脚。

UARTy查询方式发送TxBuffer1缓冲区中的数据,UARTz查询方式接收数据,并存储到RxBuffer2缓冲区。

UARTz查询方式发送TxBuffer2缓冲区中的数据,UARTy查询方式接收数据,并存储到RxBuffer1缓冲区。

比较TxBuffer1和RxBuffer2、TxBuffer2和RxBuffer1,如果数据一致,则LED1亮,否则LED2亮。

1、配置RCC

void RCC_Configuration(void) 
{ 
    RCC_HSI_Enable(RCC_HSIOSC_DIV6); //SYSCLK = HSI = 8MHz = HCLK = PCLK 
    RCC_AHBPeriphClk_Enable(UARTy_GPIO_CLK | UARTz_GPIO_CLK | 
    RCC_AHB_PERIPH_GPIOC, ENABLE); //外设时钟使能 
    UARTy_APBClkENx(UARTy_CLK, ENABLE); 
    UARTz_APBClkENx(UARTz_CLK, ENABLE); 
}

2、配置GPIO

void GPIO_Configuration(void) 
{ 
    GPIO_InitTypeDef GPIO_InitStructure = {0}; 
    UARTy_AFTX; //UART TX 复用 
    UARTz_AFTX; U
    ARTy_TXPUR; //UART TX PUR 
    UARTz_TXPUR; 
    GPIO_InitStructure.Pins = UARTy_TxPin; 
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_OD; //开漏输出
    GPIO_Init(UARTy_GPIO, &GPIO_InitStructure); 
    GPIO_InitStructure.Pins = UARTz_TxPin; 
    GPIO_Init(UARTz_GPIO, &GPIO_InitStructure); 
    
    GPIO_InitStructure.Pins = GPIO_PIN_3 | GPIO_PIN_2; //PC3 LED1 / PC2 LED2 
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; 
    GPIO_Init(CW_GPIOC, &GPIO_InitStructure); P
    C03_SETLOW();//LED灭 
    PC02_SETLOW(); 
}

3、配置UART

void UART_Configuration(void) 
{ 
    UART_InitTypeDef UART_InitStructure = {0}; 
    
    UART_InitStructure.UART_BaudRate = UARTyz_BaudRate; // 波特率 
    UART_InitStructure.UART_Over = UART_Over_16; // 采样方式 
    UART_InitStructure.UART_Source = UART_Source_PCLK; // 传输时钟源
    UCLK UART_InitStructure.UART_UclkFreq = UARTyz_UclkFreq; // 传输时钟UCLK频率 
    UART_InitStructure.UART_StartBit = UART_StartBit_FE; // 起始位判定方式 
    UART_InitStructure.UART_StopBits = UART_StopBits_1; // 停止位长度 
    UART_InitStructure.UART_Parity = UART_Parity_No ; // 校验方式 
    UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None; 
    UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx; // 发送/接收使能 
    UART_Init(UARTy, &UART_InitStructure); 
    UART_Init(UARTz, &UART_InitStructure); 
}

4、定义变量

//UARTy 
#define  UARTy                         CW_UART1 
#define  UARTy_CLK                   RCC_APB2_PERIPH_UART1 
#define  UARTy_APBClkENx               RCC_APBPeriphClk_Enable2 
#define  UARTy_GPIO_CLK                RCC_AHB_PERIPH_GPIOA 
#define  UARTy_GPIO                    CW_GPIOA 
#define  UARTy_TxPin                    GPIO_PIN_8 
#define  UARTy_AFTX                    PA08_AFx_UART1TXD() 
#define  UARTy_TXPUR                   PA08_PUR_ENABLE(); 

//UARTz 
#define  UARTz                         CW_UART2 
#define  UARTz_CLK                     RCC_APB1_PERIPH_UART2 
#define  UARTz_APBClkENx               RCC_APBPeriphClk_Enable1 
#define  UARTz_GPIO_CLK                RCC_AHB_PERIPH_GPIOA 
#define  UARTz_GPIO                    CW_GPIOA 
#define  UARTz_TxPin                    GPIO_PIN_6 
#define  UARTz_AFTX                    PA06_AFx_UART2TXD() 
#define  UARTz_TXPUR                   PA06_PUR_ENABLE() 
#define  UARTyz_BaudRate               9600 
#define  UARTyz_UclkFreq                8000000 
#define  TxBufferSize1                   (ARRAY_SZ(TxBuffer1) - 1) 
#define  TxBufferSize2                   (ARRAY_SZ(TxBuffer2) - 1) 
typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus; 
TestStatus Buffercmp(uint8_t* pBuffer1, uint8_t* pBuffer2, uint16_t BufferLength); 
uint8_t TxBuffer1[] = "\r\nCW32L083 UART HalfDuplex: UARTy -> UARTz\r\n"; 
uint8_t TxBuffer2[] = "\r\nCW32L083 UART HalfDuplex: UARTz -> UARTy\r\n"; 
uint8_t RxBuffer1[TxBufferSize2]; uint8_t RxBuffer2[TxBufferSize1]; 
uint32_t NbrOfDataToRead1 = TxBufferSize2; 
uint32_t NbrOfDataToRead2 = TxBufferSize1; 
uint8_t TxCounter1 = 0, RxCounter1 = 0; 
uint8_t TxCounter2 = 0, RxCounter2 = 0; 
volatile TestStatus TransferStatus1 = FAILED, TransferStatus2 = FAILED;

5、主程序

int32_t main(void) 
{   
    RCC_Configuration();//配置RCC 
    GPIO_Configuration();//配置GPIO 
    UART_Configuration();//配置UART 
    UART_HalfDuplexCmd(UARTy, ENABLE); //单线半双工 UARTy 
    UART_HalfDuplexCmd(UARTz, ENABLE); //单线半双工 UARTz 
    while(NbrOfDataToRead2--)   //UARTy -> UARTz 
    { 
        //UARTy发送一个字节数据 
        UART_SendData_8bit(UARTy, TxBuffer1[TxCounter1++]); 
        while(UART_GetFlagStatus(UARTy, UART_FLAG_TXE) == RESET); 
        //UARTz 等待RC 
        while(UART_GetFlagStatus(UARTz, UART_FLAG_RC) == RESET); 
        UART_ClearFlag(UARTz, UART_FLAG_RC); 
        RxBuffer2[RxCounter2++] = UART_ReceiveData_8bit(UARTz); 
    } 
    while(NbrOfDataToRead1--)//UARTz -> UARTy 
    { 
        //UARTz发送一个字节数据 
        UART_SendData_8bit(UARTz, TxBuffer2[TxCounter2++]); 
        while(UART_GetFlagStatus(UARTz, UART_FLAG_TXE)== RESET); 
        //UARTy 等待RC 
        while(UART_GetFlagStatus(UARTy,UART_FLAG_RC) == RESET); 
        UART_ClearFlag(UARTy, UART_FLAG_RC); 
        RxBuffer1[RxCounter1++] = UART_ReceiveData_8bit(UARTy); 
    } 
    //检查收发数据一致性 
    TransferStatus1 = Buffercmp(TxBuffer1, RxBuffer2, TxBufferSize1); 
    TransferStatus2 = Buffercmp(TxBuffer2, RxBuffer1, TxBufferSize2); 
    if(TransferStatus1 == PASSED && TransferStatus2 == PASSED) //PASSED 
    { 
        //LED1亮 
        PC03_SETHIGH(); 
    } 
    else //FAILED 
    { 
        PC02_SETHIGH();//LED2亮 
    } 
    while(1) 
    { 
    } 
}

6、测试结果:UART半双工通信方式工作正常, LED1亮。

来源:武汉芯源半导体

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

围观 214
订阅 RSS - 武汉芯源半导体