完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有可能动态地改变状态机的总线宽度在16位和8位之间吗?我正在禁用状态机,改变CYFXGPIFRIGHEVE的寄存器值以获得16位或8位数据总线,然后重新装入状态机,但这对我来说不行,是正确的方法还是有其他方法??
以上来自于百度翻译 以下为原文 Is it possible to change the bus width of the state machine between 16bit and 8bit dynamically !! Currenltly i am disabling the state machine, changing the register values of CyFxGpifRegValue to get 16 or 8 bit data bus, then i reload the state machine , but this is not working for me , is it the correct method or is there any other method ?? |
|
相关推荐
4个回答
|
|
你好,
你的代码在什么时候做出这些改变? 我刚刚使用了一个供应商命令,并以这种方式处理了供应商命令: CYU3PUBSESETUP(); CYU3PGPIFIDSABLE(1); CYFXGPIFEGRAVE〔1〕=0x00 00 00 03; ReStAt= CYU3PGPIFLAMP(&CyFxGpifConfig); 如果(RestStand)!= CYU-U3PY成功 CYU3pDebug打印(1) rn gpFILFILE错误%xrn“,RESSTATE); ReStase= CYU3PGPIFSMSTART(0,0); 如果(RestStand)!= 0) CYU3pDebug打印(1) rn gpIFSMSTART失败的错误%xrn“,RESSTATE); 被盗=1; 它很好用。数据宽度从16位变为8位,IN数据传输按预期工作。 当做 沙肖克 以上来自于百度翻译 以下为原文 Hi, At what point in your code are you making these changes? I just tried this using a vendor command and handled the vendor command this way: CyU3PU***AckSetup(); CyU3PGpifDisable(1); CyFxGpifRegValue[1] = 0x00000003; retstatus = CyU3PGpifLoad(&CyFxGpifConfig); if(retstatus != CY_U3P_SUCCESS) CyU3PDebugPrint(1,"rn gpifload failed error %x rn",retstatus); retstatus = CyU3PGpifSMStart(0,0); if(retstatus != 0) CyU3PDebugPrint(1,"rn gpifsmstart failed error %x rn",retstatus); isHandled = 1; It works fine. The data width changed from 16 to 8 bits and the in data transfers work as expected. Regards Shashank |
|
|
|
是的,我也是这样做的。
在一种情况下,我从16位切换到8位,所以我改变寄存器。 CyfxgPIFReValue[0]=0x00 000;67 to to & gt;CyfxgpFiReValue[ 1 ]=0x000 00 03; CyfxgpIFReValue[39 ]为8位/*CyuU3pIPIbgpIFIFDATAAQuiTuxLime*的DMA通道大小的一半 这是推荐的吗?? 在我再次加载状态机之后,对于一个DMA缓冲区大小,数据是根据16位配置来的,只有在数据是根据8位状态机来。 这是否意味着状态机需要花费一些时间到达8位配置?? 如果是,为什么对于一个DMA缓冲区大小这个问题是存在的?? 还有其他方法来做这个手术吗?? 谢谢 破布 以上来自于百度翻译 以下为原文 Yes i too do it in the same way. In one case i switch from 16 bit to 8 bit , so i change the registers CyFxGpifRegValue[1]=0x00000067; to -> CyFxGpifRegValue[1]=0x00000003; /* CY_U3P_PIB_GPIF_BUS_CONFIG */ CyFxGpifRegValue[39] to half of the dma channel size for 8 bit /* CY_U3P_PIB_GPIF_DATA_COUNT_LIMIT */ Is this recommended ?? And after i load the state machine again , for one dma buffer size , the data is coming according to the 16bit configuration , only after that the data is coming according to the 8bit state machine.. Does this mean the state machine takes some time to come to the 8 bit configuration ?? If so why for one dma buffer size this issue is present ?? Is there any other way to do this operation ?? Thanks Rags |
|
|
|
你好,
不确定为什么配置更改后的第一个缓冲区仍然保留前一个配置。 但是,尝试在Cuy3pPgIfLoad()中调用CuY3PDMACHANNELSIETE()和CYU3PDMACHANNETSEXFER(),然后在供应商请求中调用。这应该奏效。 当做 沙肖克 以上来自于百度翻译 以下为原文 Hi, Not sure why exactly the first buffer after config change is still retaining the previous config. However, try including the CyU3PDmaChannelReset() and CyU3PDmaChannelSetXfer() calls before the CyU3PGpifLoad() call in the vendor request. This should work. Regards Shashank |
|
|
|
谢谢普拉格,
我尝试过,正如你所说的,它使用CuY3PDMACHANNELSETE()和CYU3PDMACHANEL SETXFER()调用,但我仍然不明白为什么这是必要的? 破布 以上来自于百度翻译 以下为原文 Thanks PRAG, I tried as you said and its working with the CyU3PDmaChannelReset() and CyU3PDmaChannelSetXfer() calls , but i still dont understand why this was essential ? Rags |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2106 浏览 1 评论
1853 浏览 1 评论
3671 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1788 浏览 6 评论
1536 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
572浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
424浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
438浏览 2评论
386浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
916浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 10:47 , Processed in 1.039581 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号