完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
你好
我现在调试的一块OMAP-L138的板子的功能是通过UPP上传外部ADC的数据到DDR中,然后利用DSP处理这些数据。 整个UPP模块的初始化及配置都在DSP程序中完成,首先我通过仿真器单独调试DSP程序,发现能够正常的通过UPP将数据写到DDR的某块区域,然后DSP数据处理一切正常。随后不使用仿真器,把DSP程序加上DSPLINK功能后通过在ARM端跑的WINCE系统载入到内存中运行,然后发现很多时候DDR的那块区域写入的都是0,通过寄存器查看写入地址的变化,发现地址没错,确实到了写入的最后一个数据的地址上,但是就是写入的那块地址空间发现大多数都是0(正常不是这样). 我的UPP模块没有使用upp_START和upp_WAIT,ENABLE信号由外部FPGA控制,只有在写入数据的时刻才打开。不使用UPP中断功能。 所以,有几个问题想问一下: 1,为什么同样的DSP程序通过仿真器可以运行,但是系统单独调用的时候UPP往指定地址写入的数据都是0?我的程序中DSPLINK功能没有问题,通过实验已经验证过。 2,是不是DSP和ARM都对DDR操作导致冲突?也就是说DSP指定UPP把数据写到DDR的某块区域上后,ARM会不会在这块区域操作导致将其改写?因为我单独通过仿真器调试DSP程序没有问题。 3,由于我是要多次重复的采数据,为了保证下次写入的数据不是沿着上次的地址往后写,我每次重新采集数据之前都把UPP模块重新配置一下(从复位的步骤开始到每个寄存器的配置),但是感觉很繁琐,有没有更好的办法使数据重新从我设定的地址开始写数?因为一条曲线的数据我要重复采集上万次,所以每次采集前这么操作感觉很浪费时间。 谢谢! |
|
相关推荐
16个回答
|
|
问题已得到解决
|
|
|
|
您好,我把UPP设置为接受模式,由FPGA通过UPP向omapl38发送数据,我也需要重复发送,但是又不想每次都重新配置UPP,请问您是怎么解决重复采集数据的问题的?非常感谢您能抽时间指导一下。 |
|
|
|
60user141 发表于 2018-6-21 07:02 我仍然是采用重复配置的方式进行的 |
|
|
|
60user141 发表于 2018-6-21 07:02 请问一下,一次DMA为什么最多只能传输64k的数据啊?我最近也在用UPP,但是我感觉一次能传输的数据能超过到1M呢,但是芯片里的内存才256K加上DDR也就512k我不知道这些数都存到哪去了,仿真时在寄存器里也能看到接收到的数,这是为什么呢?你能指点指点我么? |
|
|
|
yuepeng zhang 您好!我最近改写NDK中helloworld 例子,用来实现DSP向PC传送数据,而数据由FPGA自通过UPP传送到DSP,我建立了两个工程,一个用来实现UPP接收FPGA的数据,一个用来实 现DSP和PC之间的通信,现在两个工程单独仿真都能达到目标,我想把两个工程合并成一块,于是我把其中一个工程中的相关文件导入到另外一个工程中,并且 添加了相应的库文件路径,但是在编译时出现了如下的错误: undefined first referenced symbol in file --------- ---------------- _NIMUDeviceTable C:tindk_2_22_03_20packagestindkstacklibstk6_nat_ppp_pppoe.a674 error #10234-D: unresolved symbols remain error #10010: errors encountered during linking; "upp_and_ndk_test.out" not built >> Compilation failure gmake: *** [upp_and_ndk_test.out] Error 1 gmake: Target `all' not remade because of errors. **** Build Finished **** 我不知道我这想法行不行,是否还有更好的方案可以实现?请大神您帮我指点指点迷津啊.谢谢 |
|
|
|
你好,我现在也遇到了与你类似的问题,请问你是怎么解决该问题的?
我现在调试的是PC电脑通过网口连接OMAP_L138,OMAP_L138通过uPP连接FPGA。DSP从PC电脑上接收数据,然后通过uPP接口将数据发送给FPGA。从DSP的内存上看,uPP发送缓存中的数据确实是已经修改了,但是FPGA总是接收不到正确的数据(网口程序运行之前该缓存中有什么数据,FPGA就接收到什么数据),但是如果单独运行uPP发送程序的话,FPGA接收完全正常。 谢谢! |
|
|
|
低调青芒 发表于 2018-6-21 08:03 开两个线程即两个task,一个用来控制DSP和PC的数据传输,一个用来是实现UPP和FPGA的通信,用信号量实现task之间的协调工作 |
|
|
|
求联系大神!QQ610773424 |
|
|
|
上次问广州创龙的FAE,好像他们做好了OMAPL138的UPP驱动,使用UPP和FPGA连接,FPGA板卡上面有高速的AD和DA,可以加他们FAE的QQ:2532609929,去问问。 |
|
|
|
低调青芒 发表于 2018-6-21 08:03 大神,你好,我想问下,你们PC通过网口给omapl138发送数据,是怎么做的?我的omapl138发数据给PC,pc能正常接收,但pc给omap发,omapl只能接收一部分,请问你们是怎么弄得???谢谢 |
|
|
|
adolclistin 发表于 2018-6-21 08:44 你可以检查一下你们的PHY芯片是不是工作在全双工模式下。 |
|
|
|
|
|
|
|
低调青芒 发表于 2018-6-21 08:03 大神,你好。能不能把你们的dsp的发送模式下的例程给我一份,因为我的数据总是出错,但又找不到原因,谢谢 |
|
|
|
你好,请问你。我将upp配置成接收模式,在shareRAM中开辟一块内存 #pragma DATA_SECTION(FPGA_ADC_DATA,".FPGA_ADC_upp"); volatile uint16_t FPGA_ADC_DATA[5][1539] = [0]; #pragma DATA_ALIGN(FPGA_ADC_DATA, 8) 一包数据是1539 个16位数据;并且将upp的dma配置如下;为什么只能收到第一包数据,DMA不是有两个状态,(活动状态、等待排序状态)吗,收到第一包数据后,程序就一直停在while(UPISR->bits.EOWI==0)[];为什么? while(1) [ UPP->UPID0 = (uint32_t)&FPGA_ADC_DATA[count]; //add next DMA transfer UPP->UPID1 = 0x00010C06; //1 lines 3078 bytes per line ; UPP->UPID2 = 0x00000C06; //no offset between lines ; while(UPIS2r->bits.PEND == 1)[]; count++; if(count==5) [count=0;] while(UPISR->bits.EOWI==0)[]; ] ] |
|
|
|
|
|
|
|
xuanxuan19 发表于 2018-6-21 09:39 你好shaojie qu, 请问你的问题解决了吗? |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
690 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
604 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1059 浏览 1 评论
749 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
527 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
170浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
132浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
129浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
125浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
60浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 22:00 , Processed in 1.108908 second(s), Total 110, Slave 93 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号