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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8967|回复: 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,' [& s2 [2 p( a! \* x6 M. {; }
input mcasp_ahclkx,
. n- M8 @2 D& O% N; yinput mcasp_aclkx,
0 ]  Z4 [& q- D/ |9 y0 i. Ainput axr0,1 B" M9 E/ L. I6 B3 h' H5 W
0 E! u/ v! d1 v+ L1 `8 K) x* H% \
output mcasp_afsr,, g. [' `9 C4 X* j& H; B; E
output mcasp_ahclkr,' P' u* Z8 E" x0 E: z% ^
output mcasp_aclkr,+ b- e0 z. y' o5 g
output axr1,1 u) c, r- v7 q4 |- U! z2 y6 D
assign mcasp_afsr = mcasp_afsx;
4 d6 W9 z1 _8 ?% h; p/ t" M8 n7 @assign mcasp_aclkr = mcasp_aclkx;0 ~( z5 {# F2 ?  c
assign mcasp_ahclkr = mcasp_ahclkx;) K$ P- x1 M: O1 Q5 o
assign axr1 = axr0;

% ^1 P5 W/ u9 Q6 a' W* \; d
* t% Z) B% O- m' z& w( {
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
2 j% a: O* v: L* D
static void McASPI2SConfigure(void)
4 P8 v0 Z2 g/ E% o4 R' R- ~3 P4 C{
' O8 C6 z* H( B( P1 T2 b: f# ?McASPRxReset(SOC_MCASP_0_CTRL_REGS);
& H2 c8 }! W! {  Y! G* iMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
) I8 j( t4 v: B3 {McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
2 p* @2 Y0 ~1 [3 OMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */5 C. u# p) ?9 ^9 @
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
8 K4 U! ~# h$ LMCASP_RX_MODE_DMA);
* i, S; n, j% DMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
, |+ o$ C% |! I! B  a; xMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */" p( F! U  D- o# A) n% w  S( f
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, " |3 c6 \$ B! q% V/ q
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
1 p! C8 J5 w! K  U: N$ o: X9 i; w  l7 _McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
, U4 K/ t1 e9 y: BMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
6 `# ?+ d/ O# W. ?$ ~; d2 e8 {/ t$ N  ~McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);" {' t( `: |  B& t' m/ z% B& ~
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
% V1 F1 X: z0 ^2 C# W/ Q, a2 p9 P- JMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
! V+ |. i  z# T+ ?, h. V0x00, 0xFF);
/* configure the clock for transmitter */0 S+ f& L; Y# b" ^4 ]. M' X& ]
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
$ l+ @8 w! o- [5 f" ?, AMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
% G/ e; u( }. {  y: {, JMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
$ d4 i' f+ |* F( [1 H  K5 A0x00, 0xFF);9 S+ ^5 E; Y, x! H# i

. }& x9 s" h3 R: \8 ^7 F/* Enable synchronization of RX and TX sections */ 6 l$ V1 A3 b% k( h* B% e) y
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */) U* g  ^0 N: `& J9 P5 x# w" E
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
5 R. d3 |# D* |/ e- O( BMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*/ p; p/ Z( c$ y; e6 h4 E
** Set the serializers, Currently only one serializer is set as% b# p0 [* k' m! D. I$ P
** transmitter and one serializer as receiver.
9 g: o9 [) C. R0 o+ x/ L$ A*/
& I8 a& T" P$ F4 Q9 q9 EMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
- J4 m- c/ I+ c/ xMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*6 p0 T) G8 y- P1 ^8 ~) ~
** Configure the McASP pins
& F9 }! ~2 ?) |4 H** Input - Frame Sync, Clock and Serializer Rx
$ Z6 x! X6 O: \* m' p0 |** Output - Serializer Tx is connected to the input of the codec % e1 d8 X2 c. m& u
*/
, m: F4 e4 Y1 Q1 S( I+ Q" {McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
$ J) G/ s1 s4 S0 YMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
) V) X* w2 O2 y- ^McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
; A! F% ~$ ~+ E& \- k% F2 J| MCASP_PIN_ACLKX( C  q0 }5 @2 u' Q
| MCASP_PIN_AHCLKX  E6 V, i) W7 k1 b" n* ~# E% d
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */- V( f! }' Y8 z- w2 y4 x: ^5 u
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
' F: S9 M0 G' O6 e| MCASP_TX_CLKFAIL + A5 u1 n7 v; N; X" _
| MCASP_TX_SYNCERROR+ u7 W6 C! U4 D9 Z' T; _; N7 v
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 2 z" _8 i; i* G5 W) _( U5 G. T
| MCASP_RX_CLKFAIL
) E, o/ |/ q) }1 i| MCASP_RX_SYNCERROR 0 \; T. E" x  |2 P! T
| MCASP_RX_OVERRUN);
9 _* s- r$ v. z2 f}
static void I2SDataTxRxActivate(void)
& W3 m; w) [$ g" E8 R/ k. r{( H, T/ F6 P" B9 r1 t- q
/* Start the clocks */$ ?1 s) a7 t5 W7 W
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
$ ?1 c; w% ]9 G) ^McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */4 K7 f+ g1 n3 P$ {
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
4 L' O8 Q: U4 e5 P# |+ tEDMA3_TRIG_MODE_EVENT);  m. S- z) y/ ?  Z( L
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 9 r9 B9 Z. r6 R4 I9 I
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */: U  h( @) w$ O+ g( w2 S
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);! b& }, F$ E: c4 [2 Z8 R
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */! @2 x* z) B6 a  b# W3 @  }
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
) B' y( s! `8 Y6 b. R4 q; yMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);" A8 U% j6 b; r% ?- K% G
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
7 T, S( ^, M  E( V}

3 J+ H, `' h5 v) n3 j: a8 b# O% j9 Y
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

: P5 ~9 ?/ m9 R0 s# |" A( ?; v; u  S- m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 02:47 , Processed in 0.045529 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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