Silicon Labs 8位单片机EFM8BB31 SPI通信调试注意事项
EFM8BB10 是SILICON LABS公司的一款小封装、多用途8位单片机。采用C8051内核,70%指令都是单周期指令,运行效率高,同时最高运行频率50MHz,RAM容量最大为4352 bytes,FLASH容量最大可达64KB。提供3种封装可选:QSOP24, QFN32, 和QFN24,其中QFN20仅有4mm * 4mm,非常适合小体积产品应用。提供商用级,工业级,以及汽车级型号可选,通过AEC-Q100汽车级认证,品质有保障。EFM8BB31有大量用户选用,世强常备库存,供货有保障!
EFM8BB31这样一款资源丰富,高效率,小体积的8位单片机,已被许多用户选用,被广泛应用于消费电子,精密仪器,电源管理,工业控制自动化,智能传感器,汽车控制,安防监控等领域。在开发过程中,经常使用到SPI通信,EFM8BB31支持3线或4线模式的SPI主模式和从模式。支持所有时钟相位和极性模式,可在suspend或者snooze模式下运行,并在接收字节时唤醒CPU,具备2字节发送和接收FIFO。如此强大的SPI通信功能,我们在调试的时候,可以在哪里找到参考代码?又有哪些注意事项呢?
1、EFM8BB31在Simplicity studio V4(以下简称SSv4)开发平台下开发,也可以支持keil编译器。在SSv4下,可以找到SPI参考代码,主从模式的参考代码都有,如下:
2、SPI 引脚配置,可以通过SSv4的可视化配置界面帮助配置,包括SPI的寄存器配置和参数设置都可以通过可视化图形界面帮助完成,并生成初始化代码,详见”*.hwconf”:
3、由于EFM8BB31的SPI收发FIFO有2个字节,如何刷新FIFO呢?
可以通过SPI0FCN0: SPI0 FIFO Control 0,TFLSH位和RFLSH位操作,刷新收发的FIFO,如果遇到收发数据不对的时候,可以尝试在收发之前先刷新FIFO试试。
4、如果系统中,有多个中断,高优先级的中断会打算当前低优先级的中断,SPI默认的中断优先级是LOW级别。如果遇到SPI通信被其他中断频繁打断的情况,可以尝试调整SPI的中断优先级,在SSV4的”*.hwconf”文件,可以很方便的配置:
5、如果主机采用的是GPIO软件模拟的SPI时序,来与EFM8BB31通信的,为了保障读取MISO的数据更可靠,可以尝试在SPI的CLK上升沿之后延时一会儿再读取数据,这样EFM8BB31的SPI会有足够的时间输出正确的数据,对于主频很高的主机需要非常注意这点。例如延时2us,5us等等,遇到具体SPI波形问题时,也可以通过逻辑分析仪分析波形来调整延时时间和响应的操作。
如果在开发过程中遇到任何难题,欢迎在“世强元件”平台查找答案,如果未能找到您需要的答案,可以在平台提问哦,我们会24小时内回复。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由紫云提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】8位单片机EFM8系列的SFR Page操作
Silicon Labs的8位单片机EFM8系列,集成丰富的外设,高性能,小封装。软件开发时,由于外设多,寄存器操作引入了SFR Page机制,注意SFR Page设置,防止程序错误,让EFM8系列芯片设计出稳定的优质产品。
设计经验 发布时间 : 2019-04-17
【经验】解析Silicon Labs的8位单片机EFM8SB10休眠时如何处理GPIO口降低功耗
Silicon Labs的8位单片机EFM8SB10采用C8051内核,主频25MHz,集成12BIT的ADC、模拟比较器、触摸按键、UART、SPI、I2C等功能,休眠功耗低至50nA。本文将介绍EFM8SB10休眠时如何处理GPIO口降低功耗。
设计经验 发布时间 : 2022-04-14
【经验】如何解决8位单片机EFM8BB21F16G串口通信不正常问题?
本文以Silicon Labs的8位单片机EFM8BB21F16G为例,介绍如何通过软件程序置位中断标志位,通过串口中断方式来解决清除前如果有数据到来会引起数据丢失并无法产生中断的方法。
设计经验 发布时间 : 2021-05-19
屹晶微电子(Egmicro)逆变器/驱动芯片/电源管理芯片/D类功放/传感器/运放/单片机/安防报警产品选型指南
目录- 公司简介 产品概览 逆变器/驱动芯片 非隔离DC-DC 大功率AC-DC 中小功率AC-DC 电池充电管理芯片/移动电源管理芯片 线性电源/LED驱动/D类功放 微波红外感应/滚动码/霍尔传感器 运放/比较器/单片机 解决方案
型号- EG1182,EG6599,EG1185,EG4002C,EG12521,EG1611,EG3116,EG3113,EG8025,EG8542,EG0001,EG3112,EG1177,EG4321,EG8301,EG8543,EG4320,EG7335,EG8303,EG8305,EG3116D,EG1205,EG8030,EG4319,EG4318,EG1169,EG78L05,EG2136,EG1203,EG2134,EG1165,EG201,EG200,EG1164,EG2132,EG324,EG2133,EG1166,EG276,EG393,EG1163S,EG1513,EG1516,EG3014,EG3012,EG8401,EG3013,EG8403,EG8405,EG1190,EG1192,EG2181D,EG1191,EG2113D,EGS003,EG1503,EG8371,EG8010,EG3525,EG1501,EG8011,EG3003,EG1187,EG2113S,EG1186,EG3001,EG1189,EG3002,EG301,EG1188,EG6830,EG6831,EG49,EG8060,EG2108,EG2106,EG2103,EG2104,EG1253,EG1252,EG1131,EG1133,EG4002,EG4001,EG1130,EG2184,EG4361,EG2181,EG4360,EG2183D,EG1125,EG2334,EG1127,EG1126,EG1121,EG1120,EG1123,EG41,EG2130,EG7500,EG1160,EG2131,EG1163,EG2104S,EG1162,EG2104M,EG2808,EG3112D,EG4427,EG358,EG1127L,EG2126,EG2123,EG2003,EG2124,EG2121,EG2122,EG1151,EG3846,EG3113D,EG3844,EG2113,EG27324,EG5620,EG27325
高性价比Silicon labs EFM8单片机,STM8完美备选方案
Silicon Labs EFM8BB系列8位单片机采用流水线式CIP-51内核,70%指令的执行时间为1-2个时钟周期,与标准的8051指令集完全兼容,外设资源、性能指标及设计灵活性都具有自身独特的优势。
新产品 发布时间 : 2018-02-08
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
技术问答 发布时间 : 2016-10-25
【经验】PCB布线技巧:8位单片机端口Crossbar功能的使用及配置
如果单片机自带Crossbar功能,只要软件配置调整一下各端口功能,PCB布线就会畅通。
设计经验 发布时间 : 2017-08-09
8位单片机EFM8系列中芯片上的UID是什么?
UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID。有两类获取UID的方式,一种通过读取RAM的特定地址获得,一种通过读取Flash的特定地址获得。在早期引入此ID的MCU上(比如EFM8BB1/SB1/SB2)这个ID为32位,在芯片复位时(PC指针被复位至0之前)被复制至RAM中特定位置,用户程序可以读取其值。此位置的RAM仍然可以由用户使用。需要注意的是如果此位置被编译器分配了变量,那么当函数执行至main()时此位置的内容会被初始化代码覆盖。EFM8UB2的UID也是此类,但其位数为128位。在新的EFM8系列MCU上(比如EFM8BB3/LB1/UB1),UID位数为128位,存储在Flash上。
技术问答 发布时间 : 2017-05-05
【经验】如何巧妙基于EFM8BB1开发套件EFM8BB1LCK开发EFM8其他系列的8位单片机?
为开发EFM8BB1系列MCU,Silicon Labs成功推出了开发套件EFMBB1LCK,它简单、实用、超低价格,深受广大工程师的喜爱。那么,如何实现对EFM8LB、EFM8UB、EFM8SB系列单片机的开发呢?本文将详细介绍了基于EFM8BB1的开发套件EFM8BB1LCK来开发EFM8其他系列8位单片机的方法,供大家参考。
设计经验 发布时间 : 2020-03-24
8位单片机EFM8在线烧录时,使用烧录软件Flash Programming Utility每次更换芯片都需要重新连接,请问是否有不需要重新连接的在线烧录软件?
除了Flash Programming Utility烧录软件,Silicon Labs还提供MCUProductionProgrammer烧录软件,后者更换芯片时无需再重新连接。
技术问答 发布时间 : 2016-10-25
8位单片机C8051F930在程序调成完成之后,使用Flash Programming Utility进行程序烧录发现无法烧录进入,提示连接失败,应如何处理?
因为C8051F930单片机是SiLICON LABS的C8051Fxx系列比较后期的产品,所以需要使用4.21.00以上版本的Flash Programming Utility进行程序烧录。
技术问答 发布时间 : 2016-10-25
【应用】Silicon labs 8位MCU EFM8BB31在工业水泵上的应用,可实现数据准确采集,满足处理速度的要求
水泵是输送液体或使液体增压的机械,水泵最常用的驱动方式是用电动机驱动。本方案采用Silicon Labs的8位单片机EFM8BB31做主控,此芯片集成了2个UART和最高通信速率为12Mbps的 SPI,可充分满足与外设产品的通信要求。 该系列MCU还集成有12位的ADC和多达四个 12 位DAC,可以实现对数据的准确采集,49MHz的主频、最高64KB的Flash,满足处理速度和程序的设即需求。
应用方案 发布时间 : 2020-02-16
8位单片机EFM8LB11,既有I2C,也有SMBus,那么,I2C与SMBus的主要差别是什么?
SMBus和I2C的主要差别是与各种时序要求相关。下面列举最重要的方面:SMBus定义一个最小总线时钟频率FSMB,10KHz。I2C没有明确任何最小总线时钟频率。除了维持有效的总线吞吐量,该SMBus协议参数还可作为一个简单的检测总线空闲条件(除了或代替检测每个STOP条件)和实现比特位超时的方法。SMBus定义一个数据保持时间,即从SMBCLK下降沿之后,SMBDAT仍然必须维持至少300ns有效。这在I2C协议中定义的保持时间为0。SMBus时钟最大频率定义为100KHz。I2C提供多种不同速率模式操作,Standard模式最高频率达到100KHz,Fast模式为400KHz,Fast Plus为1MHz,而High-speed高达到3.4MHz。SMBus定义一个时钟低电平超时 TTIMEOUT,最大为35ms。I2C并没有明确指定任何超时限制。SMBus明确TLOW:SEXT,即SMBus从设备的累积时钟低扩展时间。I2C没有类似的规定。SMBus明确 TLOW:MEXT,即SMBus主设备的累积时钟低扩展时间。I2C没有类似的规定。
技术问答 发布时间 : 2017-05-05
【经验】Silicon Labs 8位单片机EFM8系列仿真接口C2硬件电路设计
EFM8系列MCU是Silicon Labs公司推出的一款多用途、小封装8位单片机,该系列MCU经过AEC-Q100认证,被广泛应用于光通信设备,消费电子,电机控制,照明系统,医疗器械等领域。EFM8系列与C8051F系列MCU都是采用C2接口进行程序的烧写和软件的调试,但是我们实际应用中,很多客户在设计C2接口时,由于设计的不当,导致无法调试烧写,本文将对C2接口设计和注意事项,进行介绍。
设计经验 发布时间 : 2019-04-12
【应用】QFN20超小封装8位单片机EFM8BB2应用于手持吸尘器,节约PCB面积
手持式吸尘器具有体型小,携带及使用方便等特点,适合于用来清洁较小的空间,主要用于清洁车内,键盘,电器等。 手持式吸尘器能吸尘主要在于它的内部装有一个电动抽风机,抽风机的转轴上有风叶轮,通电后,抽风机旋转产生吸力和压力,在吸力和压力的作用下,空气高速排出,从而达到吸尘的目的.本文将详细介绍EFM8BB2为主控在手持式吸尘器的应用优势.
应用方案 发布时间 : 2020-02-16
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,128
现货市场
服务
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
登录 | 立即注册
提交评论