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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
% ]+ E$ |0 O- e$ G4 q0 ^9 minput mcasp_ahclkx,
+ l# k" p3 C" h3 Q: Z4 f7 J+ _input mcasp_aclkx,
  g  q  p: l% tinput axr0,- K- L9 S7 x' u; n5 u

! r- h8 `0 q; E8 ^output mcasp_afsr,6 L( a: q3 E9 Y) s; [( n
output mcasp_ahclkr,
2 ~6 H; P# R8 Uoutput mcasp_aclkr,
7 {0 f# W: K* w) t9 L7 k, Coutput axr1,' m' _$ p8 w8 W
assign mcasp_afsr = mcasp_afsx;5 S; r. Q+ j& }9 I; L+ \, E
assign mcasp_aclkr = mcasp_aclkx;
1 r# X2 A7 M* b. Passign mcasp_ahclkr = mcasp_ahclkx;3 x# E" f& M7 @1 C+ |+ \: k' _* o
assign axr1 = axr0;
: w1 f; W6 B6 ^) i" \, {

3 a$ B6 y0 F  M5 D
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
% f6 O) N: h" ], w6 `
static void McASPI2SConfigure(void)
" `: r" @# W  c/ c# ~) I9 a& u{2 f) ]# [0 M& X* m$ Y* W" N' z
McASPRxReset(SOC_MCASP_0_CTRL_REGS);* z' x3 F$ P* m" c  n
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */1 W1 t# d7 R# l: A
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/ G% j  B/ l$ T! pMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
! U6 ]  F$ w( d: NMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,9 }( A  }( l2 D
MCASP_RX_MODE_DMA);8 u* s/ ?( |8 L
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( Z5 f8 V+ C$ a! ~2 g
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
0 G! ^- L3 T4 c6 e5 z9 jMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
$ x6 ?7 i6 y* aMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);& ~" \  J( j# H! t3 g6 k5 K) Z
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
% m: z2 ]. p5 h! d/ A' c! w+ f5 T1 WMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */- ?. h; E- U+ m9 X: D% @& @7 b3 M& N
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);! p8 Y8 D1 N# `8 E7 R6 f* {: H1 j: [6 r
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
; @. a& G& c; t7 V. D+ X! r. XMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
, y: C7 C% }" X* g0x00, 0xFF);
/* configure the clock for transmitter */& g$ W) v( z! P% O/ {
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
2 C( n9 c9 Q$ |McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 7 ]3 C! g* t0 M& ~/ c% Z
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,6 K# u3 K. s5 G
0x00, 0xFF);
6 [$ I- `* ]1 U, {, ]
3 |! ?% d5 a4 D6 z- H/* Enable synchronization of RX and TX sections */
3 g% q8 L/ U& N% v2 @McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */; P: G% Y' I. ?9 W  V6 V
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
  Q9 J: c& a/ a, o$ X: PMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*! t* a9 w( c, `7 W/ l- U
** Set the serializers, Currently only one serializer is set as
/ C: G1 |$ H9 Q( O" _' X, U** transmitter and one serializer as receiver.
% G: D0 Y1 A. C- _*/8 S" F' W! U. {- A: y  A
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
- w: n$ E& J5 v$ y# R/ U/ o5 sMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*5 K3 v4 J+ t! A+ W
** Configure the McASP pins
6 k) c0 }9 |- ^, j. w7 m8 U** Input - Frame Sync, Clock and Serializer Rx
( g* ]. H& T1 P/ y& |** Output - Serializer Tx is connected to the input of the codec . j; b% c) H& H2 @) L
*/: p. ]; b4 |/ l. l
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);# c( p+ W5 J1 [9 \8 Y% A
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));4 q  p6 O$ ]( W. y2 H  R
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX+ }4 v) `( L. \) V) A
| MCASP_PIN_ACLKX4 z0 b  ~, S$ D2 G6 S+ d- Y' D. U
| MCASP_PIN_AHCLKX
# B# K9 o  s1 v| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */9 |* v" f0 ?/ ~
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 9 l9 }' U* l" W; e: x- i. i
| MCASP_TX_CLKFAIL ( _2 z) A: r4 W  ]& T6 O
| MCASP_TX_SYNCERROR
% ?+ N9 w$ J3 s) Z5 N% n, O5 L, o| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR / x3 `$ ?/ I8 I5 z5 n5 c
| MCASP_RX_CLKFAIL0 q/ w2 Q* M0 G# l; S
| MCASP_RX_SYNCERROR
% \/ N$ ?' X* M! r( G| MCASP_RX_OVERRUN);
* L" a: D6 }/ m3 T5 Z, f}
static void I2SDataTxRxActivate(void)
8 W) h" I" M5 g- h. g5 k{
% a9 B' m' v) c& r/* Start the clocks */. u2 g. @# v! W1 N# }! }: s
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
3 E' R  z8 P; |; h5 @6 N% a7 ~McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */5 A+ a; [0 [+ E4 N$ \/ A+ v( i8 Z; y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
7 N9 `1 y  K& Q* A* g: REDMA3_TRIG_MODE_EVENT);2 s7 [2 R2 P# n4 O: A3 g9 ?$ \
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 6 V5 w" C, m$ U! l8 O; P% K7 }
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */# [" e4 }% G+ ~# Y. \
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);2 c% M! e) F! n8 w3 L) U: e
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */) z4 x+ y# j" C6 T
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
/ y- F! A1 V: F0 D$ HMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);: q- r  R. U5 n3 r! u$ d
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);2 l2 H" U) J: D+ k" c
}

0 f) ~1 P: P# i: t2 C
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

5 _4 E* y! ]: ]4 @/ A) o) {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 16:31 , Processed in 0.039757 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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