复旦微 FM33A0610EV单片机

1. MCU概述

FM33A0xxEV是针对国网、南网单三相智能电表和海外智能电表的主控MCU,基于ARM Cortex-M0内核设计,集成最大512KB嵌入式闪存和80KB SRAM。价格便宜,单片只需要9元人民币左右。

2. 主要特点

① 拥有32-bit的低功耗定时器,这个做长时间睡眠非常好用。
② 具有LCD段码控制器,适合带断码屏的项目。
③ 低功耗性能在国产芯片里表现很好。
④ 拥有6个普通串口和2个低功耗串口,适合多串口项目
⑤ 独立看门狗无法关闭,上电自动运行,编程需要特别注意!
⑥ 外置32768晶振只要焊接上就自动启用,如果未起振会自动切换到内部32K晶振,编程也需要注意。
⑦ 采用ARM Cortex-M0 内核,很多代码可以参考同内核的其他MCU代码,例如RTOS移植。

3. IAR编译器适配

到复旦微技术论坛(http://www.fmdevelopers.com.cn/)下载“复旦微IAR配置文件”。按如下步骤操作(.代表IAR的安装目录):
① 将“config\debugger\FMSH”复制到“.\arm\config\debugger\”。
② 将“config\devices\FMSH” 复制到“.\arm\devices\”。
③ 将“config\flashloader\FMSH”复制到“.\arm\ flashloader\”。
④ 将“config\linker\FMSH”复制到 “.\arm\linker\”。

4. FreeRTOS移植

可以按照传统方式下载FreeRTOS源码,然后拷贝到对应工程中,并且将对应的M0内核相关的port.c和portasm.s添加到工程中,然后IAR项目包含对应的头文件路径,即可编译通过。
这里想介绍一个更简便的移植方案,利用STM32CubeMX。找到一个Cortex M0内核的STM32,然后在STM32CubeMX下勾选FreeRTOS并且做相应的低功耗以及其他配置,然后生成一个STM32工程,然后将对应的FreeRTOS以及它的封装层拷贝到复旦微单片机对应的工程中。添加对应的头文件包含路径即可移植成功。该方法简单方便,还可以和STM32的项目统一目录排放习惯,而且中间封装层的移植也一步到位。

5. 低功耗移植

FreeRTOS下的低功耗需要配置configUSE_TICKLESS_IDLE为2,vPortSuppressTicksAndSleep函数可以参照STM32低功耗项目移植即可。这里主要关注的是深度睡眠下低功耗定时器的运用以及注意事项。
低功耗启动后,总有一个时刻单片机会被唤醒,这个时候唤醒源就可以分为两类:
1.低功耗定时器定时时间到。
2.其他外部中断源。

对于第1种唤醒源,直接把定时时间作为操作系统时间戳基准的修正值即可,这个没什么值得注意的。而对于第2种唤醒源必须能够根据定时器的计数值来计算从睡眠到唤醒经过的时间。
第2种情况看似也很简单,拿到睡眠前和唤醒后的定时器的计数值做运算好像就可以了,把低功耗定时器做成单周期唤醒模式即可。但是仔细想一下这种情况是有问题的。例如当唤醒后MCU根据定时器中断标志判断未发生中断,那就是外部中断导致的,然后准备去关闭定时器,但是就在关闭语句的执行过程中发生了定时器唤醒中断,此时计数值归零,然后读到计数值为0,睡眠前的计数值也为0,误判为无睡眠时间!想解决这个问题也是可以的,关闭定时器后需要进入临界区进行二次判断。逻辑和代码冗余显然不是好的设计。或者采用先停止定时器,然后退出中断屏蔽模式,看是否产生定时器中断,这种模式的问题是退出屏蔽模式后由中断导致的插入时间无法计算,最终计算得到的补偿值很可能和真实值出入很大。
复旦微的该款MCU可以采用比较模式来规避以上问题。也就是整个处理过程中低功耗定时器一直运行(直到0xFFFFFFFF后才归零),到补偿RTOS时间戳的语句时直接拿出当时的计数值减去睡眠前的计数值即可,补偿完之后才停止定时器计数。这种方案在各种情况下引入的运算误差是最小的,也是最有确定性的。

6. 低功耗测试

经过以上移植后,创建一个简单的任务,翻转一个GPIO口,当翻转时间设置的足够长,测量出来的功耗就很接近深度睡眠下的功耗了,实测3-4uA左右,和手册参数一致。
但是将GPIO的翻转时间减小到500ms后,平均功耗来到了7uA+。这种情况在STM32L4系列单片机上是不存在的(STM32L4 500ms翻转IO的功耗平均下来可以忽略不计)。考虑到该单片机采用的M0内核,并且全速运行下每MHz对应的电流高于STM32L4系列,所以也是可以理解的。更慢的内核导致退出睡眠执行IO翻转到再次进入睡眠的工作时间变长,然后全速运行时每MHz的电流又更高,更长的时间乘以更高的运行时间,必然导致更高的动态运行功耗。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: fm33a0610是一款多功能射频集成电路芯片,具有广泛的应用领域。封装原理图是指将芯片的管脚与外部电路进行连接的电路设计图纸。 fm33a0610芯片的封装原理图具体包含以下几个主要部分: 1. 电源与功率管理部分:封装原理图中会设计芯片的电源供应电路以及功率管理电路,包括稳压电路、滤波电路等,以确保芯片正常工作的电源条件和电源稳定性。 2. 射频收发器件部分:该芯片作为射频集成电路,其封装原理图中会包含射频前端的收发器件部分。该部分设计涵盖了射频输入输出端口的滤波器、放大器、混频器、振荡器等电路,以实现射频信号的收发功能。 3. 控制与数字处理部分:该芯片还包含控制与数字处理电路,封装原理图中会设计与控制芯片通信的接口电路以及时钟电路等。该部分电路负责芯片的控制逻辑和信号处理功能。 4. 外设接口部分:fm33a0610芯片支持与外部外设连接,封装原理图中会设计供外设连接的接口电路,例如UART、SPI、I2C等通信接口,以实现与外设的数据交互。 总之,fm33a0610芯片的封装原理图涵盖了电源与功率管理、射频收发器件、控制与数字处理以及外设接口等多个部分,其设计目的是将芯片与外部电路进行正确连接,确保芯片正常工作,并为芯片的各项功能提供良好的支持和协同工作的条件。 ### 回答2: fm33a0610是一款多功能芯片,其原理图封装主要指的是对该芯片的原理图进行合理封装和设计。 原理图是电子产品设计过程中的关键一步,它是将芯片内部功能以电路图的形式呈现出来。fm33a0610的原理图封装主要包括以下几个方面: 1. 引脚配置:原理图封装需要准确配置每个引脚的作用和功能。根据fm33a0610芯片的技术规格和需求,为每个引脚分配正确的功能,例如电源输入、信号输入输出、通信接口等。 2. 电路连接:原理图封装需要将芯片内部的各个功能模块按照正确的电路连接方式进行布局。根据芯片的内部结构和电路信号传输的要求,进行电路连接的规划和设计,确保信号的准确传输和功能的正常运行。 3. 外围电路:fm33a0610芯片的原理图封装还需要考虑外围电路的设计。这包括电源电路、时钟电路、复位电路等。这些外围电路的设计对芯片的正常工作、稳定性和可靠性起到重要作用。 4. 信号调整和滤波:在原理图封装过程中,还需要对芯片的输入输出信号进行调整和滤波。通过添加合适的电阻、电容和滤波器等元件,对输入信号进行处理和滤波,以使输出信号更加稳定和可靠。 综上所述,fm33a0610的原理图封装是对该芯片的功能、引脚、电路连接和外围电路等进行合理设计和封装的过程。这一过程是确保该芯片正常工作和性能稳定的重要环节,需要根据技术规格和产品需求进行精确规划和设计。 ### 回答3: fm33a0610是一款集成电路芯片,其原理图封装主要涉及到芯片内部电路设计和布局。原理图封装是指将芯片内部各个部件的连接方式以图形的形式展示出来,方便电路设计和布局的工作。 首先,在fm33a0610的原理图封装中会包括芯片内部的各个功能模块,如中央处理器、存储器、输入输出接口等。这些功能模块在原理图中会以符号的形式表示,并通过连线来表示它们之间的连接关系。 其次,在fm33a0610的原理图封装中还会包括芯片的电源电路和引脚连接。电源电路是保证芯片正常工作所必需的,其连接方式会在原理图中明确标记出来。引脚连接则表示芯片与外部器件之间的信号传输和控制关系,通过引脚连接可以实现芯片与外部电路的交互。 此外,在fm33a0610的原理图封装中还会涉及到一些电路保护和滤波电路的设计。电路保护是为了保护芯片免受过电流、过热、过压等异常情况的损害,滤波电路则用于去除输入输出信号中的噪声和杂散。 总之,fm33a0610原理图封装是将芯片内部电路设计和布局以图形的形式展示出来,方便电路设计和布局的工作。通过原理图封装,可以清晰地了解芯片的功能模块、电源电路、引脚连接以及电路保护和滤波等细节,为芯片的应用提供了基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值