Renesas RE01B MCU Study Notes :Overview
这是一款基于Cortex-M0+的超低功耗MCU,但其实刚拿到文档的时候,它让我眼前一亮的并不是超低功耗这个关键词,而是它支持蓝牙5.0、具有2D加速的功能,也就是说这一块低功耗芯片片上就具有完整的无线通信协议栈,而不是像以前接触过的STMicro32那样。大胆预测一下,它应该是应用在长续航场景下的移动设备上,例如智能手环之类的。
这是一款基于Cortex-M0+的超低功耗MCU,但其实刚拿到文档的时候,它让我眼前一亮的并不是超低功耗这个关键词,而是它支持蓝牙5.0、具有2D加速的功能,也就是说这一块低功耗芯片片上就具有完整的无线通信协议栈,而不是像以前接触过的STMicro32那样。大胆预测一下,它应该是应用在长续航场景下的移动设备上,例如智能手环之类的。
参赛单位:武汉理工大学 队伍名称:木大木大 指导老师:钟毅,张家亮 参赛队员:甘云汉,陆国威,万禹壮 总决赛奖项:一等奖(ARM杯企业大奖)
“时钟域(clock domain)”可以说是数字集成电路中一个非常重要的内容了,那么,何谓“跨时钟域”?
很好理解,在时序逻辑电路中,所有触发器、寄存器的运行都是由时钟激励而运行下去的。而一个大型的数字系统中不可能只有一种时钟:
例如Cortex-M3软核常常运行在50~100MHz、而UART串行口波特率要在921600以上的话,输入时钟频率最好高于200MHz、FPGA上的DDR3一般要求200MHz的时钟输入,不同PLL/MMCM输出的同频率时钟它们的相位也有可能不同……
这么多不同时钟激励的系统要组合在一起并能进行数据交互,那么势必会遇到“跨时钟域”的问题,解决这个问题的一大方法之一就是利用异步FIFO进行数据交互
FIFO(First In First Out),顾名思义,即先输入先输出的一种模块,FIFO一般分为同步FIFO和异步FIFO两种,同步FIFO即输入和输出在同一个时钟域中,异步FIFO即输入输出不处于同一个时钟域。
FIFO的存储模块可以看成一个二维寄存器(当然也可以通过生成ram代替),因此有些概念需要掌握,即:
作为AMBA的中流砥柱之一,AHB被用于高性能、高时钟频率的系统结构中,它多被用在ARM核与片内高速sram、flash、DMA和总线桥的连接。它和上次学到的APB的最大区别在于功能更加丰富,可以进行流水线操作,并且性能更强。
对于Split事务处理、多个Master的特性,这一篇就不写了,只讲讲最基础的数据传输以及流水线操作。更多细节可以查看AMBA5手册(ARM IHI 0033B.b
),本文中大量图片也来源于官方手册。
APB总线是AMBA里面最简单的一个总线接口了,它是一个非流水线结构,且控制逻辑简单,这也就决定了它是利用于低带宽的外围总线设备上,例如UART、IIC、定时器等等。注意,APB还有一个特点就是,APB的主机只有一个,那就是APB总线桥,不可能有其他主机,也不可能有多个主机。
APB总线接口的状态转换图如图所示(ARM IHI 0024B - Page3-2):