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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9564|回复: 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,
" \% Z9 N3 @" Z" h' qinput mcasp_ahclkx,, v, u6 ]9 B9 H0 O9 B
input mcasp_aclkx,
$ ?5 u# D+ F! J" j1 tinput axr0,
. @" S. [5 q" ~3 a' |6 j+ G, @# w/ G2 y. C+ q
output mcasp_afsr,
' j2 W6 s- A/ N' }output mcasp_ahclkr,7 C" y# R4 z* E# E
output mcasp_aclkr,
1 \* X* ^6 l# Loutput axr1,
# a4 A$ F5 K6 M! s+ C
assign mcasp_afsr = mcasp_afsx;7 W; w! j, @+ d
assign mcasp_aclkr = mcasp_aclkx;
8 z! q! P7 ]% q4 N1 Wassign mcasp_ahclkr = mcasp_ahclkx;
; P: `) j: l, zassign axr1 = axr0;
( s, p# T, N- c
' A: I% T+ H6 t2 {5 g4 e5 J
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

3 H7 N% i( ?1 f4 Z6 J# l2 T
static void McASPI2SConfigure(void)
: M& e& ?& ]- {{0 o* e9 M$ }6 J# O( l
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
  }( t9 u7 J4 y; A: ?0 ^7 sMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
' Z# l0 S, b) {6 {0 PMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
8 T% m2 F4 q5 `+ _8 e  y0 \0 XMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
# l7 N0 q+ E6 Z/ wMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,& J$ v# o: j( ~  P5 f0 F, E
MCASP_RX_MODE_DMA);
6 I7 l( Q- q$ d8 |  ZMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,8 ?! V! r% K9 I8 w, s
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
6 R$ d. v$ f9 i' Q" z/ w3 e# NMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
: M5 c7 a* ~5 I5 gMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);. {! H$ q2 f, t' b: b
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
7 I7 V' N6 S% Y, o, D3 QMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */( [7 t% S1 s5 x3 `
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
# g$ v  O) k) |0 B3 N/ }: hMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 2 `; x; j, o2 a6 V7 d! z; F
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
3 d0 E0 F+ `( B2 _6 a0x00, 0xFF);
/* configure the clock for transmitter */
1 v0 i9 ]' ~9 g, xMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);. L+ e: H8 P" r- u
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
1 e( ]; v$ c; P% {% p. h6 O& o8 U8 bMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
: S' J% O) Y' a. k$ A0x00, 0xFF);: r$ {4 T+ @9 z* |
3 e' I* t9 l. ]2 J
/* Enable synchronization of RX and TX sections */
9 U' o$ k' @4 K  B+ G- q* fMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
# ^  j9 x. q8 C8 M9 h2 @McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
. x9 u1 n% g+ G+ uMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
/ V$ p( h# M: s9 E5 N9 u' X9 D& X** Set the serializers, Currently only one serializer is set as( K$ B/ C4 h- i; ?; K5 {4 Z2 U' Z  Y
** transmitter and one serializer as receiver.
8 |' x3 K8 _% h" a2 D: s9 n, S/ V- y*/- e' O% }/ H" F, X( G
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);+ U2 G! J' N, P" f( C
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*/ l1 a( W! @8 x! }+ W
** Configure the McASP pins
2 A% N1 P; ^2 E: S2 \** Input - Frame Sync, Clock and Serializer Rx
# I1 o* I( X1 k0 n** Output - Serializer Tx is connected to the input of the codec $ W$ {9 {+ l; e! k2 _
*/
. |; E! A8 w2 m3 W1 n5 v# |McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
! T$ K5 l) ~0 o, z5 CMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
& ]$ G' [6 D5 n  HMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX/ B2 l. z2 q" E- e
| MCASP_PIN_ACLKX7 C) R' S+ e  |7 `8 t) f' F) D
| MCASP_PIN_AHCLKX1 t3 K' Z- _/ @$ O3 U+ J4 a
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
# U( |$ q! P9 o: v. _McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
- a6 q8 s7 i( y7 Z| MCASP_TX_CLKFAIL : P% M( @6 u+ f
| MCASP_TX_SYNCERROR
9 z% e. J  Z% C- ]6 P. }| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR / ?; u1 B& S/ ~' o8 b, E. E, Y
| MCASP_RX_CLKFAIL  @' u0 o7 r6 o( q* G9 l+ K+ R
| MCASP_RX_SYNCERROR
7 e" N" Y1 g6 R' ]| MCASP_RX_OVERRUN);
4 W. j. z  t! W, w8 y; Y, ]4 }5 R}
static void I2SDataTxRxActivate(void)
; L" B$ I# y: _: g# O' p{" l* W" `3 O9 O. u3 W. Q3 X8 p7 d2 q
/* Start the clocks */
* O: \: _2 W2 {, g7 S5 f/ @) W0 WMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
% s7 t1 _  s# @6 ~" wMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */, t) i. e* g) C! N0 j' H
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,# w! h  S& S% P- p
EDMA3_TRIG_MODE_EVENT);* i- h* r) {8 M/ P( d) k
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
! J3 D' u( A+ }6 T+ KEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
" q4 e1 _2 O/ R/ _0 OMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
: R% O% z/ s# q' pMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero *// `% ^5 K# b2 k5 {
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
7 N( `/ u+ d5 H) EMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);& e! {% c1 G6 H  e0 o8 [6 p
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);; l- x. \1 p( _% f/ S
}

2 N, h  N2 c6 Y; q7 P
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

1 w- T& S, G! S0 ^3 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 00:05 , Processed in 0.038409 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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