TI中文支持网
TI专业的中文技术问题搜集分享网站

关于am335x上mcasp的burst模式使用

我的板子是BeagleBone Black, 系统是linux-3.2.0-psp04.06.00.11。

现在想利用这块板卡的mcasp0与另外一块dsp板卡的mcbsp接口进行数据(普通数据,不是音频数据)收发通信。

我主要是想利用mcasp的burst模式来实现这个功能,先把我的配置描述下:

引脚复用模块:

/**
* Module pin mux for mcasp0
*/
static struct pinmux_config fe_board_pin_mux[] = {
/*transmission signal*/
{"mcasp0_aclkx.mcasp0_aclkx", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_ahclkx.mcasp0_ahclkx", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_fsx.mcasp0_fsx", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_axr0.mcasp0_axr0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
/*Reception signal*/
{"mcasp0_ahclkr.mcasp0_ahclkr", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_aclkr.mcasp0_aclkr", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_fsr.mcasp0_fsr", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"lcd_data14.mcasp0_axr1", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
/*Handshake and reset gpio signal*/
{"gpmc_a1.gpio1_17", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN}, //reset
{"gpmc_ben1.gpio1_28", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN}, //handshake
{"gpmc_csn0.gpio1_29", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN}, //test gpio
{NULL, 0},
};

目前遇到了些问题:

用示波器能看到XCLK和FSX能同步,但看不到数据信号!

我把所有相关的寄存器dump出来了, 能帮我看看问题出在哪里吗?

————-REG DUMP——————————–
0x0 REV:0x44307b02
0x04 PWRIDLESYS CONFIG:0x00000002
0x10 PFUNC:0x00000000
0x14 PDIR:0x14000001
0x18 PDOUT:0x00000000
0x1C PDIN:0x14000000
0x20 PDCLR:0x00000000
0x44 GBLCTL:0x00001f1f
0x48 AMUTE:0x00000000
0x4C DLBCTL:0x00000000
0x50 DITCTL:0x00000000
0x60 RGBLCTL:0x00001f1f
0x64 RMASK:0xffffffff
0x68 RFMT:0x00018078
0x6C AFSRCTL:0x00000011
0x70 ACLKRCTL:0x000000a0
0x74 AHCLKRCTL:0x00008000
0x78 RTDM:0x00000001
0x7C RINTCTL:0x00000000
0x80 RSTAT:0x00000104
0x84 RSLOT:0x00000000
0x88 RCLKCHK:0x00000000
0x8C REVTCTL:0x00000000
0xA0 XGBLCTL:0x00001f1f
0xA4 XMASK:0xffffffff
0xA8 XFMT:0x00018078
0xAC AFSXCTL:0x00000003
0xB0 ACLKXCTL:0x000000e1
0xB4 AHCLKXCTL:0x00008003
0xB8 XTDM:0x00000001
0xBC XINTCTL:0x00000000
0xC0 XSTAT:0x00000122
0xC4 XSLOT:0x00000000
0xC8 XCLKCHK:0x00ff0008
0xC8 XEVTCTL:0x00000000
0x180 SRCTL0:0x00000011
0x200 XBUF0:0x00000000
0x280 RBUF0:0x00000000
———–END–REG DUMP——————————

谢谢

lau:

该问题已解决,是R/XMASK与R/XFMT不匹配导致的!

现在遇到另外一个问题?

mcasp在burst工作模式下,发送的数据和接收的数据都是默认32bits的嘛?即使我已经在R/XFMT中设置了16bits/slot

从波形上至少看到了32bits的数据

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 关于am335x上mcasp的burst模式使用
分享到: 更多 (0)