MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8914|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1212

积分

金牌会员

Rank: 6Rank: 6

积分
1212
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx," X7 n9 g! R( j7 V+ A  f
input mcasp_ahclkx,
% x' J2 _  o. _$ Kinput mcasp_aclkx,$ h/ j# f. h% u- y( J; }6 E" P4 R
input axr0,) c$ f4 a' r" F2 w
# Y# P8 @2 v& _, [: W9 N- X1 ^2 ~8 q& S
output mcasp_afsr,
6 \" Z3 `3 C3 `' d$ ooutput mcasp_ahclkr,; I8 E' o5 D3 T. x
output mcasp_aclkr,
1 d1 O% r/ `3 ]3 k* C( G/ woutput axr1,
  c/ d0 {1 s2 |: e0 @
assign mcasp_afsr = mcasp_afsx;. y! `# x  Z: H7 E0 z% Y% }
assign mcasp_aclkr = mcasp_aclkx;, m/ R& |* l0 V. V/ g4 W0 F
assign mcasp_ahclkr = mcasp_ahclkx;
6 ]  e, S- Q" P1 c5 a) V$ Y8 o5 l3 hassign axr1 = axr0;
7 j4 H& v+ y' B, {% U/ ^5 T

7 S# l# n* l5 D' N/ @3 F
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
, S2 ~9 V3 P0 N
static void McASPI2SConfigure(void)
3 d- K8 ?3 U6 @, q& g9 y6 Y% s5 }{+ ~( K! P" L1 a+ R. S# F
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
6 B1 s, X2 C" @: K# [, ]2 ]McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */. `5 M3 B/ N  o; W  y9 b8 e3 `
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);# d0 b6 J( i. d
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
% M4 `+ y- o! H- q+ Y7 YMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,: n* y4 x8 {8 I. A  y
MCASP_RX_MODE_DMA);6 Q' y) ~" C2 P7 x6 M- W. U
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,7 z: X/ ^2 N8 @2 m8 I; e
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */! i: F+ c0 T5 d6 T2 s8 U
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, / V" |# f. o) ?+ C
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);$ c' l, w7 d! ?: I5 c5 f
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 7 T/ M# R: j, o$ x* d0 ?
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
5 n8 `) M6 J$ gMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);4 n1 v/ M- z) K# G
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
. k: [6 W( g6 MMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 o$ B6 I6 U$ g; {9 b/ X# Q; h
0x00, 0xFF);
/* configure the clock for transmitter */& b0 F5 N6 U  O. _7 B/ D# C4 C
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);$ o; L) y  `+ z
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
( A+ o2 i) I+ h6 KMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
2 U. ?, o6 d7 D7 B0x00, 0xFF);' c3 {& i" T) B& Y

& d' D$ i' a1 [/* Enable synchronization of RX and TX sections */
( ?7 H3 h) O+ R9 D/ i- ]8 _# ^3 UMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */2 i" K" B- i& L3 N4 W& |
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);: Q  F# R. ]' X
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*9 q% p: o. x1 H$ a- o, b
** Set the serializers, Currently only one serializer is set as4 {3 M$ E. U3 d# C) z$ \; }) ^# ^
** transmitter and one serializer as receiver.
8 s9 s: A6 e2 X: E' _*/
, l7 j7 }5 Y* V+ D7 UMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);* T6 b, l% u. p+ C! x5 h
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
# ~8 \# W8 \/ [0 ^/ y+ N+ i** Configure the McASP pins 9 T8 D5 d0 H. a3 _
** Input - Frame Sync, Clock and Serializer Rx
8 w9 V; B( x3 j) U** Output - Serializer Tx is connected to the input of the codec
. ^$ s. \% ^% I& a. t( |*/
! N! l7 C' X$ jMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
! @5 j+ U# R# d, C! jMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
7 @& Z) u8 D9 ]! o+ z8 MMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX- \# X- J( a( C' I: f5 z$ H
| MCASP_PIN_ACLKX$ e1 q8 r0 p' x5 u* v" ^8 q: C
| MCASP_PIN_AHCLKX
  p0 J8 u3 ?3 m4 \7 L7 ?| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
2 c8 ~, U( o7 {4 e, P* ]McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR " I4 K5 j' v2 I$ V5 D% Y5 O& W, O
| MCASP_TX_CLKFAIL
* x9 [) o: \8 R4 H8 c| MCASP_TX_SYNCERROR
7 O& C! F8 b' q" A9 u| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
* O; e  p9 z. m& L| MCASP_RX_CLKFAIL" H7 s) z8 k% b5 U
| MCASP_RX_SYNCERROR % ^6 w/ p; q$ X. _6 p( ?6 v  }
| MCASP_RX_OVERRUN);! C4 Q% \; `) P1 g" F/ N
}
static void I2SDataTxRxActivate(void)$ A3 U4 b7 O  L
{0 Z$ n1 @3 m, _) p7 a- V5 Y# G5 U
/* Start the clocks */
8 f" {+ D7 {+ hMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);! H  P0 ?$ L0 n/ a8 q
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
  A+ c1 p3 y* VEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
- c7 S% g+ k& X/ Y0 Q* \, _EDMA3_TRIG_MODE_EVENT);
9 O; t- V+ F: n! s$ ~EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, - G! C- B3 y: ]3 p/ u) U3 j/ @
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
5 [  `. A5 D% S1 V& }  TMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) G: w6 y/ j7 c9 I$ o
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
1 |1 D: Z, W' k! Q/ c) f% y$ cwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
4 }! @/ U# b9 m: @6 yMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
7 d! z+ ^0 f: K# cMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);" w7 q3 N$ H/ A+ j) g% N
}
  ~( Y: Z- ^  }9 y3 K
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 ?6 G& w2 j! o5 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-12-10 03:55 , Processed in 0.040806 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表