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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1211

积分

金牌会员

Rank: 6Rank: 6

积分
1211
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,# T0 q3 y$ R" T* r& H( s3 T3 r
input mcasp_ahclkx,
- O% x- P% m. j3 ^" t6 {4 Zinput mcasp_aclkx,' q6 ?7 V+ e4 f# @: K
input axr0,
! Y( w6 @# N5 s! Y
/ h) e/ V5 A9 Ioutput mcasp_afsr,
0 ]1 N. j! C* O. H0 e: a5 soutput mcasp_ahclkr,
9 Q1 u5 N0 j2 l5 }& V2 woutput mcasp_aclkr,
  P2 _; e  X7 v4 p% _4 Xoutput axr1,4 `) r! m+ R2 N
assign mcasp_afsr = mcasp_afsx;/ X8 S. G! l, N; }
assign mcasp_aclkr = mcasp_aclkx;
- O  _) P3 \. u( \6 @% yassign mcasp_ahclkr = mcasp_ahclkx;
, Q  a0 @9 `4 Z; x' Bassign axr1 = axr0;

! f* _; i6 \- S$ S( P. n
, ]* L4 |6 Z$ d; ?" m
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

' i- U5 F$ a* z5 q9 e# [! c
static void McASPI2SConfigure(void)2 J6 X3 h9 q" ]3 d+ I% u+ Q8 W
{
' C3 C( _6 {* K9 k. ]* M; @McASPRxReset(SOC_MCASP_0_CTRL_REGS);
& C5 u) Q8 Z" v5 YMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */5 a; h4 p5 S: Q$ f- _9 w  C. g
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
5 R: J; J6 [6 l  hMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */- ~& Z* S0 b9 Y; p9 o( u4 X7 t% B
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,$ i/ O3 R( A$ |7 I2 J) p, S/ |+ r3 |
MCASP_RX_MODE_DMA);! k9 I5 w. u# X0 _8 L7 r+ B4 k  I
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( o" I7 ]) r# |MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */$ S% Y! _6 e' A- H. @- V: Q
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
! r, W9 z+ ~5 R7 t" l1 RMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
) E( u, [/ j- V, G! E; ~+ EMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
2 y' P/ }( |6 C5 z/ R" {MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */; O7 @3 D/ U( v1 ^$ q! s
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);0 R  }! r5 B, p& N, S* i6 _6 N
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 1 r! n* l0 K* x  b( `" A
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,' T" f* W  A: N' P6 v: x
0x00, 0xFF);
/* configure the clock for transmitter */! N' w  Z- Q5 ]! [1 E* W+ \' H( ~8 l
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);+ s$ b1 I7 u  A; }6 p( A$ Y7 m- S
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); # B! h9 Q- e+ C2 ?3 g+ }3 ~) l% w
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
3 Q% b* B1 w4 a, D: c$ }- _0x00, 0xFF);
4 ?, f: D6 n; O4 }7 ~2 Y" Q! `" n1 t% S2 S( \# }( b' O6 V0 l3 [7 _
/* Enable synchronization of RX and TX sections */ : E4 A% ]5 T" Y9 C0 a( X
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
* b$ L) b& i" Q% s0 cMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);& Y! B" |3 b6 C! z
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*0 p" x  W$ q2 q; C0 |4 J
** Set the serializers, Currently only one serializer is set as
$ F$ _) P) Q/ T. m% a6 b, f- ~** transmitter and one serializer as receiver.' k8 J$ B4 U+ U1 G+ W0 m5 q
*/
. S' m, M; j8 H9 t0 S1 n; k! QMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
5 I. m  \  n' b) vMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
+ [# w/ v$ t6 l. n* m/ g/ t; G** Configure the McASP pins
3 H3 E" S0 u: S# Q1 k6 K0 ?** Input - Frame Sync, Clock and Serializer Rx3 [. {0 S- e- H9 u
** Output - Serializer Tx is connected to the input of the codec
2 l& z; N% t" `. e3 y. T& _*/
0 J5 [- L! }2 q# I1 D* R% l, jMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
0 `" T9 x* t3 T- xMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
3 ~- o& P7 V& s* s: HMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
' w$ h  \8 W5 H! r| MCASP_PIN_ACLKX" |% K3 Y0 p* m3 o
| MCASP_PIN_AHCLKX
# \, c% W+ N# c| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */' @7 M$ I2 |' x9 m7 z: L
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
) A2 X; n1 v; A: B& N6 I| MCASP_TX_CLKFAIL
! F/ e$ l8 s! l1 z1 C! Y, ~| MCASP_TX_SYNCERROR: R' E- M1 t& ?  b
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR & Q. z  u# V- p/ o
| MCASP_RX_CLKFAIL/ X7 s, w4 [6 h5 u" y
| MCASP_RX_SYNCERROR % n, N7 \7 k/ X+ G+ w
| MCASP_RX_OVERRUN);( _8 J, c4 n; a* l
}
static void I2SDataTxRxActivate(void)
; p2 P$ y& d2 d3 [1 t1 a{
: e; R8 D+ e$ u8 I: h" ?/* Start the clocks */% H9 u4 W$ ~) A  X+ k& |% {* _! j
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
- ], j+ o1 U2 O1 k, x' s, M- m5 zMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
+ y. M- f# @1 p) ^EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
0 u6 u/ h6 [; k! H0 HEDMA3_TRIG_MODE_EVENT);
" t) T1 N; S- E* s: X8 |% S# CEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, % F. w/ y, s1 s+ B
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
9 s# r. D( m$ K' I* Y7 b$ gMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
; n7 p' n  L; aMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
1 U0 v3 [% P4 S" \4 ?# c: M& Dwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */% U4 d! l+ m5 n6 w) D5 A! K
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);1 Y1 ?' i/ T) h; s$ `
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);8 w2 e) B0 J% q/ E( z1 S
}

6 r) w2 e& f9 V+ m
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
0 |# C+ \. Q5 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 14:11 , Processed in 0.038363 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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