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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9187|回复: 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,
9 Y/ o- X$ I! B2 f5 Ninput mcasp_ahclkx,$ B3 g' E6 R+ G9 h2 ~7 v% b
input mcasp_aclkx,
& o/ Z8 M2 j+ h5 V% ?$ F0 M  f  pinput axr0,5 j$ ]. H' {: u9 O, t
' I1 g8 s' ?& J6 j3 _$ r
output mcasp_afsr,; \  f' l1 u, S* ?" ]& A+ M
output mcasp_ahclkr,
5 H* [1 D, C7 g- Poutput mcasp_aclkr,
; e6 X8 S6 o. ~' voutput axr1,
( `  T! i( C+ C( V5 i( `( }1 Y
assign mcasp_afsr = mcasp_afsx;
& T% W9 P+ E! g/ _- I+ Q  Dassign mcasp_aclkr = mcasp_aclkx;
' e- g2 r3 C+ E$ Passign mcasp_ahclkr = mcasp_ahclkx;
1 j! n! s. s& h0 v8 n5 eassign axr1 = axr0;

, ^% n! c) b. ]4 U& K* t/ E$ ?) L' b: R& f) o1 w6 n8 b
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
& P8 z0 H  ~4 [/ Q! ?7 M
static void McASPI2SConfigure(void)6 ]% ?2 ^3 ?' G" f4 D
{; I5 ^" b- Z# n: e7 a
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
) C7 m5 B. g/ }7 }McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
8 Y9 {$ G$ p6 d. Q0 I0 KMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
8 s3 @8 J8 v. f$ @8 a1 v6 LMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */. Z* s) o6 l0 F
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,* j+ w$ W5 J% P* E! s
MCASP_RX_MODE_DMA);2 ]/ L2 _( S4 @8 Q: e
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 n+ }) @8 z0 Z% Q
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */5 I0 B- h$ _2 _8 Q/ Q( R6 n2 T7 C6 r
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
6 {- a2 w: G# C% xMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);( t9 }* `  K, K/ ?7 V7 x1 n
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, , |, t/ n; m/ b) P
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
0 ~2 M% ^$ @) F' `8 _McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
' {3 i" o* e% lMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
8 r5 f% V- d) q/ l/ J  yMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 U2 G9 ^. r6 F) i  P: H8 O# N
0x00, 0xFF);
/* configure the clock for transmitter */
& m8 ^/ k- ?. ?: wMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
+ S  c2 l5 U( s# G1 PMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
- \3 T. j- d# pMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
8 Q* D4 B0 p) k( h0 K0x00, 0xFF);
5 E- @" n/ P( y* A4 e4 Z+ r2 T: ~
/* Enable synchronization of RX and TX sections */
+ s- U& j8 W! Y4 e. \% mMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */9 ?" [& D# U0 }( a$ n
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);0 t# K' S  J* s6 t. m2 Z; B
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*/ ^& f! i$ |3 L+ z5 k
** Set the serializers, Currently only one serializer is set as! K3 K+ ]8 ]4 F
** transmitter and one serializer as receiver.
4 L5 P8 g7 k$ l$ x9 H*/5 p1 n. G4 x5 D; b6 r
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
6 _) N9 U4 f( G+ T8 T) I; f! WMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
# t6 f3 _  R* D# Y+ Y, A3 C, r" ?** Configure the McASP pins
( O# t; Y* h. m4 O9 ^** Input - Frame Sync, Clock and Serializer Rx) p& {% j- J$ Q
** Output - Serializer Tx is connected to the input of the codec . |% a% d! W' Y& I
*/# t4 z! Q# j4 {4 j: u9 P. ~$ j& f
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);8 j1 w7 o9 a7 p# F- t% ~0 e. s4 \
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));' R: C' `. p( c* w6 v0 _
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX. R  Q+ q  X' U$ ~/ B
| MCASP_PIN_ACLKX$ Y8 r; I& e- F( s+ H  G3 Z
| MCASP_PIN_AHCLKX& j  l# @8 @0 }2 v) ?
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */9 ~8 B! N) I5 `+ K# _8 b4 P4 y
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR & N' T+ ^2 w) v5 s! w4 J& w3 b1 `
| MCASP_TX_CLKFAIL
' W( M3 D: G; |2 x8 ?| MCASP_TX_SYNCERROR' L- h$ N4 a/ r3 m3 H" Q
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
. {  i( i  ]" F5 s' [, G| MCASP_RX_CLKFAIL
& _" Z  u3 U4 t, c: }: }( V" A! u1 i| MCASP_RX_SYNCERROR
/ r& `5 x: ~* O6 @* X| MCASP_RX_OVERRUN);
! s' {: Z# }* Q9 @: q6 }}
static void I2SDataTxRxActivate(void)
& ~4 l$ O/ w2 @" o- S. i% y{
; e% c7 A7 T3 \; V/* Start the clocks */! ^' ]3 b# U* P6 }2 ]5 ^4 s/ B
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, @' h' g! _- B- M
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */( Z! d6 z) E7 Q7 f( _. z  N
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
* N5 z) g% S! P1 T- Y# x9 g. {; vEDMA3_TRIG_MODE_EVENT);5 k( B' N$ N7 P- P
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, , X2 {, _2 D( j" X6 \
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */, P4 R( c4 m! J/ B0 Q
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
: k% i4 h, A" I4 k1 _: }McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */. t$ i& Q" b2 z3 G. N9 m0 E' l3 w
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */3 {8 m: `. @* f6 A! k
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
6 O& ~9 C+ e+ ?( Q& Q7 jMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);5 \. T& P% _- |: |
}

3 d/ ]1 h% C( X: \  C( [
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

0 N; l7 |. z( T9 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-26 15:20 , Processed in 0.038681 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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