讨论s3c2440的时钟与DMA

通过配置MPLLCON的MDIV,PDIV,SDIV可以获得MPLL。通过公式:
Mpll = (2 * m * Fin) / (p * 2S)
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
AHB BUS(advanced high-performance bus)上连接的是高速设备如LCD,USB Host,ExtMaster,SDRAM等。注意他们是通过控制器间接跟总线连接的。APB BUS(advanced peripherals bus)连接的就是低速的外围设备。
DMA对s3c2440的性能非常重要。S3c2440支持位于系统总线和外围总线之间的4个通道的控制器。每个DMA控制器通道无限地执行系统总线上的设备或外设总线上的设备之间数据搬移。
DMA有3种状态:
状态一:作为初始状态,DMA等待DMA请求,一旦请求到达,进入状态二,在此状态,DMA ACK和INT REQ都为0。
状态二:在此状态,DMA ACK变成1且计数器(CURR_TC)从DCONN[19:0]装载。注意DMA ACK直到后边被清除一直保持1。
状态三:在此状态,进行DMA原子操作的子状态机被初始化。此子状态机从源地址读取数据并写入目的地址。此操作应该考虑数据大小和传输大小(single or burst),而在全服务模式whole service mode中,次操作一直被重复直到计数器(CURR_TC)变成1;而在单服务模式single service mode中,此操作仅被执行一次。当计数器(CURR_TC)变成0且外部中断设置DCON[29]
寄存器被置1,主状态机发出中断请求信号(INT REQ)。另外,遇到以下情况,其清除DMA ACK。
(1)在全服务模式下计数器(CURR_TC)变成0
(2)在单个服务模式下计数器原子操作完成
外部DMA请求/应答模式:
有3种类型的外部DMA请求/应答协议(单服务请求,单服务握手和全服务请求模式)。
请求模式和服务模式的对比:
-如果XnXDREQ 保持有效,下个传输马上开始,否则它会一直等到XnXDREQ 有效。
握手模式
如果XnXDREQ 无效,DMA 在两个周期内将XnXDACK 设无效。否则他会一直等
XnXDREQ 无效。

当需要DDMA操作的时候,外部DMA请求引脚XnXDREQ置为低电平,此时,DMA控制器向CPU发出占用总线的请求,当总线请求成功后,XnXDACK变为低电平,表示CPU已将总线使用权交给了DMA控制器,可以进行数据传输。当数据传输完成后应答信号XnXDACK置为高电平,通知CPU完成一次数据传输。
评论