Renesas RE01B MCU Study Notes :Overview

这是一款基于Cortex-M0+的超低功耗MCU,但其实刚拿到文档的时候,它让我眼前一亮的并不是超低功耗这个关键词,而是它支持蓝牙5.0、具有2D加速的功能,也就是说这一块低功耗芯片片上就具有完整的无线通信协议栈,而不是像以前接触过的STMicro32那样。大胆预测一下,它应该是应用在长续航场景下的移动设备上,例如智能手环之类的。

阅读更多

跨时钟域的典型:异步FIFO的设计

跨时钟域的典型范例——异步FIFO

“时钟域(clock domain)”可以说是数字集成电路中一个非常重要的内容了,那么,何谓“跨时钟域”?

很好理解,在时序逻辑电路中,所有触发器、寄存器的运行都是由时钟激励而运行下去的。而一个大型的数字系统中不可能只有一种时钟:

例如Cortex-M3软核常常运行在50~100MHz、而UART串行口波特率要在921600以上的话,输入时钟频率最好高于200MHz、FPGA上的DDR3一般要求200MHz的时钟输入,不同PLL/MMCM输出的同频率时钟它们的相位也有可能不同……

这么多不同时钟激励的系统要组合在一起并能进行数据交互,那么势必会遇到“跨时钟域”的问题,解决这个问题的一大方法之一就是利用异步FIFO进行数据交互

什么是FIFO

FIFO(First In First Out),顾名思义,即先输入先输出的一种模块,FIFO一般分为同步FIFO和异步FIFO两种,同步FIFO即输入和输出在同一个时钟域中,异步FIFO即输入输出不处于同一个时钟域。

FIFO的存储模块可以看成一个二维寄存器(当然也可以通过生成ram代替),因此有些概念需要掌握,即:

阅读更多

AMBA3—AHB总线(一)

AMBA3—AHB总线(一)

作为AMBA的中流砥柱之一,AHB被用于高性能、高时钟频率的系统结构中,它多被用在ARM核与片内高速sram、flash、DMA和总线桥的连接。它和上次学到的APB的最大区别在于功能更加丰富,可以进行流水线操作,并且性能更强。

AHB的特性

  • Burst传输
  • Split事务处理
  • 单周期Master移交
  • 单一时钟沿操作
  • 无三态
  • 更宽的总线配置(64/128)
  • 流水线操作
  • 可支持多个总线主设备

对于Split事务处理、多个Master的特性,这一篇就不写了,只讲讲最基础的数据传输以及流水线操作。更多细节可以查看AMBA5手册(ARM IHI 0033B.b
),本文中大量图片也来源于官方手册。

阅读更多

CORE学习:AMBA3--APB总线协议及简单例子

AMBA3—APB总线

APB总线是AMBA里面最简单的一个总线接口了,它是一个非流水线结构,且控制逻辑简单,这也就决定了它是利用于低带宽的外围总线设备上,例如UART、IIC、定时器等等。注意,APB还有一个特点就是,APB的主机只有一个,那就是APB总线桥,不可能有其他主机,也不可能有多个主机。

APB状态机

APB总线接口的状态转换图如图所示(ARM IHI 0024B - Page3-2):

APB状态转移图

阅读更多