赞
踩
网卡芯片,也有 controller(mac芯片) 和 PHY部分
USB 芯片,也有 controller 和 PHY部分
5G 芯片,也有 协议层 和 PHY部分
USB 全套硬件组成
Controller
CSR
FIFO
MAC
PHY
CSR层 简述: 寄存器的接口部分,被cpu运行的指令(load,store)访问 角色: slave 总线: AXI/AHB总线 驱动力: 来自于 cpu运行的指令 详述: 可以被软件写入,从而控制USB芯片 可以被软件读取,从而获取USB芯片的状态 FIFO层 简述: 作为master,控制 USB到DDR,DDR到USB的数据通路 角色: master 总线: AXI/AHB 驱动力: 运行时, 来自于 FIFO层自身 详述: 当 USB host operate 一个 发送 TD 时,FIFO层 控制 DMA搬运 数据 从 DDR 到 USB 当 USB host operate 一个 接收 TD 时,FIFO层 控制 DMA搬运 数据 从 USB 到 DDR MAC层 简述: 作为master,控制 USB中数据 到 PHY侧数据 的 数据通路 角色: master 总线: 并行的UTMI(2.0)/并行的ULPI(2.0,相比UTMI线序少)/并行的PIPE(3.0) 驱动力: 运行时,来自于 MAC层自身 详述: 数据通过FIFO层的DMA 到 USB后,MAC层封包 ,把封包后的数据通过 并行总线 sendto PHY 把数据通过 并行总线 receivefrom PHY ,将数据包解包 , FIFO层的DMA 读取解包后的数据,DMA到 DDR PHY 简述: 作为master,控制 PHY侧数据(数字信号) 到 USB总线(模拟信号) 的数据通路 角色: master 总线: 并行的UTMI(2.0)/并行的PIPE(3.0) 和 USB总线 驱动力: 运行时,来自于 PHY层自身 详述: PHY接收到 来自 MAC层的数据后, 发送到 USB总线 PHY层接收到USB总线的 数据后,发送到 并行的UTMI(2.0)/并行的PIPE(3.0),被 MAC层接收
版本 USB controller和PHY的接口
1.0
2.0 UTMI
3.0 PIPE
S3C6410里面有两个USB PHY , 如上图圈中的内容.我们只关注 USB
// 注意: 当 0x7C10_0004 的 bit[6] 为 1 , 表示如下
// Data on the D+ and D- lines is transmitted and received through the USB1.1 Serial Interface.
// 则 USB 1.1 host 有两个端口
// 一个是XusbDP/XusbDN,一个是 XuhDP/XuhDN
在手册里面叫做 USB 1.1 Transceiver ,寄存器 在 OTG PHY 里面 "26.8 OTG PHY CONTROL REGISTERS"
里面有几种寄存器
1. 电源控制 (开 USB1.1 的 PHY 即可)
2. 时钟控制 (USB1.1 的PHY 和 USBOTG的 PHY 共用同一个时钟)
3. 复位控制 (该复位的都复位, assert 之后要 deassert)
4. 调谐控制 (默认值即可)
PHY寄存器初始化之后的值
0X7C100000:0X00000010 // 如果是 0X00000000 ,代表 把 OTG PHY 也 power up 了
0X7C100004:0X00000010
0X7C100008:0X00000000
0X7C10000C:0X00000000
0X7C100010:0X00000000
0X7C100014:0X00000008
0X7C100018:0X00000000
0X7C10001C:0X00000000
0X7C100020:0X00271B93
PHY的初始化顺序为
1. 强制要求
This bit must set before USB PHY is used.
2. 将外面接的时钟频率信息 设置 OPHYCLK , 这个时钟供给给 两个 PHY
3. 打开了 USB 2.0 的 PHY 和 USB 1.0 的 PHY, 并设置 suepend 不断电
4. 复位 两个phy
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。