【经验】基于EFM8LB的CLU实现25G LANWDM光模块的曼彻斯特编、解码,减少对MCU带宽资源的占用
SILICON LABS 8位单片机EFM8LB,因具备高速度、高模拟特性、小体积、低成本等特性,被广泛应用在包括25G LANWDM等光模块中,最近又因EFM8LB集成的CLU可以支持硬件曼彻斯特编、解码,更加奠定了EFM8LB在中、低速光模块中的霸主地位。
显然,基于EFM8LB的CLU实现硬件曼彻斯特编、解码,好处多多,不仅处理速度快,更能减少对MCU带宽资源的占用,提高MCU执行速率。那么,如何基于EFM8LB的CLU实现25G LANWDM光模块的曼彻斯特编、解码?本文将为你详细解读。
一、基于EFM8LB CLU0实现的硬件曼彻斯特编码的方法。
以下图1为例,“C”为时钟信号,“D”为数据信号,,“M”为“C”与“D”经曼彻斯特编码后曼彻斯特码。
图1 曼彻斯特编码示例波形
图2 基于EFM8LB CLU0实现的硬件曼彻斯特编码逻辑框图
如上图2,当将时钟信号从P0.4脚输入、将数据信号从P0.7脚输入,并将这两个脚配置为CLU0输入脚、且CLU配置为“XOR”(异或)功能时,则CLU0OUT就可以输出曼彻斯特编码,并可通过CROSSBAR从IO口输出(本例是P0.2脚)。相应的,EFM8LB的CLU0的配置代码如下:
SFRPAGE = 0x20;
/* MXA as P0.4, MXB as P0.7*/
CLU0MX = 0xAB;
CLU0FN = LUT_XOR(SI_LUT_A, SI_LUT_B);
CLU0CF = CLU0CF_OEN__ENABLE |
CLU0CF_OUTSEL__LUT;
CLEN0 |= CLEN0_C0EN__ENABLE;
SFRPAGE = 0;
二、基于EFM8LB CLU0实现的硬件曼彻斯特解码的方法。
基于EFM8LB CLU0的硬件曼彻斯特解码,要比编码复杂的多。它输入是1路曼彻斯特编码“M”,输出的,是两路信号数据“D”及时钟“C”。为了产生时钟信号,还在EFM8LB内部启用1路定时器(本例是T2,自动重载模式)。如下图3,是曼彻斯特解码波形示例,其中包括“M”、“D”、“C”、“T2”及中间信号等波形。
图3 曼彻斯特解码波形示例
如下图4,是EFM8LB基于CLU0~CLU3及T2等外设配置的硬件曼彻斯特解码逻辑框图实例,1路“M”曼彻斯特码输入,2路信号输出(“D”数据码及“C”时钟码)。
图4 基于CLU0~CLU3及T2等硬件外设配置的硬件曼彻斯特解码逻辑框图
对于EFM8LB的外设CLU0~CLU3配置代码如下:
CLU0MX = CLU0MX_MXA__CLU0A1 | CLU0MX_MXB__CLU0B2;
CLU0CF = CLU0CF_OUTSEL__LUT | CLU0CF_OEN__ENABLE;
CLU0FN = LUT_NOR(SI_LUT_A, LUT_XOR(SI_LUT_B, SI_LUT_C));
CLU1MX = CLU1MX_MXA__CLU1A1 | CLU1MX_MXB__CLU1B1;
CLU1CF = CLU1CF_OEN__ENABLE | CLU1CF_CLKSEL__ALTCLK;
CLU1FN = LUT_NOT(SI_LUT_A);
CLU2MX = CLU2MX_MXA__CLU2A0 | CLU2MX_MXB__CLU2B8;
CLU2CF = CLU2CF_CLKSEL__CARRY_IN | CLU2CF_OEN__ENABLE;
CLU2FN = SI_LUT_B;
CLU3MX = 0x00;
CLU3CF = CLU3CF_OUTSEL__LUT | CLU3CF_OEN__ENABLE;
CLU3FN = SI_LUT_C;
CLEN0 = 0x0F; // enable CLU0, CLU1, CLU2, CLU3
综上,通过波形、实现逻辑框图及配置代码,详细描述了基于EFM8LB硬件CLU及定时器T2实现曼彻斯特编、解码的方法,如此,可大大减少编、解码任务对MCU带宽的占用、加快EFM8处理调顶信号的速度。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由风起云扬提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】如何下载、安装、设置Silicon Labs 8位单片机集成开发环境IDE?
Silicon Labs的8位单片机集成开发环境IDE,简单、容易、强大,是C8051F及EFM8等8位单片机软件开发的强大利器!为了让新手能够快速上手IDE,本将详细接收Silicon Labs IDE的下载、安装、设置等方法。
【经验】8位单片机EFM8BB21 串口UART1的配置与调试
UART是单片机中经常要使用到的外设, Silicon Labs EFM8BB21系列8位单片机中有两个UART,分别UART0和UART1,本片文章主要介绍UART1的配置与调试。使用芯科官方推出的开发软件Simplicity Studio配置工具可以很方便的进行寄存器的初始化配置,省去了繁杂的计算。
【经验】芯科8位单片机EFM8BB51与EFM8BB21的对比分析
由于EFM8BB51的寄存器相对于EFM8BB21做了较多的调整,使用EFM8BB51来替换EFM8BB21,程序将做修改才能在新的MCU上运行,为了方便修改程序,本文针对寄存器进行对比,方便客户有针对性的调整程序。
【经验】8位单片机EFM8系列的SFR Page操作
Silicon Labs的8位单片机EFM8系列,集成丰富的外设,高性能,小封装。软件开发时,由于外设多,寄存器操作引入了SFR Page机制,注意SFR Page设置,防止程序错误,让EFM8系列芯片设计出稳定的优质产品。
【经验】如何计算8位单片机EFM8LB系列PWM最高输出频率?
在电机驱动、电源发生、可调电压发生等应用中,经常需要PWM波,Silicon Labs推出的高性能、高集成度、小体积、高性价比的EFM8LB系列8位单片机,可广泛应用光模块、电机控制等领域,它支持输出PWM波。本文将详细讲解如何计算EFM8LB系列8位单片机PWM最高输出频率。
【经验】8位单片机EFM8BB51正确初始化ADC后不工作的问题处理经验
芯科最新推出的8位单片机EFM8BB51,EFM8BB51使用模拟部分功能(比如ADC,比较器),客户往往会忽略AMUXCP的初始化,导致模拟功能不能使用。本文介绍AMUXCP功能的使用。
【经验】8位单片机C2自制烧录器不能用于EFM8问题分析及解决
Silicon Labs公司推出的8位单片机,采用独特的C2调试接口,在占用极少的引脚资源的情况下,实现在线仿真调试,烧录功能,方便软件的开发设计。客户自制C2烧录器,可以更好的用于批量生产。以前用于C8051F系列的自制烧录器如果在EFM8烧写时出现问题,可以根据文章内容进行简单修改,解决烧写问题。
【经验】如何基于Production Programmer实现EFM8系列8位单片机HEX文件下载?
当软件工程师调试并测试完毕代码后,下一个步骤,就是交给生产进入下载、生产环节。对于Silicon Labs的8位单片机,产线上下载方式有多种多样。本文将为你介绍一种简单、高效、低成本的下载方式,即基于原厂提供的通用软件“Production Programmer”+ U-EC6的方式。
【经验】解决8位单片机EFM8BB51驱动三相电机过零检测不灵敏的问题
对于简单的8位MCU实现,块换向用于驱动电动机。这种驱动方法需要逆变器电路对根据霍尔传感器给出的转子位置,电机相位电角度每120度的电流或者无传感器方法。本文主要解决8位单片机EFM8BB51F16I-QFN20驱动三相电机过零检测不灵敏的问题。
【经验】8位单片机EFM8系列的ADC对参考电压Vref引脚设计要求
Silicon Labs的8位单片机EFM8系列,高精度ADC功能时该芯片的一大特点,为了ADC获得准确的采用值,除了正确操作ADC外设外,还需要正确设计参考电压,结合EFM8芯片的特点,介绍参考电压设计需要注意的事项。
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
【经验】解析Silicon Labs的8位单片机EFM8SB10休眠时如何处理GPIO口降低功耗
Silicon Labs的8位单片机EFM8SB10采用C8051内核,主频25MHz,集成12BIT的ADC、模拟比较器、触摸按键、UART、SPI、I2C等功能,休眠功耗低至50nA。本文将介绍EFM8SB10休眠时如何处理GPIO口降低功耗。
【经验】如何基于SMBus接口让8位单片机EFM8实现bootloader操作?
Silicon Labs推出的8位单片机EFM8,具有模拟性能好、集成度高、运行速度快、体积小巧等优点,被广泛应用在光模块、电机控制、智能家居等领域。它还支持bootloader功能,而且出厂芯片即可自带boot代码(基于UART的,或基于SMBus的,根据型号而定)。那么在实际操作中,对于EFM8,在实现Bootloader时具体操作步骤是怎样的呢?本文将详细为你解读。
【经验】8位单片机EFM8的Boot代码放置模式及其特点
Silicon Labs 8位单片机EFM8支持Boot功能,通过该功能,可以使EFM8摆脱调试器进行代码下载,甚至可以实现远程代码升级等,这给单片机代码更新带来了极大的方便。而Boot在FLASH中的放置,对Boot实现具有重要影响,本文将详细为你解读Boot代码放置模式及其特点。
【经验】8位单片机C8051F360如何实现多个SPI通信?
快速与不同配置的多个从设备进行通信,已经成为当前MCU芯片设计中的核心技术点之一。在现有微控制器芯片中spi接口一般只有1个,如何实现多个SPI通信是个问题。本文将介绍Silicon Labs的8位单片机C8051F360实现多个SPI通信的方法。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,878
现货市场
服务
可定制ATD TE Dehumidifier的冷却功率:20~220W;工作电压:12V(DC)/ 220V(AC);控温精度:≤±0.5℃;尺寸:冷面:20*20~500*300;热面:60*60~540*400(长*宽;单位mm)。
最小起订量: 1 提交需求>
拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论