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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8490|回复: 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,
4 F3 V6 m( Y; f2 B9 h6 Tinput mcasp_ahclkx,% }& c1 m. g7 b- }
input mcasp_aclkx,
$ s9 i3 R( g5 ?! finput axr0,( f; T$ R/ [1 Y' ]  b$ g4 w
* L5 }2 p7 ]$ u3 S; @/ O- @+ F% x
output mcasp_afsr,# e6 \1 }& N7 H) g1 L' X
output mcasp_ahclkr,2 ]7 e- X7 i. s- X
output mcasp_aclkr,' A, X$ X/ Z2 r/ f0 M/ T
output axr1,! _/ z9 T3 V: p% ]" Y
assign mcasp_afsr = mcasp_afsx;, {) ?1 O  ^# c8 P* |
assign mcasp_aclkr = mcasp_aclkx;
( c$ s# Y: C6 l$ l& E( nassign mcasp_ahclkr = mcasp_ahclkx;* T% V9 {9 i: s1 n+ c* V4 b/ _
assign axr1 = axr0;

/ Q% s  N4 u( E! d" i, c5 ]* `8 `; g  A  S
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
) Z4 }- `) X( |: A9 `' B8 e$ q6 i
static void McASPI2SConfigure(void)
% E" Z  U! _& U0 l* B$ Y& g+ B0 n% m- s{
. G+ W# V3 w0 [McASPRxReset(SOC_MCASP_0_CTRL_REGS);
, w, t* u. I$ T/ G% d5 kMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */2 ?. J+ I8 t) o- E" e
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);9 ?" y& \( b2 b+ M! r: v
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units *// A% N1 G* ~' r% R6 Q  Q
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,5 Q# e6 u4 W3 h/ t4 Z4 a
MCASP_RX_MODE_DMA);
6 y7 R( X! M, Y. M2 ~0 KMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( l9 N! K6 ]% h1 @* ^( {/ p9 ~
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
; R: m) S4 B/ U1 t9 {McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 5 b% q/ x/ x4 O1 n" D- w& f
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);5 [. R' U5 h3 s- N( Y2 z6 y
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ( [# K1 c3 ?- A5 Q0 g& Z. ^6 P
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
# g! G9 p) l" Z6 `9 _8 r4 i) L4 E, cMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);* W* F5 }) S/ m1 k2 s
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 8 ?/ K! |- e! X% y' U7 I
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
7 q& P. _: ~" Y# G  T0x00, 0xFF);
/* configure the clock for transmitter */6 c+ k1 o" z* z
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
# w: b3 f" y8 R2 x$ c5 L* mMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
4 E" T: b( n- V' b6 C) U# OMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
4 Z/ ?% d7 s! O0x00, 0xFF);* n& Z( u; @8 x: I5 {& j9 M

/ C$ {- @1 B0 N  P& B9 o0 C/* Enable synchronization of RX and TX sections */
/ C9 b) Y) H4 |  A$ G3 _1 TMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */& R$ W7 |! I4 l! P6 c0 K( S
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);9 Q, Z0 [& J, z
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*3 S$ V% X: l' j1 c
** Set the serializers, Currently only one serializer is set as) O1 d+ Y2 o' B2 W) r
** transmitter and one serializer as receiver.
6 n  ]! E: l) Y9 D+ \: m* P*/
! G8 n3 C) ^6 R  b+ XMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);  X6 b7 L! V4 Z2 v+ [) |
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
& l9 `1 K+ H1 E0 ~5 S6 b** Configure the McASP pins
# l! ]( Y! ?; u% t$ N$ ^1 ]6 P** Input - Frame Sync, Clock and Serializer Rx
& W1 l* k7 u' H# }9 B8 i3 o** Output - Serializer Tx is connected to the input of the codec
4 x% @6 [. V7 `7 O+ L! H6 A*/
$ P4 C$ B4 q. d4 q( H) ^" B+ uMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);) f& k* D4 g- s
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
( l1 d6 D( `: n% `8 C) @McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX1 U3 a+ ?9 p4 {' @0 a2 p
| MCASP_PIN_ACLKX+ N$ k: s' H& G. y) a2 J0 _7 \
| MCASP_PIN_AHCLKX7 Q! {8 Y6 [! m2 U
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */1 v" s; P  o8 [# [+ `8 I, L4 D; U
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
9 ?) E6 k3 T7 j1 O% t| MCASP_TX_CLKFAIL
$ k2 y6 T- e  B8 [: R6 O| MCASP_TX_SYNCERROR' W! ?4 \% k7 M
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
# m0 f- k4 ]$ y, j( x7 m: [| MCASP_RX_CLKFAIL
- K% P0 B( U& N0 {+ d| MCASP_RX_SYNCERROR 3 z1 z0 ?# g# E1 w% D) \
| MCASP_RX_OVERRUN);
9 Q& J: m) O& [}
static void I2SDataTxRxActivate(void)
. w2 j# A( U* D2 v" M{$ X7 e7 y+ d/ p% B
/* Start the clocks */3 |" B% P$ |- w8 v- x! `5 A
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
8 X6 f2 e& k/ u2 e9 q* N& }- [; f) |McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */- Z: w) Q( A6 \( ]. c! {
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
; l% r, C, m7 h% j" K! p% I1 wEDMA3_TRIG_MODE_EVENT);) k+ T3 h6 d" z3 q5 v, v# L& M
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 2 ^+ [2 X8 k5 k: O6 M% g7 i* K
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */3 c: {7 U3 `+ X
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);( A( H& s& B5 R( Z% [7 p& s
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
* c, q+ x  t# Y& E+ [! Nwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
; n3 h, s+ P0 i/ rMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
8 ^( [# s8 l  \# t9 w3 MMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
9 q6 G, q; ~- W+ {$ a; s% k3 _}
6 u2 }/ e1 C- X* i, k$ q" ]
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
: P! \- D8 T& Y. r. ?9 l0 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 05:36 , Processed in 0.038589 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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