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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12740|回复: 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,6 C% V- |  }1 d  u
input mcasp_ahclkx,
  l- f/ G, Q9 w# u* q( k+ Oinput mcasp_aclkx,
# S. T# J6 X5 D* x* `input axr0,) |1 Y3 G# b) V4 f5 L/ L* d* N

& }$ h3 o1 W5 d. M" youtput mcasp_afsr,7 V# k- b7 v* m/ F( n  K# f
output mcasp_ahclkr,
5 k5 B8 u" Q  P6 M5 w. n0 eoutput mcasp_aclkr,2 z# ~* I' B) j* A  |3 L9 z# p
output axr1,8 ^; @3 {& s- E; ^+ U$ m, _
assign mcasp_afsr = mcasp_afsx;
, N. f: v! n: o8 X/ Wassign mcasp_aclkr = mcasp_aclkx;0 _7 r! \" {( W! L) S8 F
assign mcasp_ahclkr = mcasp_ahclkx;
! j- r! n0 @$ k; v3 {+ Z0 f; [8 ]assign axr1 = axr0;
6 C/ H$ U1 y7 R! f- |4 X9 B( W! S

* g& l# r# o6 T$ Z$ Y
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
& ^" _4 D' c& O2 z5 C* G
static void McASPI2SConfigure(void)
) O" w" D) a: X$ k! _% C{* k& B- Y8 m( \+ g0 e0 s
McASPRxReset(SOC_MCASP_0_CTRL_REGS);( h0 Q, r+ k" b! \
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */, E8 H" T2 d/ W' W1 _& N/ i
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);# M6 m: G" d2 e) e+ ]
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */+ b* L* Y/ h# N, J9 {- f
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 h6 a! U7 x' n
MCASP_RX_MODE_DMA);5 B) a' s" G" `- J1 U
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,& A# G( r& E, `- F) q4 k9 ?* _
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */- k, R9 F" V7 V- r/ g0 D- D" F
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 9 h- l6 ~: k9 k6 v& L9 J) c
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);% o* Q5 H* ~9 T' i" N; |
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, : _" `3 ^4 f% p/ Y' [8 r: D' ?
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% P9 R' R! |2 o! }9 ^, e5 b* n. m! y
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);! L1 K5 h1 S3 j  B0 K( `, x  i
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
$ N0 n9 i- J+ w- P2 XMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 q: W6 S. A. p+ ~! b
0x00, 0xFF);
/* configure the clock for transmitter */' u) M$ L0 b$ i4 h) m! ?
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
; ~/ {* a1 {; V3 y% VMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
2 [; }- W# Z* K3 X8 S+ {, eMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
/ p- ?- r2 N7 h. R8 i4 o$ _8 g0x00, 0xFF);
$ U! ]/ N9 G$ |+ @# i- x& l+ `; X' T8 q  A
/* Enable synchronization of RX and TX sections */
& v- m' D( w' o0 W$ D. o' ^McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
& m. `4 L; ^- S# J3 Z' HMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);$ N. w$ r( [$ l
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
1 D2 h4 D1 \5 ^** Set the serializers, Currently only one serializer is set as
: y: ?+ ~" B6 P0 A$ P/ n. y( Q** transmitter and one serializer as receiver.; A2 F  }8 f, P- _' E' k5 v
*/
  b% b, ~& Q4 t! `8 d$ U% bMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);8 c* q" K" B, R, _5 ~6 [
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*, a+ a0 d2 E3 o0 g9 k  y# ]. A" ], u! g
** Configure the McASP pins
) \4 z- v8 [4 S, T6 `3 |3 r** Input - Frame Sync, Clock and Serializer Rx! ?& p* V( M& Y/ F+ a- @
** Output - Serializer Tx is connected to the input of the codec : H/ V- p0 O8 p. u
*/
( M% R2 _  a0 `McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);, v1 j" B) Z) p, x/ J- l+ w
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
! `( O! b* u3 M5 {McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX: Y- F& {5 U% F6 V: V0 n; o# F
| MCASP_PIN_ACLKX/ p/ G! j2 d4 |- Y1 G: d/ X: D
| MCASP_PIN_AHCLKX( _! J4 T% b, D* w7 u
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */; L4 S# o, l$ B( Q/ X
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR % ?7 f* {8 }# ]  \( x' l& N
| MCASP_TX_CLKFAIL
" _/ {7 n9 y0 ^) e5 J. V3 Q  b; c| MCASP_TX_SYNCERROR7 r" P! @, S5 K) |1 w
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
. P4 V$ |; {' U, H5 R4 j, C| MCASP_RX_CLKFAIL
0 J# Y1 ~" g3 C/ z4 u| MCASP_RX_SYNCERROR 2 a6 q, Z! r. k3 H' m# X
| MCASP_RX_OVERRUN);! X, U+ X9 V$ T- B
}
static void I2SDataTxRxActivate(void)  B: e. S* _9 p7 o: A$ E3 n' z
{
; [6 j2 A2 ^+ b6 p/* Start the clocks */
: ^: d" t# i0 Y+ tMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
* q: @9 D/ J3 F. j1 M: p0 l8 lMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */8 G' I" M. y7 P% C$ p
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
" s, C# M, |8 [+ @0 xEDMA3_TRIG_MODE_EVENT);7 j) |  p$ z# l' m) \* _7 U! ^9 Y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 6 ~! q. H: X2 S3 a& o8 B
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
7 \! P) s3 [! G# x3 _- v) c5 iMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);' F- Y8 q5 Z5 n: w& a# ~
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
, Z( Q6 i: \8 ]& s4 Twhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */* Z- K, N, p7 |
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);; T( {* c3 [6 w8 |% g
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
5 _$ M% u' G0 _& P3 j4 y( c}
: q5 q) O) R; O
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
8 @; w% {$ J: K% |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-14 13:44 , Processed in 0.043811 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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