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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11960|回复: 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,
  t' `) E. b) T5 B2 [* C6 ~input mcasp_ahclkx,
. P: ]* t* C/ f: o$ xinput mcasp_aclkx,/ U* p, ~5 B( h& j. h
input axr0,
0 Z+ l2 h# I9 n( y  X
7 l# {5 d, ~1 x  I: z% ]output mcasp_afsr,
) p( r  T: z% [. H& H  ?, woutput mcasp_ahclkr,
: l# b  x1 Q5 A2 {0 ^output mcasp_aclkr,
/ x! r3 f3 B% T" y& voutput axr1,3 v! K( p9 M$ x" ^! `0 U1 X
assign mcasp_afsr = mcasp_afsx;% |$ n7 _4 [) r# _8 P
assign mcasp_aclkr = mcasp_aclkx;
/ }. u: B) Q/ ~- aassign mcasp_ahclkr = mcasp_ahclkx;5 _  h/ w5 p  C' N" H6 X- j
assign axr1 = axr0;
4 E6 ?, G$ x- {: B" [3 B
3 m/ m  l6 V4 u- j
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

/ J& d9 B+ r; f2 J8 ]. t* ?* q
static void McASPI2SConfigure(void)! T' S, V4 c$ u3 u7 \3 B; Q/ K
{
) ]% ?- Y- b& c; k, T' _McASPRxReset(SOC_MCASP_0_CTRL_REGS);, [: t  ^' S4 B# `6 s8 h% p  u! q  `+ g
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
( Q7 D; L/ {: V- a. TMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
. Q, T9 @0 R+ C4 ~' x, t% qMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
4 P6 h9 S" r( c% L6 h* |1 t2 y8 D  ~: YMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,. O. y$ t9 E: n. \' A/ s
MCASP_RX_MODE_DMA);3 W* S7 |4 s& @, U/ e& L
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
4 G) w: v4 C6 T5 n8 h4 o3 y  UMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */, p7 u; ?& u8 ^3 K( {2 p
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
- }5 D  y' u# e4 j/ n2 tMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
5 W$ Y8 Y9 S3 c  A: ZMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
' ]5 F$ ^/ H2 g* |0 o! |% T7 pMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
3 f4 H- E3 \- c$ z! M3 J- qMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
; H7 r, e, f% Q) I) e' v+ cMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ' }% }3 F3 Q9 s* R# j  _9 R$ U0 }
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,; y! `: L# b" N! G& @# u
0x00, 0xFF);
/* configure the clock for transmitter */& x5 |9 A: t. O" W
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);4 v" U9 B. k' q4 H, l9 G
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
  i: L8 H  |: \, a" P5 IMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,0 o, n1 M3 l6 g# Y8 j
0x00, 0xFF);
( ~1 G/ [4 B8 I8 u' H
. ]& N* i" E( u9 ?, d  l" c+ z/* Enable synchronization of RX and TX sections */ 7 W% _, B3 r" k# e
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
4 d, m' ^; ]% S" f- d$ TMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);/ r& X  I. `2 Q9 e2 ?- `
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*& J( k: Z. d0 \
** Set the serializers, Currently only one serializer is set as5 o" |( m5 ]2 u& K
** transmitter and one serializer as receiver.
1 Q( a$ {4 L/ q*/$ @+ c/ r/ I% T) T+ |5 @* y( A
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
& U" S& E3 t0 c1 y9 }McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*; t. F- z$ D0 a  R6 B
** Configure the McASP pins 4 o, J- O- q( H+ P# Q
** Input - Frame Sync, Clock and Serializer Rx; g: W; `. r: g3 ?0 U7 F
** Output - Serializer Tx is connected to the input of the codec
) u, \/ A$ h3 K/ T$ O7 q8 l*/
+ b5 w* J6 ]7 U' @2 ^' x/ Z9 F8 w& PMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
5 A  C/ F" i$ ~& wMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));! f& x, m2 ^$ T% G6 g+ D
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX1 [$ A) @6 ?* e
| MCASP_PIN_ACLKX& r" C. C# T$ }6 j
| MCASP_PIN_AHCLKX
( X5 O  V2 i- y) ]# i# @% i( l| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */' C9 x# W8 H# K' b7 U
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
9 _3 J2 o# @: {! m- v| MCASP_TX_CLKFAIL
9 H% |' ^3 U7 q/ ~" z4 z| MCASP_TX_SYNCERROR  G: v. s8 [% s; g2 F9 t9 X. e/ n
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
5 t& F* S* E# N) A| MCASP_RX_CLKFAIL7 E' p. n. ^) j0 U8 [7 d
| MCASP_RX_SYNCERROR
' i+ K( h  Y! \' K- E( t| MCASP_RX_OVERRUN);
  b0 }- S* Y8 u  R}
static void I2SDataTxRxActivate(void). z9 \. ]- _% k# F! @
{! r4 u0 l/ @& U4 D! N6 ?
/* Start the clocks */, `5 J. q! T  Y0 }
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
8 z$ d. k5 r( k# u! a  J/ s& G  @% uMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */4 y. Z# v+ W" K: l+ J* j, f' X
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
. B1 |' x9 d  k  REDMA3_TRIG_MODE_EVENT);$ g; x6 f" w: V$ x0 V9 e' ]
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 9 L9 }# {/ q" S; s
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */8 v' L7 N' G4 a. H5 S- c3 V; `
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);! c" x9 X) A' V8 P- v
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */% z7 P7 \5 N( d* |4 N$ c0 }, q6 n
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */! n0 j# Y3 U9 c/ x0 X
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);) E1 Z) ~! x0 o) R6 }! s
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);9 H5 d. o! D& K! o9 l
}

, H( h3 M) f6 t0 C! ?
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
" E8 B  I! @- E" f8 ]8 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 05:33 , Processed in 0.041559 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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