MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,8 d7 C! k. u8 k
input mcasp_ahclkx,
' ?% V" d9 Z+ m8 P! a( hinput mcasp_aclkx,3 r( \; [2 s, R* S8 n% S0 y8 t
input axr0,
' w5 d/ A6 p$ s8 e( y9 Q& _: A- N+ Q- c
output mcasp_afsr,; \. T7 w- W3 T9 J$ ^5 R
output mcasp_ahclkr,
" {4 S* D( b% ~output mcasp_aclkr,
. J% J$ q* C- n4 d9 x, D: coutput axr1,
, }$ c5 h7 m/ ~. u* f
assign mcasp_afsr = mcasp_afsx;
1 L( n, M. G" `, uassign mcasp_aclkr = mcasp_aclkx;0 T" \# m* [: V4 ]/ R2 v
assign mcasp_ahclkr = mcasp_ahclkx;
! _4 e# w( o0 ], ^assign axr1 = axr0;
' Y9 g; j/ A& X4 u: O. Y# q

# G- B7 X* Y2 I0 Q8 f2 A" F2 v
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

) ]5 B( n$ k1 Z$ i- l
static void McASPI2SConfigure(void)
) u/ T& X. M6 b7 `# G/ H{/ z  D) D) J. P4 i4 K! [
McASPRxReset(SOC_MCASP_0_CTRL_REGS);# x9 ]: U4 M; p1 q- V# \! M2 @8 E
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */0 I* k) F% P; y  C3 y3 e
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
1 C: F: q. _# gMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */) j/ i( o& D4 S9 m# S) W1 l/ }
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
7 l( i( p/ A. D0 {( mMCASP_RX_MODE_DMA);
4 Z! @4 z1 A4 cMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
5 p) g% ~7 J$ _0 n3 |: UMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */! b6 b4 n! {. c
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
' O+ k! ]  w% G9 C/ ?MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
/ u- u, E. Q; V. t: H7 JMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
2 Z$ K% o* _0 [9 c  CMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */8 Q" N- m; V, s, a1 E3 e% J: {
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
( p) M9 G+ D) Y3 g1 M4 k. yMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 8 t8 J" C& z# q% ]# l' j7 J4 W
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,3 E% [7 t8 d2 g7 E) Q
0x00, 0xFF);
/* configure the clock for transmitter */
9 `- c) j$ t  H& cMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
3 i& E3 U* C' Q; PMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
' e! d, O( N, m- C, C0 ]+ ZMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,$ q0 L+ A; f4 e8 E
0x00, 0xFF);
" z8 P: s& Q! [  n; a4 O3 o5 Y. J, A+ G8 h3 M
/* Enable synchronization of RX and TX sections */
& e' Q( k  Z' g  F) E, s) f% y) O$ V# _McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
; H0 }6 Z0 i3 O) X9 b0 z# S: gMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
. y9 Q; z! S6 o' pMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*! }2 o+ I: C1 s7 Q
** Set the serializers, Currently only one serializer is set as
7 z5 m5 _, V, s" o: k) [** transmitter and one serializer as receiver.
, C  I$ Z  A9 u/ f* W9 D6 n*/7 }, o# O: r: A0 D& a$ I1 R
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);7 ^5 n& V" r/ B( m4 }; w
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
9 k' }9 N. d5 V/ {- O) O* N** Configure the McASP pins . P2 Y9 i( ?# U& ]( |/ f
** Input - Frame Sync, Clock and Serializer Rx
) a0 E6 l3 D+ b) [: u9 k; h** Output - Serializer Tx is connected to the input of the codec
1 |5 P* o( v  i* G- L*/
9 ]" x5 s/ Y  Q& KMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
9 s+ @+ R3 G! d) z( d  o4 e; CMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));4 g. z8 X; U/ U; f5 P! y2 {6 i  W
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
/ G2 o7 f: E6 _& d| MCASP_PIN_ACLKX
. l* b9 M, _4 O. e9 N7 E, i| MCASP_PIN_AHCLKX
5 C) ?# k% h' a1 a% Z, I| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
/ e. h; A8 [& c! p8 }& XMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
9 e. S1 E; _; K" y' T| MCASP_TX_CLKFAIL
& E9 g. [8 a8 F+ q( o| MCASP_TX_SYNCERROR
; a6 c) l, {) o, c( Z| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR # Y  O0 l2 q3 a# Q' I2 y* U
| MCASP_RX_CLKFAIL
$ H& i/ P3 ], }1 Z| MCASP_RX_SYNCERROR
( j6 K; F. W9 \| MCASP_RX_OVERRUN);
3 l3 B, a+ A2 `  l8 h8 ~% f  F}
static void I2SDataTxRxActivate(void)
, o3 L5 \. T+ r9 h% T. T7 w{$ q6 L- _- O/ u. i, V' a+ r8 G  ^9 L
/* Start the clocks */
. u% S2 i8 w8 eMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
- Q6 R: h3 b2 D2 F' GMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */7 f$ i7 [/ m' V' i2 e
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,- [0 V  q4 T% k
EDMA3_TRIG_MODE_EVENT);
* g7 M" |& X6 u+ ^$ cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
/ \6 k, i; ^. _& l8 U7 A2 KEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */2 e9 {% T9 {" g1 E
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);6 K# c& `: \7 p
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */9 Q# ^2 N* S& r4 P# B0 r1 T
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
9 t: i' g& ^- ^9 |McASPRxEnable(SOC_MCASP_0_CTRL_REGS);  j0 C& {& G; t% `
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);' X( z2 B+ h$ K
}
8 S+ F+ k* E. G3 k
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

* f2 R  }" N' B& M: k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-9-10 15:52 , Processed in 0.040784 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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