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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11409|回复: 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,% D6 d& ^; B5 G
input mcasp_ahclkx,; ~' x' i' B; K
input mcasp_aclkx,
1 b+ q8 m) e/ @2 }/ linput axr0,
7 V, C. ]/ }3 c! `% F# w4 o) x
% z1 \2 d1 w% p% n5 W; T' Poutput mcasp_afsr,
# ~  c" I7 G6 q- v! ^/ @! y2 ^output mcasp_ahclkr,
* n% G1 r8 J; B/ }2 S# Soutput mcasp_aclkr,
1 F$ D( a7 ]1 goutput axr1,7 n3 l& B% s* t3 a! w6 V
assign mcasp_afsr = mcasp_afsx;
" ]6 o2 e) r# c; P  y2 ~* Yassign mcasp_aclkr = mcasp_aclkx;
  W4 X8 Q) h& x4 T' [2 N& X8 Uassign mcasp_ahclkr = mcasp_ahclkx;( }9 ~3 M& |  [. C
assign axr1 = axr0;
/ e+ e* l2 \% R
/ l, t* y- r, F: Q" ^
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

3 O% F( \2 {& }2 d% @4 _" X+ \
static void McASPI2SConfigure(void)
$ p0 _1 X+ U, J- ]% r: y{
( v) [% E! O) D1 d) e+ I' x/ c( |/ eMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
6 ?* k* o9 h; q- s" o, xMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
3 H  O/ h" `& h* `& ?5 h4 tMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
7 m9 z% e: V9 |+ T) x& S. E, [McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
  ^% w. j- j" r' ^McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* n- ?8 H7 ^) [6 [MCASP_RX_MODE_DMA);4 [* Z/ T4 n( i# z/ z
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) c0 l: ~) [+ ~; K- g, \+ C0 k
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */6 G6 t! }& h& [; h1 v
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
! [0 [5 @7 l, UMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);+ m* G& C& B2 w% {" x9 h% Y
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, % X9 H2 G. _$ t1 I, @
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */3 T+ t! g, T& i( ~5 l0 _, f4 y
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);" T; d: a" S! k( K9 R5 n' D/ @( q
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 2 o) I% e' f7 {" d
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
/ M3 K+ j" X! _7 E% l0x00, 0xFF);
/* configure the clock for transmitter */
2 v( @" N; |. g& h1 h* v' P4 O  AMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
$ {, [: m5 c9 W9 J/ S' kMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 0 ~4 i4 n; b- Y; [2 U
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
" r; }  w( v: q, x; d. _- t0x00, 0xFF);
8 t7 {3 b, ]1 R' K/ ^# _; Q$ s4 ^4 C3 m) j9 H' i8 Q# I
/* Enable synchronization of RX and TX sections */ 8 E) g$ _; b; D- c. K) m9 P* N; s
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
9 y9 b0 x& O# J( qMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
' Q: ?- v% a+ m- p& XMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
  E5 F' N1 [' b** Set the serializers, Currently only one serializer is set as. h! u& Q$ n+ [- @% K; |
** transmitter and one serializer as receiver.: P& B# n  I  p) I3 g
*/
! K6 D: M8 J$ Z. y2 B. DMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);$ F! M) l% C1 R9 w7 F3 ?
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*4 v- @( o9 ]# P
** Configure the McASP pins
& |1 ^' _% j, \( e** Input - Frame Sync, Clock and Serializer Rx  c/ K6 r  I# P. _8 y1 ]
** Output - Serializer Tx is connected to the input of the codec
+ v, X2 }* ?4 J: l; k+ F*/0 x' k! w# H& F! b" y
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
: v( r8 C1 l! M! j+ Z4 r. O/ RMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
& q3 h/ z5 ?, M' E# }9 X) qMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
( n7 V( o2 G( Y% R| MCASP_PIN_ACLKX
# U& M3 X& k7 u$ p) n| MCASP_PIN_AHCLKX
0 e* b/ @# U2 f! T+ {* J3 h. W| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */1 b# \5 @9 Q# ^3 f" Q# o
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ( Z9 n" F# [5 {) e+ q& S
| MCASP_TX_CLKFAIL 4 x  I! y1 Y; P  e/ J. c
| MCASP_TX_SYNCERROR
2 X# |, I! R0 |* H| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
, z" o$ d( \( T; ?  U; p| MCASP_RX_CLKFAIL8 f- m( d5 |6 q
| MCASP_RX_SYNCERROR
3 ^" }, {) H- o7 r7 L$ S* S| MCASP_RX_OVERRUN);& _" B* L% s" D0 ^
}
static void I2SDataTxRxActivate(void)
4 r, d; \4 G5 |" p  h. \% q0 X" b{: X# B9 \  y- O. B2 g2 `2 ]
/* Start the clocks */
) o% z1 n0 f7 ]) u7 VMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);& _7 U; t' f5 o" z' ?! H( J( V
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */* C+ `7 Q! @! Z& e
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,5 U' Q+ {* N8 g, M. t' Z5 N, a; ?
EDMA3_TRIG_MODE_EVENT);
0 x$ t1 K$ }2 q: X9 @7 mEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
/ }3 m; N" X' K% e& s$ fEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
9 g; c5 Z1 J# y7 }+ v6 \McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
7 s* `# H8 n$ h- }6 w2 a* ^- \* LMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */$ d9 W: E# u- X' U
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */7 B. x; q2 a1 f3 k9 a0 O) r
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);' ~4 E3 v9 U$ f/ q! X! _# u8 o
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);5 C3 }7 b+ R7 {, I. Y
}

/ f4 ^$ V1 A0 ?: P- {! k$ u5 Y. h/ ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* ]/ h8 u5 y. c6 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 16:04 , Processed in 0.045845 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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