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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
/ C6 C# @: _; n; ]5 tinput mcasp_ahclkx,$ n  M, K  G) H- \8 J2 [+ B
input mcasp_aclkx,  j9 V. X: F: p- L; f
input axr0,
1 \+ s3 C/ P0 f( y, f  a
& n! U" V2 B# W. x6 I; R% y! j. m9 Joutput mcasp_afsr,
: d0 F9 @4 E& ~2 d2 g' Toutput mcasp_ahclkr,
% U2 z. p# O6 V2 i+ l& ioutput mcasp_aclkr,9 V5 o4 U' p3 w: C
output axr1,) l! Z, r! ]2 h  s
assign mcasp_afsr = mcasp_afsx;
0 o1 k. v  @. D* W) Bassign mcasp_aclkr = mcasp_aclkx;
0 Z, s! e1 V; z6 B) |assign mcasp_ahclkr = mcasp_ahclkx;% M; \9 O7 |; E6 u& \
assign axr1 = axr0;

; g. x3 U9 l+ n2 s% E) ~0 ?1 C# c5 y0 Z1 H5 N1 t
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
) ^; m7 p5 \7 _. V& t* B3 n/ L8 B
static void McASPI2SConfigure(void)
0 ~( C: T/ L" H# f{
3 M; c/ U" @7 A2 n8 J' y5 H7 PMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
9 W# R. [* u  ?! g1 hMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
$ c6 E% I3 M: E( ~: hMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);" L( r3 Z+ z; L5 f$ p
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
& e/ P: a* w! @! k0 |. f  ^McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," y* w3 @/ x2 C1 W( t; _- ^0 s  h$ _
MCASP_RX_MODE_DMA);9 T/ L3 L3 O3 [
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
) u: L! w" y& ~MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
& T. O% C: k: l$ F% Z( P9 K$ w8 xMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
+ h3 C( }6 R7 O5 q) }MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);8 N: t: y( V: f7 ~& Y
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 6 \$ v  l8 p& W$ {0 G* v( h1 @
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
) j$ h* T$ W; _- l5 o: OMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);" G0 f3 S5 u; \& x% T
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 3 c' b2 E2 w+ D" t: i
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 k& ~" u+ h, n
0x00, 0xFF);
/* configure the clock for transmitter */
7 w5 I: x5 g& T" _4 vMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);2 m3 o8 z" E/ [1 G. ~
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
7 j  m; I: }# A3 }( `* V- mMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
2 n3 c" }3 b  O3 \0x00, 0xFF);
6 p7 o2 f, k4 W4 Z" Y1 L! t5 [9 X5 W( ]7 o- W7 y
/* Enable synchronization of RX and TX sections */ 4 E9 l2 X5 z" q, e# U. m+ U
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */. y+ L0 {3 u1 c; K1 f
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
" h$ y! H3 o" R7 M; nMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*6 Q! I6 \0 t$ X5 ]: l2 `
** Set the serializers, Currently only one serializer is set as
& `( U( F# S& E. d** transmitter and one serializer as receiver.) W+ N& W! h$ l$ U
*/
  X5 G* ]( o7 L$ @1 H7 }McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);' P1 L. n) v( ?: ~+ m2 f
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
* {) b" M6 c: T7 e; Q** Configure the McASP pins " f' G9 X( ~. X
** Input - Frame Sync, Clock and Serializer Rx9 y- ?- u% @8 U: y
** Output - Serializer Tx is connected to the input of the codec
! Z' U: q1 n4 U* e, w*/
6 V; U2 {- D$ q" ?$ @; [McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);, _2 ~& d# H1 o& X0 q% u7 d, _
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
/ w) ?) W: r+ {McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
0 A/ R! l9 f$ ~  X( \; {| MCASP_PIN_ACLKX
/ N6 n7 [1 T! P. a1 T| MCASP_PIN_AHCLKX
! B) `8 ^6 t4 ]5 O+ l) _| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
( T. W. }! ^5 ^& c0 ]McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR   ]4 W( _3 }( i
| MCASP_TX_CLKFAIL
6 e  N9 ]% S9 m8 E4 f2 o4 d| MCASP_TX_SYNCERROR0 B. Z* O0 h2 f; e
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 6 R- n% b2 |, b, Y: o
| MCASP_RX_CLKFAIL
9 E, d# B: ^; L6 z| MCASP_RX_SYNCERROR
4 [4 o# y# T" @# V| MCASP_RX_OVERRUN);( ]5 }/ f0 p0 C1 v
}
static void I2SDataTxRxActivate(void)
+ i1 l8 D( o, ?8 r7 @{" G0 k& m6 W& }9 e4 {
/* Start the clocks */; \! u2 r/ p8 H6 \1 A3 l1 h
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
5 O+ ]5 n# P( w* m7 H* }McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
7 P( m& R) `% r9 V$ R" u) c" l( XEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
4 Y: ]$ W# Q0 j: r# K$ JEDMA3_TRIG_MODE_EVENT);1 Q% D7 F) }# g+ l9 V! M
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
" {( B) c) _* E' w* GEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */1 a+ H: @8 f& r
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
+ \  U& P! L& }1 t( n/ a, zMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
, i$ ?8 Z0 `9 g2 @1 y3 Rwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. C: V! P; {. L2 p
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);6 }  W) V8 j4 {; G' |( e  P; ^
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);8 H' ]3 a3 Z6 k' T! H2 W7 j, e
}

4 m* ^% v7 c6 q+ j9 d
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
2 @" {  U+ y+ c5 X. B, V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 23:16 , Processed in 0.039361 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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