MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1205

积分

金牌会员

Rank: 6Rank: 6

积分
1205
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
7 f& r( @9 H5 Kinput mcasp_ahclkx,2 @% x$ j. D9 n/ l( j) {
input mcasp_aclkx," e& Q8 Z8 y( \7 \8 u
input axr0,
: r4 [6 E( j5 ]3 H, }' r& W. [9 @( R$ y. U+ m
output mcasp_afsr,
) c  H& _- B4 y# Noutput mcasp_ahclkr,/ F. R* @" H1 {, e/ _# G7 o* s; D
output mcasp_aclkr,
9 A( C" j5 c1 U9 P5 E/ s4 Joutput axr1,
, ^& P5 M- T. d' [  H( n5 j7 Q
assign mcasp_afsr = mcasp_afsx;7 e. e8 X8 p5 N. Z
assign mcasp_aclkr = mcasp_aclkx;& x& S; b; W* c2 e
assign mcasp_ahclkr = mcasp_ahclkx;
4 C' [  ~; C8 U9 F% B, Zassign axr1 = axr0;
( O2 ^8 o/ h! D5 g7 ]  T
+ \& P/ F1 t4 R0 m! M- N  J
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

9 N: f: `. c4 `; f- z, \* b3 X
static void McASPI2SConfigure(void)' L! k+ d  O, A2 s) v
{
; ^: |' b. p  |0 ~McASPRxReset(SOC_MCASP_0_CTRL_REGS);2 G' }$ H* h% i5 ?, N
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */2 {" j7 m0 y3 l+ e1 m% y
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
, ?9 H: U$ B& E7 {0 t4 ~McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */" t9 \9 l) ^) o* G. u1 e
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,; v# R! o- n* ?1 c7 Y
MCASP_RX_MODE_DMA);: o8 u2 I) K$ W8 m0 I
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,/ }4 Z: \3 j" n1 U8 ~+ |3 \* H* u
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */1 S- l: d) p9 S7 O2 _; n3 ?8 A' `# E
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ) Q, k& ]  O' j( o
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);: \' z+ K( ]$ V
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, $ E0 S: p; @. |* E$ g4 @# V6 t  C
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
/ A/ O" r( k+ s8 N2 H; gMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
; `9 o2 \" \- X% U1 J& L! @McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 3 n; R% u( E& s8 w
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
5 h2 u) j7 Z6 ]' B3 X2 E# \0x00, 0xFF);
/* configure the clock for transmitter */$ ?5 L! H4 t+ w* R, Q/ M- q0 ]
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);& f, g5 a+ r8 j- m( f. h" ^5 g
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
3 V) z5 `; E4 g4 I7 u% vMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,3 s$ y2 |6 i( o' w: T
0x00, 0xFF);% y+ ]$ c' W, i2 k6 y

  H; y" w$ C2 n, {  T/* Enable synchronization of RX and TX sections */
9 a3 c. I5 r" P4 |) JMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots *// ~3 y" r4 L5 _% W4 }
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
& r! b/ ^) g# c# u: K8 e9 |McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
) z# r* n: R: }1 r5 X. z** Set the serializers, Currently only one serializer is set as
. n( Y1 |; Y2 y1 D: _# x) T! C; b** transmitter and one serializer as receiver.
" i; l  `* m- U0 Y5 k0 e*/
" x  p, N( X9 N+ L9 J: E* v+ N6 dMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
7 t, F8 L4 B9 p: d; t2 m  g# j( x7 `  NMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
: D/ E9 a* n: w, O0 v** Configure the McASP pins
, a4 X! V% Z6 y* i** Input - Frame Sync, Clock and Serializer Rx) j1 _5 i! r) e& L* [
** Output - Serializer Tx is connected to the input of the codec 7 T. a& J# x' t
*/
: o; c: D7 r5 i* G* |/ AMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
% r" ]' a/ D, R% y. C- L; i6 sMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));) J  H9 L* o4 j0 e0 Z
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX+ i, R. S; s/ j$ x5 n" \
| MCASP_PIN_ACLKX7 ]4 J+ t: B% k- I
| MCASP_PIN_AHCLKX2 M2 q* {! X+ e1 U% U, |9 S
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
/ r5 D- l, q4 s; W6 BMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ' p$ Q8 a9 \: P3 T
| MCASP_TX_CLKFAIL ) t9 n  {4 L$ }2 d) T, k
| MCASP_TX_SYNCERROR( y0 u; E7 w0 x3 z! w
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ) V7 O4 E' C/ \5 O: A  X6 X1 X% @
| MCASP_RX_CLKFAIL$ {- G- b6 d( b$ x* s
| MCASP_RX_SYNCERROR
+ z! F5 h* ^, b* ^! F$ j| MCASP_RX_OVERRUN);2 Q" l) G% C, u5 Q. w6 o
}
static void I2SDataTxRxActivate(void)
; A! v: \8 ~4 |; R  W, q9 |4 a{
; l1 h" f* m% w9 F0 d/* Start the clocks */
( e0 ^  q6 X9 Y/ j" C2 {5 HMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
' Q: g- a9 m* R6 o7 b8 i; VMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
% @, \7 B% j, w* f' E$ }9 [EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
. p9 t& z/ S' Z( N. F0 O  }) g6 ^( _8 bEDMA3_TRIG_MODE_EVENT);
8 N( i3 }9 ]6 ~9 ~EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ( v! }# n% z# Q: ^
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */7 A$ b: z! s' m6 F
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
. ]5 Z( `- [/ R7 G0 P2 jMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
- J* @& e: m4 N2 V6 i0 Swhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */& s$ h9 Z( }( `: [0 R* \7 R
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);8 M8 T7 E% g4 d2 u8 |3 G4 Y
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);; g, S1 j8 G  I. c- t. i7 Z* ^$ Y
}

! G3 w0 R/ l) |; u5 H2 ~- K$ D, a
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
$ R, f# K4 l4 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 02:19 , Processed in 0.041161 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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