【经验】对使用SWD接口的32位MCU的内部闪存及用户画面进行编程
本应用笔记描述了一个独立的编程器,用于对使用SerialWire调试(SWD)接口的EFM32 Gecko,Series 0和1,EZR32 Ser-ies 0和EFR32 Wireless Gecko Series 1设备的内部闪存和用户页面进行编程
1.硬件概述
独立编程器从大容量存储设备(MSD)读取二进制数据,并将其存储到外部EBI NAND闪存或SPI NOR闪存以进行器件编程。编程器使用GPIO模拟串行线调试(SWD)接口来编程目标器件。用户界面由按钮,LED和LCD模块组成。
图1.1 独立编程器的框图
1.1硬件平台
独立编程器一般都有一个编译选项可以选择编程的硬件平台。编程固件支持两种硬件拓扑:一种基于STK板,另一种基于定制硬件设计。这些将在以下部分中介绍。
该软件包可在SILICON LABS网站(www.silabs.com/32bit-appnotes)或在Simplicity Studio中使用[应用笔记]标签中找到。
1.1.1 EFM32 STK
EFM32GG_STK3700和EFM32WG_STK3800可用作独立编程器的EFM32 STK硬件平台。
•方便,即插即用:无需主机PC。
•板载SEGGER JLink调试器和USB虚拟COM端口(CDC)。
•支持USB主机,MCU最高可运行48 MHz。
•板载32 MB NAND闪存可用于存储二进制映像。
•EFM32GG_STK3700上的EFM32GG990F1024的高512 KB内部闪存也可用作高速缓存,以加快编程过程。
•构建编程器需要最少的硬件。
表1.1 编程器使用的EFM32 STK资源
EFM32 STK的20针扩展接头(P100)用于连接目标器件和可选的SPI LCD模块。
表1.2 外部硬件和目标设备的扩展标头
1.1.2自定义硬件
EFM32WG332F64 / 128/256和EFM32GG332F1024设备都可以在自定义硬件平台上使用,以实现独立编程器。
•可以根据参考原理图来调整你需要的PCB布局。
•支持USB主机,MCU最高可运行48 MHz。
•低引脚数4 MB SPI NOR Flash可用于存储二进制映像。
•EFM32GG332F1024的高512 KB内部闪存可用作高速缓存,以加快编程过程。
•支持将其配置为组编程器的选项,以便按顺序编程最多4个或8个设备。
表1.3 自定义硬件的引脚分配
定制硬件平台的参考原理图位于本应用笔记软件包的“sch”文件夹中。
1.2二进制映像存储的内存
有一个编译选项可以选择EBI NAND闪存或SPI NOR闪存来进行二进制映像存储。
1.2.1 EBI NAND闪存
板载NAND256W3A NAND闪存的组织为每页512字节,每块32页(16 KB),总内存大小为2048块(32 MB)。 NAND闪存由EFM32GG或EFM32WG的外部总线接口(EBI)访问。
如果二进制映像不是闪存页面大小的倍数(512字节),则剩余字节用0xFF填充以保持程序映像与闪存页面对齐。
表1.4 EBI NAND闪存映射
1.2.2 SPI NOR闪存
选择SPI NOR方式,SPI NOR闪存的结构为每页256字节,每扇区4 KB(16页),每块64 KB,总存储器大小为1024扇区或64块(4 MB)。 SPI闪存必须支持整个器件上的4 KB扇区擦除,例如Macronix MX25L3206E或Cypress / Spansion S25FL132K。 SPI NOR闪存由EFM32GG或EFM32WG的SPI接口(USART)访问。
如果二进制映像不是闪存页面大小的倍数(256字节),则剩余字节用0xFF填充以保持程序映像与闪存页面对齐。
表1.5 SPI NOR闪存映射
1.2.3高速缓存
为了消除外部存储器的读访问,如果图像大小小于或等于512 kB,编程器使用MCU上的内部闪存来缓存来自外部存储器的主闪存映像。
配备1 MB闪存EFM32 Giant Gecko的编程器可以使用此功能。较低的512 kB闪存用于编程器固件,而较高的512 kB闪存可用于目标固件映像高速缓存。
1.3 USB接口
EFM32配置为USB主机,旨在与大容量存储设备(MSD)USB类(例如记忆棒)通信。
1.4 LCD模块
所选的LCD模块应由SPI控制,并在3.3 V电压下工作。目前的实现是4 x 20点阵LCD模块,带有Solomon Systech SSD1803 LCD控制器和驱动器。
1.5串行端口
当DEBUG_USB_API打开并且定义了USER_PUTCHAR时,将在串行端口上输出有用的调试信息。使用DEBUG_EFM_USER标志进行编译也将启用emlib和USB堆栈中的所有断言。如果启用了断言并定义了USER_PUTCH AR,则断言文本将在串行端口上输出。
当LCD模块不可用时,串口也可以用作显示接口。通过将EFM_BC_EN线设置为高电平,串行TX数据被路由到STK虚拟COM端口。
1.6 Gang编程模式
使用自定义硬件平台设计时,可以使用组编程模式。 DIP开关用于选择x1,x4或x8操作模式。四个1-of-8 FET多路复用器(例如,Texas Instruments SN74CB3Q3251)用于将所需信号路由到不同的插座以进行目标器件编程。
2.软件概述
本节介绍独立编程器所需的软件驱动程序。
相关的软件模块位于Simplicity Studio安装路径下。适用于Simplicity Studio V3.3的Windows上的默认位置示例如下:
C:\ SiliconLabs \ SimplicityStudio \ v3 \ developer \ sdks \ efm32 \ v2 \ usb \ src
C:\ SiliconLabs \ SimplicityStudio \ v3 \ developer \ sdks \ efm32 \ v2 \ kits \ common \ drivers
C:\ SiliconLabs \ SimplicityStudio \ v3 \ developer \ sdks \ efm32 \ v2 \ reptile \ fatfs
C:\ SiliconLabs \ SimplicityStudio \ v3 \ developer \ sdks \ efm32 \ v2 \ kits \ EFM32GG_STK3700 \ examples \ nandflash
2.1 USB主机
编程器使用“usb \ src”目录中的USB主机堆栈和“drivers”目录中的MSD模块来实现对大容量存储设备的支持。
FATD的FAT支持由“reptile \ fatfs”目录中的fatfs提供。
2.2 LCD模块
SPI LCD驱动程序用于将printf()函数重新定位到LCD模块,并且retargetio.c文件位于“drivers”目录中。
2.3串行端口
串行端口驱动程序是从“drivers”目录中的retargetserial.c文件修改的。它用于将printf()函数重新定位到串行TX。 retargetio.c文件位于“drivers”目录中是必需的。
2.4上传映像
编程器作为USB主机,可以连接到大容量存储设备(MSD),如记忆棒。编程器在USB MSD的根目录中搜索“proginfo.txt”文件,该文件包含二进制映像的文件名。编程器然后在根目录中打开二进制文件并从MSD读取固件映像并将其复制到外部存储器和缓存(如果可用)以对目标设备进行编程。
NAND闪存驱动程序是从EFM32GG_STK3700 STK的“nandflash”示例修改的。
SPI NOR闪存驱动程序用于擦除闪存页面,从闪存页面读取数据并将数据写入闪存页面。
图2.1 上传图像流程图
2.5程序目标设备
编程目标设备时可以使用两种主要策略。第一种选择是通过串行调试piliai(SWD)接口直接写入目标器件的存储器系统控制器(MSC)寄存器。
第二种选择是首先将程序直接写入目标设备的RAM,然后让该程序控制MSC寄存器。这样的程序称为flash-loader。
本应用笔记中选择直接写入MSC寄存器的程序,因为这种方法简单易用,可以升级以支持新的目标器件。通过优化闪存擦除和写入操作,程序速度接近闪存加载器方法。
有关如何访问目标器件的调试接口以及如何使用此接口对器件进行编程的更多信息,请参见“AN0062:通过串行调试接口编程内部闪存”。
2.5.1 Bit-Bang
直接写入MSC寄存器方法的主要开销是通过bit-banging GPIO引脚来模拟SWDIO和SWCLK信号。为了加快此过程,目标设备的SWCLK和SWDIO的GPIO必须位于同一GPIO端口组(0-7或8-15)上。目标RESET线和其他信号不应连接到此端口,因为当敲击SWCLK和SWDIO信号时,软件会立即写入整个端口。
utils.c源文件中的函数readMem()和writeMem()用于从目标器件的寄存器或存储器读取或写入一个32位字。
表2.1 读取和写入访问目标设备寄存器或内存
2.5.2闪存擦除
有三种方法可以擦除目标器件的闪存:
页面擦除
•可以使用MSC WRITECMD寄存器中的ERASEPAGE从软件启动页擦除。页擦除操作要求将地址写入MSC ADDRB寄存器。
批量擦除(EFM32 Gecko和EFM32 Tiny Gecko不支持)
•可以使用MSC WRITECMD寄存器中的ERASEMAIN0和ERASEMAIN1从软件启动批量擦除。如果器件支持read-while-write,则ERASEMAIN0将擦除整个闪存或闪存的下半部分。如果器件支持read-while-write,则ERASEMAIN1将擦除闪存的上半部分。
设备擦除
•通过认证访问端口(AAP)接口访问,擦除所有闪存,SRAM,锁定位(LB)页面和用户数据页锁定字(ULW)。本应用笔记中未使用此方法。
表2.2 设备Flash组织和擦除时序
闪存擦除时序(页面和批量擦除)分为两类。
•页面和批量擦除时间为20-20.8ms
EFM32 Gecko Series 0和EZR32 Series 0器件(变量newFamily = false)。
•页面和批量擦除时间为20-40ms
EFM32 Gecko系列1和EFR32无线Gecko系列1设备(变量newFamily = true)。
为了缩短闪存擦除过程的时间,编程器应避免逐页擦除目标主闪存,尤其是对于闪存较大且页面尺寸较小的设备。 EFM32 Gecko和EFM32 Tiny Gecko不支持批量擦除,因此它们的器件闪存擦除操作非常耗时。
图2.2 Flash擦除流程图
2.5.3 Bootloader与应用程序二进制文件组合
使用批量擦除只能用于起始地址等于0x00000000的应用程序二进制映像。
在某些情况下,程序起始地址不是0x00000000,必须使用耗时的页擦除过程。
•保留预编程的引导加载程序并将应用程序固件编程到闪存页面大小的边界地址上。
•将引导加载程序编程为0x00000000,然后在闪存页面大小边界地址上编程应用程序固件。
解决方案是将引导加载程序和应用程序固件组合成一个二进制文件,以便程序起始地址可以设置为0x00000000以进行批量擦除。
为此,它需要一个名为Simplicity Commander的工具,与Simplicity Studio一起安装在安装文件夹(C:\ SiliconLabs \ SimplicityStudio \ v3 \ SimplicityCommander)的子文件夹中。有关更多信息,请参阅UG162:“Simplicity Commander参考指南”。
将Simplicity Commander从Commander_pkg_0.14.0.zip解压缩到当前文件夹或其他文件夹(例如C:\ SiliconLabs \ Simp licity Commander)以执行命令行界面。
将任何带有足够闪存的EFM32 STK用于引导加载程序固件连接到PC,调用Simplicity Commander的命令行界面(CLI)。要执行Simplicity Commander命令,请启动Windows命令窗口并切换到Simplicity Commander目录(例如C:\ SiliconLabs \ Simplicity Commander)。
为简单起见,将所有相关的二进制文件放在Simplicity Commander目录中,并对STK上的设备执行批量擦除。
> commander device masserase
将引导加载程序映像(例如,来自AN0003的bootloader-giantgecko.bin)闪存到目标设备,从0x00000000开始。
> commander flash bootloader-giantgecko.bin --address 0x0
将闪存内容从0x0读取到应用程序固件的起始地址(例如0x1000,必须与目标设备闪存页面大小边界对齐)并将其存储到二进制文件中(例如giantbl4k.bin)。
地址范围是非包含的,这意味着读出从0x0到0xFFF的所有字节。
> commander readmem --range 0x0:0x1000 --outfile giantbl4k.bin
在编写引导加载程序映像之前擦除整个闪存,因此引导加载程序和应用程序固件之间的间隙用0xFF填充。
使用MSDOS copy命令组合输出二进制文件(giantbl4k.bin)和应用程序固件(例如giantapp.bin)。
> copy giantbl4k.bl.bin / b + giantapp.bin / b ggblapp.bin / b
现在可以将组合二进制文件(ggblapp.bin)用于程序起始地址为0x00000000的设备编程。
图2.3 使用Simplicity Commander组合Bootloader和应用程序二进制文件
2.5.4闪存写操作
写操作需要将地址写入MSC ADDRB寄存器。写入每个32位字后,内部地址寄存器将自动递增4(EFM32 Gecko系列除外)。当一个字写入MSC WDATA寄存器时,MSC STATUS寄存器的WDATAREADY位清零。当该状态位置1时,软件可以写下一个字。
EFM32 Giant Gecko设备能够对闪存进行双重写入。这可以通过设置MSC WRITECTRL寄存器中的WDOUBLE位来启用,并且仅对闪存的主页有效。启用双写操作时,MSC WDATA在启动闪存写入之前接受两个32位字。
表2.3 器件闪存写入功能和时序
闪存写入时序可以分为两类。
•闪存写入时间最小为20μsEFM32Gecko Series 0和EZR32 Series 0器件(变量newFamily = false)。
•闪存写入时间为20-40μsEFM32Gecko系列1和EFR32无线Gecko系列1设备(变量newFamily = true)。
为减少闪存写入过程的时间,编程器应尝试在写入每个32位或64位字后跳过轮询MSC STATUS寄存器中的WDATAREADY位,因为寄存器读取过程非常耗时(~65μs)。另一种方法是在每次写入之间添加固定的微秒延迟,以确保可以满足最大写入时间。 EFM32 Gecko系列不支持自动地址递增,因此需要在写入每个32位字之前将新地址加载到MSC ADDRB寄存器中。
图2.4 Flash写入流程图
2.5.5闪存验证
编程器使用外部存储器或高速缓存(如果可用)验证目标闪存内容,以确保在编程过程中没有发生错误。传输地址寄存器(TAR)的自动递增用于TAR环绕边界内的突发读取,必须在每个TAR环绕边界初始化TAR以设置下一个闪存读取地址。
图2.5 Flash验证流程图
2.5.6调试访问和认证访问端口(AAP)访问锁定
通过清除锁定位页面中的调试锁定字(DLW,字127)并重置设备来锁定对Cortex内核的调试访问。当调试访问被锁定时,调试器可以访问AAP寄存器。但是,与Cortex核心和整个总线系统的连接被阻止。
通过清除锁定位页面的认证访问端口(AAP)锁定字(ALW,字124)来锁定AAP访问。 AAP锁定后,无法执行外部批量擦除,无法重置AAP锁定。在AAP锁定时对设备进行编程的唯一方法是通过引导加载程序或已加载到闪存中的软件。
锁定功能可分为两类:
•设备仅支持调试访问锁定
EFM32 Gecko Series 0和EZR32 Series 0设备(变量newFamily = false)。
•设备支持调试访问和AAP锁定
EFM32 Gecko Series 1和EFR32 Wireless Gecko Series 1设备(变量newFamily = true)。
2.6编译选项
编程器有相应的头文件来设置软件和硬件环境。硬件环境由头文件配置,如下表所示,而软件环境由progconf.h配置,相关参数如下表所示。
表2.4 硬件配置的头文件
表2.5 progconf.h中的参数用于软件配置的文件
2.7向编程器添加新的Silicon Labs EFM32 / EFR32 / EZR32器件
新的Silicon Labs EFM32 / EFR32 / EZR32器件应具有带有Cortex-M0 +,Cortex-M3或Cortex-M4内核的串行调试(SWD)接口。当前EFM32 / EFR32 / EZR32系列之间的已知差异是器件信息(DI)页面中的芯片信息(系列代码...),存储器系统控制器(MSC)基地址,如果调试访问是AAP标识寄存器(IDR)值锁定,AHB-AP上传输地址寄存器(TAR)的包络边界,闪存擦除时序(详见第11页的表2.2器件闪存组织和擦除时序)和闪存写入时序(参见表2.3器件闪存)有关详细信息,请参阅第15页的功能和时序。
表2.6 当前EFM32 / EFR32 / EZR32系列之间的差异
如果识别出新设备的差异,则应修改相应的头文件和源文件以支持新设备。表2.5中的软件配置参数可能需要更改progconf.h软件配置文件中的参数(第20页)以适应新设备。下表是一个示例,说明如何向编程器添加EFR32MG支持。
表2.7 需要修改标头和源文件以添加新设备
3.用户界面
3.1按钮
编程器上有两个按钮,PB0和PB1。
PB0:
•在主菜单中向下滚动。
•从子菜单返回主菜单。
PB1:
•执行所选项目。
3.2 LED
编程器上有两个LED,LED0和LED1。
LED0:
•如果发生错误则亮起。
LED1:
•如果编程器忙,则亮起,表示忽略按钮。
如果编程器没有LCD,LED0和LED1也可用于显示菜单状态。
3.3显示
有一个编译选项可以选择独立编程器的显示界面。
3.3.1无显示
由于编程器状态只能由LED0和LED1指示,因此不建议这样做。
3.3.2外部LCD模块
•用于编程设备时的菜单操作和显示信息。
•使用软件驱动程序将printf()函数重新定位到LCD模块。
图3.1 液晶显示器
3.3.3串行接口
•如果LCD不可用,用于调试和菜单操作。
•如果使用EFM32GG或EFM32WG STK(板载USB虚拟COM端口)作为编程器,则不需要USB转UART转换器。
•使用软件驱动程序将printf()函数重定向到串行接口(115200 N 8 1)。
•需要PC终端软件才能显示串行接口的数据。
图3.2 串行接口显示
4.操作流程
4.1文本文件和二进制映像
编程器从USB MSD检索目标二进制映像,并将其存储到外部存储器(EBI NAND闪存或SPI NOR闪存)以进行器件编程。
USB MSD必须具有文本文件(默认名称为“proginfo.txt”),该文件为编程器加载二进制文件和编程设备提供相关信息。相应的文本(.txt)和二进制(.bin)文件必须存储在USB MSD的根目录中。
文本文件的内容必须采用以下格式:
<主闪存二进制文件名> <闪存起始地址> <锁定AAP或调试访问>
<用户页面二进制文件名> <用户页面地址>
长文件名(LFN)是文本和二进制文件不支持。地址采用十六进制格式(8位数字,不带“0x”前缀)。
以下示例文本文件程序“mainprog.bin”中的“仅主闪存”,地址为“0x00000000”,带有“debug access lock”:
mainprog 00000000 Y
以下示例文本文件程序“main flash”仅来自“mainprog.bin”at带有“AAP锁”的地址“0x00000000”:
mainprog 00000000 A
以下示例文本文件仅在“0x0fe00000”的“userprog.bin”中编写“用户页面”:
userprog 0fe00000
以下示例编写“mainprog”中的“main flash”。 PB1“地址”0x00001000“和”用户页面“来自”userprog.bin“地址”0x0fe00000“”无调试访问锁定“:
mainprog 00001000 N
userprog 0fe00000
4.2菜单操作
4.2.1主菜单
按PB0向下滚动,PB1选择。
>程序闪存(如果没有LCD显示,则LED0和LED1熄灭)
上传映像(如果没有LCD显示,LED0亮,LED1熄灭)
擦除主闪存(如果没有LCD显示,则LED0熄灭,LED1亮)
擦除用户页面(LED0亮,如果LED1亮没有LCD显示屏)
4.2.2程序闪存子菜单
此菜单显示外部存储器中的当前有效二进制映像信息。“S:”是以字节为单位的二进制文件大小,“C:”是十六进制的二进制文件校验和(CRC16)。
mainprog 00000000 N
S:524288 C:4196
如果外部存储器中没有有效的二进制映像,则显示“内存中没有二进制”。
按PB1编程目标,PB0返回主菜单。
显示目标设备信息,当前过程和LED1在运行期间打开。
EFM32GG990F1024
ERASE / PROG / VER MAIN
如果在操作期间没有发生错误,则显示编程时间和设备计数(#n)。
时间:8.99秒#1
如果编程失败,则显示错误消息,并打开LED0。
在组编程模式中,顺序编程四个或八个目标设备。
按PB0再次编程,PB1返回主菜单。
4.2.3上传映像子菜单
此菜单首先等待用户插入USB MSD设备。
插入USB MSD
等待......
如果在超时间隔内未检测到USB MSD(默认为5秒),则会显示错误代码:
无设备插入
按PB1重试,PB0返回主菜单。
如果有效的二进制文件从USB MSD成功上载到外部存储器,则显示与程序闪存子菜单类似的二进制映像信息。
mainprog 00000000 N
S:524288 C:4196
如果上传映像文件处理失败,则显示错误消息。
按PB1再次上传映像文件,按PB0返回主菜单。
4.2.4擦除主闪存子菜单
此菜单将显示目标设备信息并在操作期间打开LED1。
EFM32ZG222F32如果主闪存擦除期间未发生错误,则显示以下消息。
擦除主要完成如果擦除主闪存操作失败,则显示错误消息并打开LED0。
在群组编程模式中,顺序擦除四个或八个目标设备的主闪存。
按PB0再次擦除主闪存,PB1返回主菜单。
4.2.5擦除用户页面子菜单
此菜单显示目标设备信息,并在操作期间打开LED1。
EFM32ZG222F32
如果在用户页面擦除期间未发生错误,则显示以下消息。
擦除用户完成
如果擦除用户页面出现故障,则显示错误消息并打开LED0。
在帮派程序模式中,顺序擦除四个或八个目标设备的用户页面。
按PB0再次删除用户页面,PB1返回主菜单。
5.测试
5.1测试设置
与编程器一起使用的互连图如下图所示。编程器为EFM32GG_STK3700或EFM32WG_STK3800,目标器件为EFM32 STK或EFR32 WSTK或EZR32 WSTK。
图5.1 编程器连接图
不同目标STK和WSTK上的相应信号如下表所示。引脚或焊盘位置可在相关STK或WSTK的原理图和装配图中找到STK或WSTK上的目标器件由编程器供电,因此电源开关(电路板左下角的滑动开关) STK或WSTK应处于BAT位置。
表5.1 用于连接目标STK和WSTK的引脚或焊盘
5.2测试结果
用于测试的二进制文件保存在本应用笔记的“testbin”文件夹中,下表中的测试结果基于以下条件。
•SDK为EFM32 SDK v4.4.0
•仅清除,编程和验证主闪存
•progconfig.h的编译选项设置为默认值(对于EFM32GG_STK3700,SKIP_POLLING = TRUE,WRITE_DELAY = 10,对于EFM32GG_STK3800,WRITE_DELAY = 11)
•软件编译在Simplicity IDE中使用-O3优化(发布版本)
•外部存储器在板上NAND闪存,内部缓存在EFM32GG_STK3700上可用
表5.2 不同目标设备的编程时间
- |
- +1 赞 0
- 收藏
- 评论 0
本文由yuanyuanyuan翻译自Silicon Labs,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】32位低功耗MCU EFM32LG232低温工作串口数据停止位报错问题经验分享
EFM32LG232是Silicon Labs推出的针对低功耗市场的高性价比方案,常用休眠模式下,开启RTC功耗为0.95uA,关断模式下仅为20nA,广泛应用于低功耗方案设计中,本文主要讲解在低温模式下串口数据通信出错的问题分析。
设计经验 发布时间 : 2019-03-06
【经验】EFM32JG1B200F128低功耗32位MCU为暂态录波型故障指示器应用现场改变需求提供解决方案
暂态录波型故障指示器一般应用在10kV的输配电线路上,用来监测线路电流,检测线路短路和接地故障,最终实现故障位置定位。考虑到客户现场需求的改变以及软件功能优化升级等需求,暂态录波型故障指示器要具有大批量无线升级应用的功能。本文设计了一种基于EFM32JG1B200F128低功耗32位MCU的应用升级方法。
设计经验 发布时间 : 2019-09-28
【经验】基于EFM32JG1B200F128低功耗32位MCU的暂态录波型故障指示器低功耗设计技巧
暂态录波型故障指示器一般用在10kV的输配电线路上,用来监测线路电流,检测线路短路和接地故障,最终实现故障位置定位。 以CT取电作为主电源,超级电容和锂电池作为后备电源。考虑到后备电源有限性及10年在线运行免维护的要求,CT取电能力需满足其全速运行, 故对其动态功耗和静态功耗要求较高。笔者采用EFM32JG1B200F128芯片开发的指示器,采用了一些低功耗的设计技巧。
设计经验 发布时间 : 2019-08-17
【应用】32位低功耗MCU EFM32系列的电流数模转换器(IDAC)应用
本应用主要介绍了如何使用Silicon Labs EFM32电流数模转换器(IDAC),并通过部分示例工程来演示其功能。 IDAC常用于提供或吸收可编程电流,实用设计中可通过软件或使用PRS功能来完成IDAC的控制。
应用方案 发布时间 : 2019-02-12
【应用】芯科科技提供内置16位ADC的低功耗32位MCU助力蓝牙耳机,主频高达80MHz
蓝牙耳机的系统设计需要选型一款MCU,要求尺寸小,效率高,待机功耗低。本文推荐SILICON LABS推出的低功耗32位MCU EFM32PG23B210F256IM48-C,主频高达80MHz,具有DSP指令和浮点单元,具有性能灵活的16位的数转换器。
应用方案 发布时间 : 2023-03-14
【应用】EFM32JG1B200低功耗32位MCU在暂态录波型故障指示器中的应用
本文提出了一种基于EFM32JG1B200低功耗32位MCU的暂态录波型故障指示器,给出了暂态录波型故障指示器设计框图,并对其进行了功耗测试,满足中国电科院送检以及现场应用需求。
应用方案 发布时间 : 2019-08-17
【应用】低功耗32位MCU在智能安防无线报警系统中的应用
芯科高性能低功耗的32位微控制器EFM32非常适合于智能安防系统的应用,其EFM32JG系列内核采用运算性能突出的Cortex-M3设计,极大地缩短了智能安防应用中的算法处理时间,提高了系统的性能。
新应用 发布时间 : 2019-09-03
在使用Silicon Labs的32位低功耗MCU EFM32ZG110F32-QFN24调试的过程中发现,如果没有无线信号发射的时候ADC采集绘制的波形一直很平滑,但无线信号一发射ADC采集绘制的波形就会 有毛刺,如何改进?
这个干扰问题可以从硬件和软件两方面来改进: 硬件方面在ADC采集端加Silicon Labs的TVS和钳位,加RC滤波,效果有些改善,调整无线的天线方向可以有明显的改善。 软件方面通过中位值平均滤波法和递推平均滤波法对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统。
技术问答 发布时间 : 2019-10-24
如何为Silicon Labs 32位低功耗MCU EFM32GG230F512实现基于RTC的软件无滴答日历?
在Silicon Labs 32位低功耗MCU EFM32GG230F512上实现软件方式的无滴答日历,可以通过使用日历标准C库 time.h, 在time.h中实现的timer()函数基于RTC计数值来计 算日历时间。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32GG990芯片使用中,将OPAMP(运算放大器)组合成三运放差分放大器时可选的放大倍数为多少?
当将三个OPAMP组合成差分放大器时,差分放大器的增益是由OPA0和OPA1的组合增益所决定的,由于三运放差分电路的电阻网络对应的桥臂要对应成比例,所以只三种有 效的差分增益可供使用,它们分别为1/3、1和3,此时OPA0 RESSEL和OPA2 RESSEL的组合分别为0和4、1和1、4和0。
技术问答 发布时间 : 2017-10-10
【应用】EFM32PG 低功耗32位MCU在智能网关中应用
智能物联市场多种无线协议同时并存现状,物联网(IoT)网关参考设计突出通用性,灵活性等特点。解决可预见的未来ZigBee、Wi-Fi、Thread、BLE等多协议将共同解决智能家居市场中不同场景及应用,多协议(Host+ NCP)的应用框架无线网关应运而生。这种架构设计的网关通用性好,可移植性强,加上它的易扩展性,方便后续的产品升级维护。早期采用的单片机功耗较高,使得电池电量消耗快, 产品使用时间
应用方案 发布时间 : 2019-02-28
【应用】休眠功耗低至1.4uA的32位MCU助力水表等低功耗应用
EFM32JG系列32位MCU是silicon Labs采用了新的工艺而设计,专门针对低功耗市场所推出的高性价比方案。
新应用 发布时间 : 2019-09-04
【经验】EFM32系列低功耗32位MCU芯片加密详解
本文主要介绍以Silicon Labs EFM32系列低功耗32位MCU为核心的方案打造加密系统。
设计经验 发布时间 : 2017-10-27
32位低功耗MCU EFM32系列内部的LFRCO是32K还是32.768K?
EFM32系列32位低功耗MCU内部的LFRCO为32K。
技术问答 发布时间 : 2017-10-10
【应用】32位低功耗MCU EFM32LG232在故障指示器的应用,可实现采样精度温度补偿方案
世强推出的32位低功耗MCU EFM32LG232内部自带温度传感器,通过内部获取其温度值,温度偏差在2°以内,可实现其采样精度温度补偿方案,进而实现故障指示器的高精度测量功能。
应用方案 发布时间 : 2019-09-04
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,858
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论