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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
) Z, b% m+ c5 K4 W# g5 L& |input mcasp_ahclkx,
* B- g: M5 |& uinput mcasp_aclkx,
2 A" \* G" K4 n, O2 Rinput axr0,3 B: i% [, R  G0 o3 j
) s; G. ~8 `! @  P- C) b
output mcasp_afsr,: c/ x: F- V! H; a2 |; d
output mcasp_ahclkr,# j; T) K0 g3 m( j' u
output mcasp_aclkr,
* [" T9 q( s+ V" Poutput axr1,
" p6 B  h  m' B# N9 f2 a' N
assign mcasp_afsr = mcasp_afsx;/ ^9 H$ c3 @  J
assign mcasp_aclkr = mcasp_aclkx;9 h: K+ A  W7 X2 k
assign mcasp_ahclkr = mcasp_ahclkx;
1 b$ ^2 P/ g/ {: `5 o. Uassign axr1 = axr0;
6 P* {" {$ O. s0 D4 ?$ D

6 ^: X3 u' E& W
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

: Y6 M9 B' v' l' D/ c7 Q3 H3 _8 u( \
static void McASPI2SConfigure(void): t$ X' e0 T8 Q7 p
{/ v1 L( F: o0 B. J; c) v
McASPRxReset(SOC_MCASP_0_CTRL_REGS);6 ~6 A( _1 ?( U& v/ y
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
- q# F4 ]: I/ V) y. g. dMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);7 ^! R& m6 G& C  w- k& g
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */9 B2 o  M7 D' y$ N0 `
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
5 N! }5 q$ ?# ?7 F- b  O! n  @MCASP_RX_MODE_DMA);
! }- [7 @% R7 Q/ u4 F9 qMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( z6 K/ l/ z3 }
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */+ ^6 l# x) ^3 B# j  c; u- M, T
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 5 q0 b! P& q1 V& u9 C+ o
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
  A% ?( Y5 U' D7 I& F8 ?McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, $ ^7 y8 N: k2 K* |
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */1 P- r" h) L- @& z4 a, t  ^- B" u" f
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
3 _' D/ t# X5 a1 m8 qMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
( f6 M& |7 o; Q9 |: ?2 ?McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
6 `3 @" ^3 v/ q- G: c  N- \6 i0x00, 0xFF);
/* configure the clock for transmitter */7 o; e! ]4 n* q1 w
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
' K- d  f3 h' Z6 S- V6 m6 oMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
) x% I7 j5 p) m, a! c4 nMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
0 p0 X. K/ v$ |5 d0x00, 0xFF);( A$ M2 j! U3 b1 q

# p: p3 i5 v( B+ E% V# C1 b/* Enable synchronization of RX and TX sections */ ( S% c; G* A( Z" o1 L! U
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */3 Q) q8 Y# G- c" I; s* g$ I
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
; `' m' ]0 p5 B, T, F2 v6 h' TMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
; ?1 d. _% _: J. S& v** Set the serializers, Currently only one serializer is set as
5 x0 d  N- F3 q' d" G: R- K- C** transmitter and one serializer as receiver.
4 ]" Q) |8 U) [/ n# Q+ k*/" [+ a( e- f! S7 M4 @# `% u
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
" v- i; t; P$ SMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*, q( i1 _+ T( O' S- v
** Configure the McASP pins
- h+ [2 Z1 G; O- t* U  c( B** Input - Frame Sync, Clock and Serializer Rx
9 @5 I& G/ e& D3 V* I- v" L6 u** Output - Serializer Tx is connected to the input of the codec
5 G4 B; K/ V& S$ P- K*/
6 I6 ?) v2 U4 d8 x/ F8 F2 ?6 iMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);; Z. @6 x/ \! O7 \( C
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));2 K7 `: G6 \5 i4 T. t
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX3 L# `( b/ N+ e9 |: B
| MCASP_PIN_ACLKX; @9 i! R- K# v. d0 R6 P8 q" j
| MCASP_PIN_AHCLKX
1 p: E( T+ D$ x* T6 w/ c| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
2 B1 ]. o  `( F. [3 n! }% P: J4 {, u- TMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
% `9 B3 N8 v8 ]8 K1 m; B| MCASP_TX_CLKFAIL
4 J& O4 ^8 \  Y" y. h& @$ O| MCASP_TX_SYNCERROR4 d' j1 v; s% \' d: v" D4 s
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR $ Q5 X% I/ H1 j. x/ _6 q6 k
| MCASP_RX_CLKFAIL
- N5 H2 \! R* T2 k+ M. R& C| MCASP_RX_SYNCERROR
" d. l, X6 `' j/ r* [) p: U. s| MCASP_RX_OVERRUN);
7 @: Z' Q2 P: X+ \) P3 X}
static void I2SDataTxRxActivate(void)% Z$ ?; Z6 j  j- {. m: x
{" c* }( ~0 w! E% W( X
/* Start the clocks */8 q( o* z7 f& N; w
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
7 o; B, u( J! |5 f' J( N# _+ p. XMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
$ X7 t& i" w/ L5 H7 _: w  AEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,+ [1 G1 g) I* u5 I
EDMA3_TRIG_MODE_EVENT);! S. z0 x% c# r% w# w
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ( w5 r" v7 U& I
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
$ C0 |$ `' p' e; NMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
: u7 W# `& j, p, Y" S# ^McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
$ h0 E/ d$ [9 s0 I, ?+ s+ cwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
  }* D' X  ?+ O6 X; nMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
5 U8 D3 C; w$ v5 OMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);) s+ V8 D9 n3 P" H6 Z8 S" X- z
}

$ C% @( B  o5 a$ _6 Z, S
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
! H4 ~5 l# O5 w0 w; W' T* Y, q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 19:52 , Processed in 0.039509 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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