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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11765|回复: 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,( K7 l, {. Q, j* U5 g' A: w
input mcasp_ahclkx,4 C# |% D& o6 a4 D
input mcasp_aclkx,& b, V( x, b3 A$ x  y. R' ~/ `
input axr0,1 i1 ~6 h) N6 I0 e3 S4 G7 `! x
$ b' E6 C$ g5 f
output mcasp_afsr,
) D( ]* l- V. toutput mcasp_ahclkr,
9 o' F$ W6 z: A' Ooutput mcasp_aclkr,
  g% D; d( q  ]output axr1,# Z# I8 r3 _$ [8 Q
assign mcasp_afsr = mcasp_afsx;
# \4 ~! u' O4 h& c: o% s# v2 n' Zassign mcasp_aclkr = mcasp_aclkx;7 d5 m( C; J7 l: y
assign mcasp_ahclkr = mcasp_ahclkx;; e1 ^$ g+ u# z% z+ o
assign axr1 = axr0;
% c. _  y1 @. ~" L
/ y) b" O1 M4 G  J2 D5 _) A
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
: O% _- @1 b3 w
static void McASPI2SConfigure(void)+ N7 H! B% e6 p# h
{
6 m$ B9 D, y5 p9 H& yMcASPRxReset(SOC_MCASP_0_CTRL_REGS);% P" {5 |" o; d% q% {  h2 c( {
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */6 g( Z0 R7 [/ y: O
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);. E6 b1 l# v0 u( {& e
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */' `8 q* N) ]6 Y, ~( e
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
8 Q, v6 ^4 Q5 V: yMCASP_RX_MODE_DMA);* T% O# X/ v9 A8 p9 {
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% |* \0 ?3 Q: D+ E5 kMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
; K5 D2 T, y1 c; q) B* ?McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 6 y0 B. m8 w4 U/ N& A6 o# ]
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);6 v$ B. H. ~. i; e( h8 r
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
' n6 f6 `, w3 u4 w2 S% aMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
4 m3 G; x5 V2 HMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);  X0 V0 L7 ~' i6 H% r  }
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); % F! R8 ^" r( \. }  e
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
4 g4 C2 P5 _( i0x00, 0xFF);
/* configure the clock for transmitter */8 l; e* K% s6 [* F/ U
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
( P$ k. j; l. e) aMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 8 ^( B' H9 r3 i) j& Q/ C
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,0 a! m# k* L+ R0 r" x( r
0x00, 0xFF);/ W8 o4 g& R$ _6 W6 r

3 ?$ f: e' h1 h+ ]+ M. `/* Enable synchronization of RX and TX sections */
. @, ]" T, U8 s: zMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */) F/ a2 O& e. u# `7 i/ p
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);. C" o- Z/ K3 m3 S* h% W
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*: _# ~% ~! c$ N3 Q4 u3 f
** Set the serializers, Currently only one serializer is set as
. d' J2 ~+ T' ^8 |$ u3 \, r: Y** transmitter and one serializer as receiver.
$ Y2 [; }8 k  k7 A& q*/  v2 M3 ~; A( l$ s# a, i
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
. ], o' p& I% n% g0 j, SMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*2 n8 _1 x. V7 e9 y- {7 M3 b5 I
** Configure the McASP pins 3 t; W% H- @' x0 @& t' }
** Input - Frame Sync, Clock and Serializer Rx
' i" i1 @" z& q4 T, f& G" @6 ~  B** Output - Serializer Tx is connected to the input of the codec
+ n) c8 ^, j; L*/
! V4 x( Z! w- V7 yMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
7 k. e, r" s6 C& V# q1 QMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));' J! W: P7 Y5 O4 K
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX( s1 W! N7 f4 Z4 V! ^
| MCASP_PIN_ACLKX
: y2 B' j. q9 E# Q  M4 W| MCASP_PIN_AHCLKX. ]9 j( \% N3 ^4 f# c% X4 @# t
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */* w8 B( U& u/ z; l: H
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
) K4 \* J/ F, T( Y( ^& ~4 C| MCASP_TX_CLKFAIL 9 j! g- R( |2 I; @; M  r
| MCASP_TX_SYNCERROR$ L) t; F8 H0 c' G3 ^0 O9 Q
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ; S5 q0 A* }$ S  O& q1 R
| MCASP_RX_CLKFAIL7 X$ K0 i! B" \/ H6 }2 d
| MCASP_RX_SYNCERROR
+ u% C* q; I2 S| MCASP_RX_OVERRUN);
; S, C2 D; W2 d" J9 g8 q& E4 t* }}
static void I2SDataTxRxActivate(void)" ]  @4 \, c- y- K: m
{
2 S( c- {' q/ M3 R7 p# Z/* Start the clocks */; Y/ Y" f( o) P
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);7 w/ G+ Y3 \3 Z% B
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
* r! r: O" x# Y7 h* _9 V$ AEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,2 k" \9 O+ _1 e6 Z1 F
EDMA3_TRIG_MODE_EVENT);' {4 B2 c; y$ Z- I6 B0 B+ H
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
  `9 c$ L- n$ W- P0 x( W6 N6 jEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
5 L# a/ N' G/ ?3 uMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);& c) Z8 j7 F( f) x$ S5 a0 M) _) a
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
" Z2 N! h: r2 A' Swhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */% Q9 N: ~" H7 y: b0 p* q3 s* k
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);# N$ Q6 ~1 f( N5 h7 |
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);8 b5 [- g( R; k0 S# b* m
}

! o, C2 v1 Y. m( ?4 q1 i2 J
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
; m6 [/ N; G% ]2 r- Y/ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 14:44 , Processed in 0.044587 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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