完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,我需要用C6748 EMIF 16bit宽度 从FPGA拿数据,需要40MB/S 带宽
CS用4 BANK 以下是我配置代码 void PSCInit(void) [ // 使能 GPIO 模块 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE); // 使能 EMIFA 模块 PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE); ] void EMIFAInit(void) [ // 配置 EMIFA 相关复用引脚 //AD7606PinMuxSetup(); // 配置数据总线 16bit EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4, EMIFA_DATA_BUSWITTH_16BIT); // 选择 Normal 模式 EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4, EMIFA_ASYNC_INTERFACE_NORMAL_MODE); // 禁止WAIT引脚 EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4, EMIFA_EXTENDED_WAIT_DISABLE); // 配置 W_SETUP/R_SETUP W_STROBE/R_STROBE W_HOLD/R_HOLD TA 等参数 EMIFAWaittimingConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4, EMIFA_ASYNC_WAITTIME_CONFIG(1, 2 , 1, 1, 2, 1, 0 )); ] main [ PSCInit(); EMIFAInit(); while(1) [emif_rbuffer[0] = ((short *)SOC_EMIFA_CS4_ADDR)[0]; ] ] 通过逻辑分析仪看 RD 和CS4的波形,如下: RD和CS 频率是3.2MHz, x 16bit = 6.4MB/s,不足以满足要求 我看到可以使用 EDMA的方式来对EMIF进行操作,总带宽可以到40MB/S 请问有相关的例程可以参考吗?谢谢 |
|
相关推荐
10 个讨论
|
|
uuwyfsdfsf 发表于 2019-1-24 17:08 你好, 嗯嗯,谢谢你的建议。我这个板子上 EMIF的CLK 没有引出,所以只能选用异步模式。 我想请教一下, EMIF无论是 同步还是异步,加上EDMA,总带宽也就40MB/S, 与DDR内存的带宽相比,这个带宽应该占用的比较少吧,不知你说的 50% 是怎么引起的呢? 因为在我的理解里,如果用DMA方式传输,EMIF 以最高40MB/S速率 访问总线,而总线带宽怎么也有几百MB/S吧, 假设EMIF不停的往DDR内存里传输数据,内存带宽裕量还有很多吧? |
|
|
|
|
|
|
|
1188天琪 发表于 2019-1-24 17:28 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
1188天琪 发表于 2019-1-24 17:28 没找到TI关于647x的Switched Central Resource (SCR)的数据位宽和频率的具体描述,我们以32bit位宽(DDR都是16位的,除了向外设搬移数据要用32位,其他场景32位貌似没用武之地)和CPU同频速率来估算,总带宽确实很高.能达到456M * 4 == 1824 MBps; 但是,上面的假设仅基于CPU或EDMA能以那么高的频率和数据位宽访问,实际上是达不到的,就EMIF的异步模式来说,肯定是达不到的: 你的EMIF异步最大工作在16bit的1-1-1异步时序,这个时序相对CPU来说实际上是3-3-3,而EDMA工作在1/3 CPU频率,我们统一考虑其时延为3,即EDMA一次访问最少占用3个总线时钟,而对访问你的EMIF异步FPGA来说,至少要9个时钟,这样效率就只有1/9了,在加上位宽之用了1/2,效率再折半即1/18,但是总线你是完整占用了的; 亦即:假设你将EDMA优先级设置为最高不不加流控,使用EDMA各种高技术手段去搬EMIF的异步FPGA口,最大能达到1824/18MBps,大概就是100MBps,扣除实际上你应该有读写转换等其额外的等待,我估算的是80MBps,你用到40MBps可不就把总线一半的带宽给用了嘛. 以上的理解基于在一次总线访问中,master对SCR的占用时间为整个访问时间段,没考虑TI可能用了更高级的总线技术,比如可以请求和数据回复完全是分开并异步的.好像C66的TeraNet上就用到了这样的技术,所以C66核的外部存储空间管理上除了EMC还多了个XMC,但是在某篇介绍总线结构的文章上看到有提CFG的总线任然是32位的简单总线. |
|
|
|
|
|
|
|
uuwyfsdfsf 发表于 2019-1-24 17:58 十分感谢你的回答,说的十分详细具体。 考虑性能带宽的占用,可能用UPP会好很多,或者使用更高级的DSP。 |
|
|
|
|
|
|
|
uuwyfsdfsf 发表于 2019-1-24 17:58 SCR不是点对点的总线。只是slave端口不冲突,可以同时并发。 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
uuwyfsdfsf 发表于 2019-1-24 17:58 Shine Zhang给出的测试里面EDMA搬移DDR能达到EDMA理论带宽的90%,是因为DDR2的实际有效带宽可以达到那么大,我查了下EVM上的DDR是支持DDR2 - 800的,意味着其在800MTps的速率下,理论速率可以达到800M * 16/8 == 1600MBps, 实际测试使用的时候应该是降频了的. 目测使用的133*2M,带宽能达到266 * 16/2 == 532,刚好和EDMA的最高速率匹配. |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2783浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:25 , Processed in 1.054082 second(s), Total 81, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1228