Mar
19
研究了一下Xapp925和EPC Core。一些笔记和问题。
【笔记】
1. EPC = External Peripheral Controller,经常用于连接外部的控制芯片,比如Xapp925中展示的Cypress Cy7c67300和Xapp924中展示的 SMSC LAN 91C111 以太网控制器。
2. Xapp925花了很大篇幅讲了EPC Core的参数怎么设置以及为什么这样设置。
一个让我有点Confusing的选项是multiplexed and non-multiplexed address and data buses是什么意思。参考的OPB_EPC Datasheet后发现原来是说地址总线和数据总线是否共享一条总线。
3. 运行ready_for_download的bit和elf文件,设计正常运行
4. 查看C代码,发现整个设计的流程为
- 设置一些初始状态,比如Cache和Uart参数等
- Reset Cy7c67300
- 通过UsbWriteBin()函数将Cy7c67300的Firmware写入
- 通过UsbSoftRest()函数进行soft reset
- 等待MailBox中的COMM_ACK信号
- 通过UsbSetPc()函数设置Cy7c67300的内部PC地址,并发送COMM_JUMP2CODE命令到MailBox
- 此时可以将USB键盘插入ML403
- 通过不断读取MailBox信息查看是否有数据从USB传来,并将传来的信息直接转换成ASCII字符输出到串口
【问题】
1. Cy7c67300的Datasheet和AN6010中说明一共有四种运行模式,他们通过在上电后3ms检测GPIO[31:30]的状态来选择到底进入哪种状态。
- HPI mode, [00], a 16 bit parallel interface with up to 16 MB transfer rate
- HSS mode, [01], a serial interface with up to 2M baud transfer rate
- SPI mode, [10], a serial interface with up to 2 Mb/s transfer rate
- Standalone, [11], there is no external processor connected to EZ-Host. Instead, EZ-Host’s own internal 16-bit CPU is the main processor and firmware is typically downloaded from an EEPROM. Optionally, firmware may also be downloaded via USB.
但是根据ML403的Schematic,GPIO[31:30](Pin39和Pin40)是通过上拉电阻接到IIC EEPROM的。那么,67300是怎么进入HPI Mode的呢?
我的猜测是HPI MODE就类似FPGA的JTAG MODE,即使在选择为其他模式的时候,JTAG MODE仍然是可以用的。不过这只是猜测而已,Datasheet上从头看到尾都没有找到类似的说明。
- 根据Knowledge Base 33515,似乎并没有这样的功能,还是必须reset后检查GPIO[31:30]。所以以上的猜测应该不成了
- 根据Knowledge Base 33509,可以通过HPI模式下载standalone的Firmware。所以也有可能是这种情况。
- 查看了ML403 USB Demostration Design,感觉可能启动后就是在Standalone模式,然后通过hpi_init()允许进入HPI模式。但这显然又和Knowledge Base 33515相违背,因为必须reset后才能转换模式。
很多猜测,但是还是没有找到证据。有高人路过的话请帮我指点一下。
【参考资料】
OTG-HOST BIOS User Manual - http://www.cypress.com/?docID=13304
ML403 USB Demostration Design - http://www.xilinx.com/products/boards/ml401/files/ml40x_usb.zip
【笔记】
1. EPC = External Peripheral Controller,经常用于连接外部的控制芯片,比如Xapp925中展示的Cypress Cy7c67300和Xapp924中展示的 SMSC LAN 91C111 以太网控制器。
2. Xapp925花了很大篇幅讲了EPC Core的参数怎么设置以及为什么这样设置。
一个让我有点Confusing的选项是multiplexed and non-multiplexed address and data buses是什么意思。参考的OPB_EPC Datasheet后发现原来是说地址总线和数据总线是否共享一条总线。
3. 运行ready_for_download的bit和elf文件,设计正常运行
4. 查看C代码,发现整个设计的流程为
- 设置一些初始状态,比如Cache和Uart参数等
- Reset Cy7c67300
- 通过UsbWriteBin()函数将Cy7c67300的Firmware写入
- 通过UsbSoftRest()函数进行soft reset
- 等待MailBox中的COMM_ACK信号
- 通过UsbSetPc()函数设置Cy7c67300的内部PC地址,并发送COMM_JUMP2CODE命令到MailBox
- 此时可以将USB键盘插入ML403
- 通过不断读取MailBox信息查看是否有数据从USB传来,并将传来的信息直接转换成ASCII字符输出到串口
【问题】
1. Cy7c67300的Datasheet和AN6010中说明一共有四种运行模式,他们通过在上电后3ms检测GPIO[31:30]的状态来选择到底进入哪种状态。
- HPI mode, [00], a 16 bit parallel interface with up to 16 MB transfer rate
- HSS mode, [01], a serial interface with up to 2M baud transfer rate
- SPI mode, [10], a serial interface with up to 2 Mb/s transfer rate
- Standalone, [11], there is no external processor connected to EZ-Host. Instead, EZ-Host’s own internal 16-bit CPU is the main processor and firmware is typically downloaded from an EEPROM. Optionally, firmware may also be downloaded via USB.
但是根据ML403的Schematic,GPIO[31:30](Pin39和Pin40)是通过上拉电阻接到IIC EEPROM的。那么,67300是怎么进入HPI Mode的呢?
我的猜测是HPI MODE就类似FPGA的JTAG MODE,即使在选择为其他模式的时候,JTAG MODE仍然是可以用的。不过这只是猜测而已,Datasheet上从头看到尾都没有找到类似的说明。
- 根据Knowledge Base 33515,似乎并没有这样的功能,还是必须reset后检查GPIO[31:30]。所以以上的猜测应该不成了
- 根据Knowledge Base 33509,可以通过HPI模式下载standalone的Firmware。所以也有可能是这种情况。
- 查看了ML403 USB Demostration Design,感觉可能启动后就是在Standalone模式,然后通过hpi_init()允许进入HPI模式。但这显然又和Knowledge Base 33515相违背,因为必须reset后才能转换模式。
很多猜测,但是还是没有找到证据。有高人路过的话请帮我指点一下。
【参考资料】
OTG-HOST BIOS User Manual - http://www.cypress.com/?docID=13304
ML403 USB Demostration Design - http://www.xilinx.com/products/boards/ml401/files/ml40x_usb.zip
YY
2009/06/14 12:40
把IIC EEPROMF SCL SDA 接地就可以进入HPI模式qq215991405
分页: 1/1
1
1
在EDK中用scanf()函数
XMD的Watch功能




