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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10573|回复: 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,/ @' t9 ~: L6 k2 P3 ~
input mcasp_ahclkx,
/ H2 w3 n* M; w) p: Rinput mcasp_aclkx,
- h$ U; t2 q3 E" ?. y! |6 yinput axr0,
/ t2 e5 u; G3 n8 v- {
1 @- s# D# G8 k5 w& Boutput mcasp_afsr,3 i, Z  D: g, ]/ A1 [! P
output mcasp_ahclkr,, E& C, k$ s8 g% r+ K
output mcasp_aclkr,
9 N2 Z  W5 ]9 Z  x; r9 p) voutput axr1,
' t9 e, m' M9 [' ~; `
assign mcasp_afsr = mcasp_afsx;9 }# }2 d6 g( k9 F( u$ S+ w9 j
assign mcasp_aclkr = mcasp_aclkx;
9 Q' a, Y* y# t/ H/ z; lassign mcasp_ahclkr = mcasp_ahclkx;
0 k( n  u$ q. c7 hassign axr1 = axr0;
6 R* L1 V8 ~: K

& \0 X9 m) @  z# ?/ N& Z0 S4 j1 s
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

( o, W% N0 M" p7 D7 ?  N
static void McASPI2SConfigure(void)" {2 ~6 J, v7 i! D5 O
{6 D; y6 }  b/ s1 p+ {% e$ V
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
3 W1 a  z6 ]) x% xMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */% I4 e# V% E8 Q  T# n7 v
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
) k/ A5 j7 V  s; N; Q8 G# l2 PMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
6 N" T$ x. O" D& p. q5 EMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,  H& {' i1 S9 K% w9 e
MCASP_RX_MODE_DMA);" R3 f$ V+ ]+ u9 K6 D( T, k
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* Q: @/ [1 T7 Z  c0 g5 o. aMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
, x4 L( I+ \  a$ ]# uMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, / \; x. n; ?) @+ ]+ `
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);0 |- R  b' r4 L1 \
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, : `1 H) |; K# N4 b1 B& D( O
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
1 w  A) n! \! Z4 D: U2 B; QMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
2 u, O. ]3 _, v9 r, c: ZMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
, W1 g. J/ n+ h4 N+ vMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 J) R# n) O+ ~; P1 ]
0x00, 0xFF);
/* configure the clock for transmitter */8 `# \' r9 Y" J# r1 n* D
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
, q( N, T1 ], GMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
$ \- z& r6 d2 I5 G2 r- n! ZMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,4 ?# h' X. ~! Y6 J. O/ ?- r
0x00, 0xFF);2 A4 Z8 L& U  c. {4 \9 t9 p

  V6 `% }2 E1 Y' P! S) H/* Enable synchronization of RX and TX sections */ : p: K$ @% B8 [: Z, ?  Y
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */3 F0 Y/ C" g  b5 y$ Y/ y% ^
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
& _% x: x* Z# |/ }McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
  E( G6 `! t! {4 P  ^0 f** Set the serializers, Currently only one serializer is set as- W  f* p' W- F) P
** transmitter and one serializer as receiver.1 \' w0 R. }- D% Z$ @' d# U1 q
*/
# e7 |; \( I4 H# |6 a( b) l4 L* QMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
) J( U2 Y4 ~, y3 r8 zMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
9 W5 \$ @  s8 A5 L& k8 k- U** Configure the McASP pins & q5 k9 h' y4 `8 }& C( @
** Input - Frame Sync, Clock and Serializer Rx
8 I$ O) v& k1 X0 y6 _3 y* k/ |** Output - Serializer Tx is connected to the input of the codec
- M9 }9 ]' J$ Y8 [*/
& K3 K! {6 C8 ~/ w  fMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
+ o% R5 v2 w8 d/ `; {McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
/ V( u8 ^/ z( f1 SMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
3 P" r5 o! M0 _. n7 Q) M| MCASP_PIN_ACLKX8 i+ U' u6 _! q6 g& q/ d
| MCASP_PIN_AHCLKX; M* X2 T* q1 G0 ?
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
+ {  s2 y% u  p; f( V) jMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
8 ?7 K" A$ |. r1 ]  X! k6 o/ S- r| MCASP_TX_CLKFAIL 9 ]5 \  ]3 [% E/ O' q1 x7 T
| MCASP_TX_SYNCERROR
3 s9 Y0 X! C2 W3 T4 W| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR - }7 I, X1 E: \, L& J
| MCASP_RX_CLKFAIL+ c# d# a( @( o' p1 a* z; L
| MCASP_RX_SYNCERROR
& M( x# O! U. g2 [# ^/ _| MCASP_RX_OVERRUN);
) E# v- a) C' p5 I& ]8 O9 x  |}
static void I2SDataTxRxActivate(void); @7 Z' d3 ?" m8 Q3 i8 i
{
7 a& X8 N7 ?. C/ |1 U/* Start the clocks */
' s3 Q* W) t% |- UMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);9 e% N# R; f5 g- X1 w
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
6 e. v$ u. e' M& x1 t" Q2 dEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
* ^# h% ?$ F% W4 a) _) [2 ]* lEDMA3_TRIG_MODE_EVENT);
$ m, |6 c) o- s$ f7 @- ]& {EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, : a& O1 M$ a! y3 s- K8 b$ k5 p; V
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */  t2 ~; r' V/ ~; @4 U* u2 o
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);0 b; o% Z1 D! V, ~! G/ I* z
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */( f9 k7 m. j' E  j" i
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */4 o& O; q( t  a! Q" t* S  [  _
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
! k8 G0 d+ \8 r5 B: D6 sMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);- J* }) t/ [/ J3 k' @! m- X
}
8 F% e  n# [! B' N; u. _1 ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

9 U, w! j% E# G0 ^( _7 [" m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 03:19 , Processed in 0.044711 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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