完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
相关推荐
14 个讨论
|
|
|
配置如下:
UPPCR = 0x00000010; //复位,SWRST sw_wait(400); UPPCR = 0; //复位结束 UPCTL = 0x02020006; //16位数据,CHA收,CHB发 UPICR = 0x00300010; //0 UPIVR = 0xffff0000; UPTCR = 0 ; //64byte DMA bursts read / write UPDLB = 0 ; UPIEC = 0XFFFFFFFF ; //关掉所有中断 UPPCR = 0x0000000A; // 0x00000008;使能UPP 按理说,配置好,我先发送给FPGA,开始时会产生START信号,ENABLE信号开始是低,等我发送数据时候就会变高,但是我检测这两根线时,两根线电平一直为高根本没变化。。pinmux也是按要求配置的,谁能告诉我真相 |
|
|
|
|
|
|
|
www1222 发表于 2018-7-31 10:56 不是很理解你的问题,"现在的情况是DLB能正常工作","测试DLB模式会出现问题",你的意思是接了FPGA, DLB模式就不正常了?照理说DLB模式跟FPGA没关系的,它只是DSP内部自环。 |
|
|
|
|
|
|
|
vuywsdfwf 发表于 2018-7-31 11:02 在FPGA里面没烧写测试程序时,DLB模式下收的跟发的数据完全一样,当我把测试程序烧写到FPGA里面时,DLB模式下就会出现几个数据被收两次,其他的数据是正常的(也就是收发数据大部分是一样就极个别数据被收了两次,貌似每次都是第2个字和第64个字出现收两次的情况),我知道是内部循环,但事实就出现了这种问题 |
|
|
|
|
|
|
|
|
你好,我也是做FPGA与omapl138 upp通信,只是用upp接收fpga采样数据,为什么每次只能接收到一包数据,求解惑,程序如下:
#include #include "types.h" #include "evmomapl138lin.h" #include "evmomapl138_uPP.h" #include "evmomapl138_i2c.h" #include "evmomapl138_timer.h" #include "evmomapl138_i2c_gpio.h" #include "evmomapl138_gpio.h" #include "evmomapl138_emac.h" #include "uartStdio.h" #include "uart.h" #include "psc.h" #include "hw_psc_OMAPL138.h" #include "soc_OMAPL138.h" #include "interrupt.h" /* * hello.c */ //uint16_t recBuf[1539] = [0]; #pragma DATA_SECTION(FPGA_ADC_DATA,".FPGA_ADC_upp"); #pragma DATA_ALIGN(FPGA_ADC_DATA, 8); volatile uint16_t FPGA_ADC_DATA[5][1539] = [0]; //配置uPP void uPP_config(void); void send_GDB_HEX (); void main(void) [ #if NO_GEL EVMOMAPL138_init(); EVMOMAPL138_initRAM(); #endif uint16_t count = 0; UPXS2_t * UPIS2r = (UPXS2_t *)&(UPP->UPIS2);//DMA I通道状态 //UPXS2_t * UPQS2r = (UPXS2_t *)&(UPP->UPQS2);//DMA Q通道状态 //UPISR_t * UPISR = (UPISR_t *)&(UPP->UPISR);//Up中断原始状态寄存器 1 EOLI线条结束标志、 EOWI窗口结束标志 USTIMER_init(); //USTIMER_delay(1000000); //USTIMER_set(1000000); uPP_config(); //我将upp的dma描述寄存器每次重写,为什么fpga连续发数据DSP只得到一包数据FPGA_ADC_DATA[0], //此时暂停运行发现程序停止在while(UPIS2r->bits.PEND == 1)[];貌似下一包数据的存储地址没有被写入一直在等待,还有UPIS2r->bits.PEND位何时便为零?是否是在第一包数据到来时,dma开始传输,UPIS2r->bits.PEND == 0;同时第二包数据的dma地址被写入寄存器,然后.pend=1,等待第二包数据传输,然后依次类推呢? while(1) [ UPP->UPID0 = (uint32_t)&FPGA_ADC_DATA[count]; //add next DMA transfer//数据存储在FPGA_ADC_DATA中 UPP->UPID1 = 0x00010C06; //1 lines 3078 bytes per line UPP->UPID2 = 0x00000C06; //no offset between lines ; while(UPIS2r->bits.PEND == 1)[]; printf("tn count=%dtn",count); count++; if(count==5) [ count=0; ] printf("tn Reach the end of window tn"); ] ] void uPP_config() [ upp_config_t config; //UPCTL config.UPCTL.value=0; //config.UPCTL.bits.IWB = 1; //16 bit interface //config.UPCTL.bits.DPWB = 2; //10 bit data //config.UPCTL.bits.DPFA = 0; //对齐方式 config.UPCTL.bits.DPWA = 0; //位宽 config.UPCTL.bits.IWA = 1; //0 8bit 1 16bit config.UPCTL.bits.DRA = 0; //通道A数据率 0 单 1双 config.UPCTL.bits.SDRTXIL = 0; //单数据率下的DMA乒乓模式 1 只有A通道乒乓 config.UPCTL.bits.DDRDEMUX = 0; config.UPCTL.bits.CHN = 0; //1 dual channel mode 0 signal channel mode config.UPCTL.bits.MODE = 0; //0 all recv, 1 all xmit, 2 a recv b xmit, 3 a xmit b recv //Channel A ADC, Channel B DAC //UPICR config.UPICR.value=0; config.UPICR.bits.CLKDIVA = 0;//15; //Set DAC sampling freqency at 75/16 Mhz (4.6875MHz) config.UPICR.bits.STARTA =1; config.UPICR.bits.ENAA =1; //config.UPICR.bits.WAITA =1; //UPIVR config.UPIVR.value=0; //config.UPIVR.bits.VALA = 0x1000; //config.UPIVR.bits.VALB = 0x0000; //UPTCR config.UPTCR.value=0; //发送模式数据量门限、DMA触发门限设置all values 0 for 64byte DMA bursts read / write //UPDLB config.UPDLB.value=0; //no loopback //UPIES config.UPIES.value=0; //dont enable any interrupts //UPPCR config.UPPCR.value = 0; config.UPPCR.bits.EN = 1; //enable uPP config.UPPCR.bits.RTEMU = 1; //allow emulator use config.UPPCR.bits.SOFT = 1; //allow emulation UPP_init(&config); ] //发串口数据,以16进制发送 void send_GDB_HEX () [ ] |
|
|
|
|
|
|
|
xuanxuan19 发表于 2018-7-31 12:12 至于上面问题,你还需要确认是不是其实5包数据都接收完了,因为while中没有退出处理,5包后又会回到count=1重新开始。 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
584 浏览 0 评论
1641 浏览 0 评论
2080 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1533 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1372 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1782浏览 29评论
2810浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1742浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1654浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1672浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 04:32 , Processed in 1.295158 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3620