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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1212

积分

金牌会员

Rank: 6Rank: 6

积分
1212
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,+ V& K1 z# s% ?
input mcasp_ahclkx,. O3 j: @- G7 R9 k' U
input mcasp_aclkx,. @% x7 h- y) U3 b& l
input axr0,/ T4 u! h5 q% B
  @) {$ s" ?! {' e" H
output mcasp_afsr,- m0 X3 y0 C, y/ U# i$ @) h
output mcasp_ahclkr,
; G% I3 V1 _2 b7 I9 f% r; ]output mcasp_aclkr,
0 u, r, K# L3 T* \5 v: @output axr1,1 y+ U8 L& v8 G$ e! y+ W' ?
assign mcasp_afsr = mcasp_afsx;
! U$ _0 p- Z, x0 ?) n% ~( m) Passign mcasp_aclkr = mcasp_aclkx;1 p  f  ^* o( l: [, k2 U
assign mcasp_ahclkr = mcasp_ahclkx;. ^* b' y0 _6 s, s2 x: P- `; F
assign axr1 = axr0;
6 P+ g0 u1 q5 P3 k
2 ~0 n! _4 E/ S
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

4 C/ u  k/ T! h. y! N
static void McASPI2SConfigure(void)
8 O  x+ [$ ~' r3 Q( N{: q6 L; [4 p# P6 x+ m" p* a
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
  l' M" J1 _. @2 U1 C5 M. YMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */' q5 P' G* m5 s0 y- P; {4 A0 s0 M
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
0 v0 i. E# Y7 {5 M' s8 M" gMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
4 @; p% g! _- @9 ?McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,# D8 b1 x! A0 a4 p, q2 g8 p) A
MCASP_RX_MODE_DMA);
1 v: }9 t) n& T8 b. hMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,5 q7 b6 n2 v# l6 f5 D
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
0 k" C  G* r2 z2 b, wMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ) v9 h  x  I5 C/ y9 x, b! X
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
! }" l0 |1 K5 Q1 MMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 7 Y8 {1 B5 b( }  Q
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */1 ~+ M8 i" L& ^, S
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
7 j# q' O  m( K8 u/ r: j- qMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 0 `1 O0 a. c8 l2 ]9 F8 s3 p
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,8 `+ u1 W7 D8 z5 }
0x00, 0xFF);
/* configure the clock for transmitter */
- ?7 E1 O: v6 {3 A" x" SMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
( A# H' C3 M/ ]8 x3 Y% CMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 7 K/ z5 u/ n# G" x) s- I) f
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,  g: O# o. O: f  w9 X$ ]
0x00, 0xFF);
5 K/ `4 ~0 \% a9 B3 Z
# _( l' u1 M4 D  Y, Z. H/* Enable synchronization of RX and TX sections */ 2 L8 N/ X" S8 r5 ~$ v; ?$ j- h( g7 s0 ^
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */' i' e% J; F4 V  |' a/ H
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);: {2 I$ o! b+ L8 W- u" t$ W
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*; z$ M3 @+ k; F
** Set the serializers, Currently only one serializer is set as' ~8 k. b, f4 l0 S8 g  g3 P+ `
** transmitter and one serializer as receiver.
9 a$ E1 f2 P7 \( k& Y5 b*/
3 W+ m) _# U, @' yMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);) q" _& {8 B1 u! ^  {3 q
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
% m* n1 x* m* w" O** Configure the McASP pins ' [/ L' n" e6 K
** Input - Frame Sync, Clock and Serializer Rx
/ x2 G( V0 e+ y" J+ T2 r, `** Output - Serializer Tx is connected to the input of the codec
1 [' @$ N0 t% r- m7 i2 D& b*/
" Z& J* _+ g1 f( e% [( E- v% N' eMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
$ |. C% ]. f' H; t+ hMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
( R2 {# t! \: K1 L& GMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX8 d/ [) z" a: D6 i
| MCASP_PIN_ACLKX/ U7 M# N7 X4 V1 K% E  ^5 u4 j
| MCASP_PIN_AHCLKX, J! S% [2 B# c/ U3 b) a
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
! u$ J6 `* u) o9 g2 V; V/ w" ZMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
/ L1 B9 G7 L1 s; n1 K$ c, P4 S| MCASP_TX_CLKFAIL ' O# M  n: `1 \2 V' t
| MCASP_TX_SYNCERROR
: t! d& ?9 e% l' }| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR # f: T' n' V/ e( |
| MCASP_RX_CLKFAIL0 Z+ ^; n: h/ r$ h4 G
| MCASP_RX_SYNCERROR
  z/ t1 C) z* ?1 O! r| MCASP_RX_OVERRUN);4 l+ p1 X5 V, e1 R2 T/ A
}
static void I2SDataTxRxActivate(void)
( m, i$ Q% \! s% F{$ v" a) u3 l+ u; r
/* Start the clocks */$ R6 e- Z. a4 f9 R+ ?" z# P1 ~
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
  ]/ X1 v. c3 Q" P( o) YMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
$ o  {7 E$ |2 OEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
/ W' L5 T( W6 zEDMA3_TRIG_MODE_EVENT);9 S1 c( E( U9 t. ?( e2 o0 A
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
2 T& H, ~: h+ ]6 REDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */8 ]6 f' ?- z3 N$ a. `* o( m+ d, z! P
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);- R- l! S& A6 U$ \9 w
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
0 H, b  n5 n+ _/ B3 g. e* S9 d3 owhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. K6 D( |' [  K% ~/ n
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);2 C# C$ d" G9 X% T8 d
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);3 L4 y. a# E2 N9 |
}

. I5 I/ M' E3 R, p- Y, `& G0 A4 Z
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* x- K5 u# r, r: n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 22:47 , Processed in 0.036622 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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