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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11691|回复: 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,
$ O  N( g6 w6 Tinput mcasp_ahclkx,
# c. @* b1 s  \$ n& R% u3 k8 qinput mcasp_aclkx,
3 S* V4 D+ T2 u3 N% dinput axr0,1 W# X+ j6 @" |& a
" k/ U- p; {( r  \- ^$ {  J
output mcasp_afsr,
  c3 L' n! w" C9 c6 A0 \& N2 ]output mcasp_ahclkr,
& g/ C& D9 q: I1 K: P) B) w4 O0 _output mcasp_aclkr,; n/ N" J+ U2 n, R& a. E
output axr1,( J# f6 L4 T# K2 x7 K# V  ^) i6 B0 w4 N
assign mcasp_afsr = mcasp_afsx;
% A; z6 g7 U2 G# B0 [/ G) ~8 Qassign mcasp_aclkr = mcasp_aclkx;
, {  X. `( P. Eassign mcasp_ahclkr = mcasp_ahclkx;
) Q' N+ o9 Q( p+ l9 F- eassign axr1 = axr0;

6 P: H4 [/ u% ^' [: ?: J
; U" }) B% _% e- y
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
; v& V9 z$ }: J2 ?% W. D
static void McASPI2SConfigure(void): X- e1 N6 {5 j- P/ G- @+ r1 |3 z
{
; K" e! r- v8 SMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
1 {' X& o7 }: B8 c4 FMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
/ t4 Q7 |& J7 Z' eMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
$ x$ {8 W- q0 h7 MMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */, ~' ~- i4 t- X: Y6 J5 N
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) C* n" Y4 W/ u  X, P. f2 d
MCASP_RX_MODE_DMA);
' x1 \: C% `5 m/ P. r2 {McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,2 n5 p2 w$ r8 \2 _  p. R" t; _+ l$ w
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots *// L5 o$ f. }8 W6 c& u! }" V
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, : O9 Q# P0 p) F
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);) i$ |6 _1 z* T( p
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, : Y  j8 y! r' P) ?+ I# d6 x5 U/ D
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */: C1 r, {: M3 C7 l; J% L$ [( K
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);: K+ y* G" ^4 g0 E
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
, @# }5 B& H$ LMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
+ Q4 h% \: t4 x2 J: ]0x00, 0xFF);
/* configure the clock for transmitter */
1 Z/ Y: Y1 g; OMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
) @5 l1 }7 }* e! PMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); , _, g: ~( V8 F0 M
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
/ R& S! F+ i" _; ]0 O0x00, 0xFF);
1 E0 H6 z1 O$ n
# @- B1 ~& ~0 `2 r6 p# h' _/* Enable synchronization of RX and TX sections */
$ Z- n9 K" X- u! e" {McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
7 l" X+ E( E* a( o7 f7 e7 v. S. S* x8 SMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);. Q4 ~) s  J, }
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*- G; k  P, g/ _1 e& I8 |
** Set the serializers, Currently only one serializer is set as
' D' Q5 ]/ U- D' l% b" c: }. {** transmitter and one serializer as receiver.! |& |: ~% g; J2 ~0 R  N4 C; E/ T- u: U
*/
9 R1 }, Y) H6 B) t) s* n" |McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
; \+ o+ J& ?2 R4 }! kMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
8 f" y- E, d) U** Configure the McASP pins
8 g6 }& X* G$ M' T* m4 a** Input - Frame Sync, Clock and Serializer Rx
( N0 }1 R2 N( ?5 L6 r/ b** Output - Serializer Tx is connected to the input of the codec / m$ c3 U& J5 q* |% d
*/
4 p3 h+ Z* Z) y& R) a' a0 gMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
* |5 r$ J# M' ~! h3 pMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
- Y' C' g! @9 \4 a( W* QMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
/ E) M2 y8 @2 H+ d| MCASP_PIN_ACLKX+ e/ ^7 {4 f7 a: \. @
| MCASP_PIN_AHCLKX
3 o* S4 r$ n4 O/ u# P9 \' k* `| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
( Q9 N& X8 {$ d2 _McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
3 A/ x$ I4 e! \: z" g  f9 F| MCASP_TX_CLKFAIL $ ^- s7 W2 W9 F6 Q$ W3 B0 z
| MCASP_TX_SYNCERROR" s, X0 w& S& {, v0 B
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR : s. X+ v" K( \+ C" A/ X6 T0 w
| MCASP_RX_CLKFAIL: Z; q7 k$ p' j/ X' L
| MCASP_RX_SYNCERROR
3 Z" o: v% [/ B$ ^. g4 S9 z| MCASP_RX_OVERRUN);
; L+ X6 o" r& \  G( e0 A/ A4 A/ o% Q}
static void I2SDataTxRxActivate(void)
" R  Y: j) x; |4 P$ G2 v{1 p! s# h6 Z% b$ u! b' ?
/* Start the clocks */9 c2 P! P8 f5 N, p! J3 `( o0 F
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);. y6 P( Z' V3 H& k9 [  g
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
# G, S9 O) Y& b9 F2 ~: DEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,& Z6 J/ J" G: l- B: {. Y  o
EDMA3_TRIG_MODE_EVENT);
4 U6 p& i* `; L! UEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 0 O( X0 l0 R8 R1 W& p! ~) S
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */9 p! {1 ?  b, I- c. |- n
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
( j8 z$ j. t/ H5 v8 FMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
. |& U' t2 o' \& w  v) `! F4 ]while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
- _% w7 R/ Y- g, v* d$ kMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
3 F6 c0 ?  d: h( g5 s- sMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);% G. h3 ~, k2 `' y, w" j$ n% y
}

4 O( ^. t! h7 Q1 v# Z! D
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
2 M1 ~6 ?; `9 `: E* x6 R5 u0 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 20:50 , Processed in 0.043588 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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