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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9547|回复: 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,
0 m' M9 l' x/ F3 K% U9 R6 Jinput mcasp_ahclkx,
" \5 L: l2 z( }input mcasp_aclkx,
. J; O9 B0 q) y& b0 P9 m1 w6 L6 finput axr0,
. z6 ~& P2 V$ x
! T' K" V$ I( E4 E8 r& M, s( _output mcasp_afsr,* h) k# m% r4 g
output mcasp_ahclkr,: m2 Z( e2 n$ V. f! i' {
output mcasp_aclkr,0 d' J/ v) @" o7 K' @/ b6 k
output axr1,
0 Y  b% \8 o$ a0 O# J' s
assign mcasp_afsr = mcasp_afsx;6 Z  z) r# P9 E  _1 Z
assign mcasp_aclkr = mcasp_aclkx;1 _. f7 O( Y2 I# c; M
assign mcasp_ahclkr = mcasp_ahclkx;
' C' u- [/ n) [1 }assign axr1 = axr0;
# r) a( Q' \6 ]6 I' H
2 _: Y$ O7 s9 k1 J# k
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

& g# ]. t) W! E9 v
static void McASPI2SConfigure(void): y9 q. N$ [) N. m# M; S& t
{% H3 c! L1 }& H. _; ?
McASPRxReset(SOC_MCASP_0_CTRL_REGS);2 v1 ]. z8 e! m2 |1 `  \4 X) A: ^3 Z: I
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
% ~$ t# N( b2 }! z3 O, v' |! I2 d, zMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
# y, z/ G$ Q9 n0 ?% M: i/ P# Y' f: N  mMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
+ x- G8 C: Y  v2 b0 tMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
! Y, O8 W+ A7 s/ m( IMCASP_RX_MODE_DMA);
4 s2 R! W9 `3 B0 t9 N! cMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,: a" b" Z9 ?& y  ?6 s
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
7 m- ^( b: B' H3 M6 t( j/ ?McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
' J* \$ {  s$ s. @) YMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
1 \( M) S, ]. C; M3 ], qMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, , |0 b3 U! i/ k) U1 t! |
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
. m: T4 l: T3 W! i% W, h) `McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
9 K% \8 @/ x2 [+ [" ?: u: pMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
  g' o7 r: B; H! [3 |McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
, Y; N4 X6 ]' n  y, @: P0x00, 0xFF);
/* configure the clock for transmitter */
. r& q' q# A+ l* @: BMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);- O/ a# e5 }4 X8 O4 h
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
" a4 b3 e/ X$ `9 W# xMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
; W" L! S" a1 J7 j- ?+ e0x00, 0xFF);! |- z, X1 ]/ Y

( l: o, w: W) o' ^% S2 w" }/* Enable synchronization of RX and TX sections */
+ `( v9 R7 L& _% H3 IMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */* B% ~  Z& h- k2 u
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);' b$ P0 K4 E, d' l* O* t3 n
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
* @" u/ D8 l: y3 a** Set the serializers, Currently only one serializer is set as. h& w$ w- {# C0 D3 m/ Z4 e
** transmitter and one serializer as receiver.* ~# r- M, `2 ]5 ?% y9 w5 J: b
*/
, q5 v+ W4 @. Z. GMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);, \& Q) H3 q4 _
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*! X$ m- [' C. B% p6 d% T# r- B0 i
** Configure the McASP pins
* t0 L( |2 r8 _) n/ p7 F** Input - Frame Sync, Clock and Serializer Rx4 P/ V9 k" J  M4 N
** Output - Serializer Tx is connected to the input of the codec
3 x, }6 z+ K; e( a2 `# T+ p% }+ r8 q*/# i1 |* y/ q. k, L' v: W
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);/ L+ [9 E( X# l$ j+ }) U# I
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));, l( i3 [5 E) P5 G5 T$ M4 w8 G6 v8 I
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
. T6 ]3 z  l( T* }! z) ^' b* V2 X8 T| MCASP_PIN_ACLKX. o- |# K! K$ o3 }
| MCASP_PIN_AHCLKX
" K1 C, m5 N) @6 ^" Y| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
) z. L9 n  P/ D1 dMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
3 \3 d3 f  a- Z: L2 i! |, O' o7 g| MCASP_TX_CLKFAIL   c1 n' c$ W4 s( ?) A* `
| MCASP_TX_SYNCERROR
2 B, v0 z; j' F5 \| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 2 ], q) x3 g8 {" ]0 q2 Z9 W' f
| MCASP_RX_CLKFAIL' B) _+ |8 l; O
| MCASP_RX_SYNCERROR
0 A% |* C8 w: o; J7 d| MCASP_RX_OVERRUN);
% h8 X2 _6 `* q/ Y. n- e* k- j! C+ T}
static void I2SDataTxRxActivate(void)
8 ^) R2 }1 ?+ v7 x8 q: y{
. A$ e1 Z4 J: @9 ~: f4 T8 Q/* Start the clocks */
: i' x  y( O* s* j* sMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
9 @- r6 }5 |! V, mMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
# \- W2 f6 k1 @, h; W! QEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,) F/ C" c$ W/ ~9 Q+ N- [) y) h2 _
EDMA3_TRIG_MODE_EVENT);
4 \7 G- n+ v4 l9 Q7 H2 W/ h* QEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
$ I, O' |3 \: e3 ?3 ^EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
; `! F9 I: s. V  \McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
  B6 \. g" `/ s6 }  }McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */: ^. c/ G( {' _0 l, f
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
7 f' o- W0 f% S9 B) ?" XMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
/ O/ i' ?- \$ E5 LMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);. A% f$ H) C; ?2 {. z
}

+ p4 O* i. g3 ]' f' M$ r  l: K
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
7 i# F. K7 v5 z3 T, u7 u' X# Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 10:19 , Processed in 0.040461 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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