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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,/ ~, ^) r4 E4 G8 Q2 r  L
input mcasp_ahclkx,
1 _8 M/ A1 K# q- n! z9 Winput mcasp_aclkx,9 E. r7 T9 T  j. C% p4 {7 E' U) i
input axr0,
: H7 f% N$ ]* }
$ h- U; {& G( }- r# i, v3 Koutput mcasp_afsr,
: R. K( v  c! _. r3 g5 M6 U7 [output mcasp_ahclkr,. h4 p( G$ S9 B% o; v
output mcasp_aclkr,/ P) k% w# g) z( [
output axr1,
8 K5 U; n# R) a& B
assign mcasp_afsr = mcasp_afsx;3 g/ c0 ^0 T: F
assign mcasp_aclkr = mcasp_aclkx;% g: \( Y5 _0 H9 O3 T! x
assign mcasp_ahclkr = mcasp_ahclkx;
. ?. p, a/ n5 e+ Tassign axr1 = axr0;

& s+ z( Q) Z8 t: c7 d6 J) s, R9 s6 v0 b7 V  \+ {% A  q8 J
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

  s+ @# `- u2 ~, q
static void McASPI2SConfigure(void)0 V" H* v6 f( z2 u
{+ P6 ]6 i6 d' i: H5 d, q% [1 _
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
; Y. a, `, E  A4 ^; m6 E& V* nMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
: t; k; H9 |/ u1 wMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
6 G( `  ~' I6 D* uMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
) o# o0 t$ }8 Y" j4 C4 g) H6 yMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,! i3 {1 N! n6 ~1 Q# s
MCASP_RX_MODE_DMA);+ e. G! r( f( R, c; {; V+ J
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,2 i; Z3 @' \- y4 \
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
8 W* D& [1 W; W. N5 \& s% AMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,   O( r0 d/ f6 y! C- z
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);; p/ o  u# A2 o
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
& Q& w& W# ]- |MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */9 x  {! p+ a. z. p
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);7 ?( z; ^0 Z# i1 r) `
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ) v7 s& W/ U# z; ^* L
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,  L0 i, y  ]9 F3 X& u8 u
0x00, 0xFF);
/* configure the clock for transmitter */
' }/ f7 Y" u# q$ |9 OMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);# \" w3 }# ?0 a3 f" X5 H
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
" y* v- p- n/ d: K; gMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,  z9 b9 P4 l7 {
0x00, 0xFF);- m$ k6 u2 q1 ?: }' K

, j  g, _4 r5 H& o' E8 m0 A9 B# G/* Enable synchronization of RX and TX sections */
$ M* v, b- V* FMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */' o& g6 w$ {/ i+ k3 @2 D
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
  j$ N" n, l. J9 F; z9 oMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*; [, Z, k$ |6 b( n' B
** Set the serializers, Currently only one serializer is set as
. d5 d! @( ?* i$ m/ |3 n, i** transmitter and one serializer as receiver.
% K' Q4 i) e+ n) e/ K*/3 q' ~9 V6 z& Z
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
; ]. R9 i5 r% m3 `7 A$ I. DMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*0 \. S" e9 _+ d1 x& x/ r% b
** Configure the McASP pins ; u+ G2 y1 Y/ o. I; f
** Input - Frame Sync, Clock and Serializer Rx
* L# V7 [5 y4 S  b: B, w5 c** Output - Serializer Tx is connected to the input of the codec
: g3 U0 h& y# D7 W9 m*/
, j0 ?( d, L  A$ C# H" _McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
2 p7 y) l# Z& N7 N2 `3 QMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
6 E0 g" Q; a: J2 rMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX8 G% ]3 C7 ]3 X$ b' {
| MCASP_PIN_ACLKX
$ P0 R8 T8 C; U* ^| MCASP_PIN_AHCLKX
4 H8 c; P6 v) }. a4 @| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */& g" ~9 d* t/ x/ K
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR / y; g$ u) M! T% R& I
| MCASP_TX_CLKFAIL
/ D1 o) j( j2 r/ v2 o- o3 ^| MCASP_TX_SYNCERROR8 f, [; r! K) U4 l  E# |3 o8 r$ v
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 4 D3 J" U4 t/ A% V
| MCASP_RX_CLKFAIL5 z- ?3 _/ h( f" D* h$ t
| MCASP_RX_SYNCERROR + q, l8 j+ z$ v
| MCASP_RX_OVERRUN);* U3 _& `4 z8 a# S' K4 Y
}
static void I2SDataTxRxActivate(void)
) t  d  F- ?) H4 }% b( s{. o1 ~5 O- R% Y7 [( `
/* Start the clocks */
4 M, ?* {+ D% IMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);& R( C( K( b9 R7 e# A+ P  @" Z, _
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
( n# b' ]7 Y( H4 [: l# `' iEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
4 [; C5 }: F4 E( D) R' SEDMA3_TRIG_MODE_EVENT);
7 `! S, a& a/ R( q( o2 u7 JEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
8 r- P+ n  M  X2 nEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */0 u7 a1 U, Q3 ^, l$ K& ^. z# {
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);/ s* ?# y  Z( }" U* V* a* j
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */# S/ t, q& l  d; g
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */* c0 r+ K; S* `3 {
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);! t# u# Y# h3 J
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);2 X" x$ f( |+ I# C! t: E* K4 T
}

, n! B; \0 }' Z8 ]: C9 Z
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
( A) F- e  c' |4 N' ?) B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 12:21 , Processed in 0.049819 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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