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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,8 `; z) r0 M2 W: h! t' z, E" K7 I
input mcasp_ahclkx,: n; g6 \0 r8 }
input mcasp_aclkx,
9 Z* [  S* k# }+ ~2 ~% U( F7 Einput axr0,( A0 B1 G1 Z: ^7 h/ N
$ \7 B7 _5 g; w) D/ k
output mcasp_afsr,8 S* z/ ~! ^0 |4 @) M2 c
output mcasp_ahclkr,
8 z) r$ [( h( m2 Q* Youtput mcasp_aclkr,+ \- b* _' x* x) h( F
output axr1,
, w8 [. l( d3 _6 N) y* `
assign mcasp_afsr = mcasp_afsx;
: R: M9 J- F) ?; `) Tassign mcasp_aclkr = mcasp_aclkx;
- ]( B' n$ z$ C2 a7 b5 Fassign mcasp_ahclkr = mcasp_ahclkx;6 Z# z# O1 U3 Q# ~( z
assign axr1 = axr0;

% l+ r  s% {8 n/ k8 X! y" d4 _
9 Z& i) S6 |+ ^5 \9 a& b6 {* p
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

9 X$ B0 G1 R# Y2 g8 E  B7 P
static void McASPI2SConfigure(void)6 ^2 H9 T2 ?; R3 {% ^
{
# q" _) K0 H* F; [% xMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
& w% Y: {$ S/ N$ m! rMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */6 B2 D/ @& _' `- @  T
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);1 D- R3 K' k9 J+ z& _( b
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */8 E. g" T3 b* C6 }% a
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
, M- q/ |* g( @MCASP_RX_MODE_DMA);- @8 L+ v. l" c. o- u
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
) i+ M/ ^; U6 f2 t4 GMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
" V" R# G$ h; R6 A2 U- C1 AMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ) N8 \  ~: c) h1 C4 X2 b
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);5 c% m2 {% i6 w, @6 Y& n1 q) v0 `4 ]
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
/ z7 \- t( d. w2 Y- G+ D: C) {) EMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */$ h0 x* L5 w( s" r2 a7 C
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
2 v& h8 F9 v2 wMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); + B! k9 {( L: K# n7 i. L
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
+ ]: ?. [6 s0 ~3 R8 Y- F0x00, 0xFF);
/* configure the clock for transmitter */
, Y' n+ ^! l' O: x0 J  J! }# P2 C; S* rMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);: _) b) L' v0 E: n: x; U: Z
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
) d9 F" K4 W* d, b$ W/ I4 Y+ aMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,% X9 g; B8 L5 j
0x00, 0xFF);8 c$ H$ G! R" C1 i  C: l

4 J/ S4 P* Q7 y7 W3 ?0 `/* Enable synchronization of RX and TX sections */ , ~( u, ?6 V" t) j
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
* F% `2 n: M9 k" xMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
; f/ h7 C) ^1 t, R' r: ~( iMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*% {6 O: \8 g$ a' m& u( ~1 o
** Set the serializers, Currently only one serializer is set as& I; ~1 [+ Z% H3 Y" m
** transmitter and one serializer as receiver.
, L; ?  j1 @( O5 R*/
: Y8 U0 \2 x  ?3 d, E) ]McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
1 v4 P7 i+ m* j$ uMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
6 V& y5 H* m+ N! M** Configure the McASP pins
; O) B6 H1 Q! b/ C$ J! f** Input - Frame Sync, Clock and Serializer Rx2 V. u8 ~- X5 y1 t  N* ^
** Output - Serializer Tx is connected to the input of the codec ! u" S8 U- t$ j! B. [' _
*/
4 O6 d' s9 N0 T' O' K  K/ K! [McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);8 ?- \& s8 }7 L0 G
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
, m/ j' M  S* @: n  e4 m! qMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX& j8 |' a$ s3 O3 a
| MCASP_PIN_ACLKX
( U4 u- L$ z- f( _% L8 {# M1 G| MCASP_PIN_AHCLKX
. z3 q3 J3 {8 q1 p0 S9 A0 f; ?| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */, U5 v5 D% A- e* P
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
5 C" }0 I9 ^% ]4 j0 E) u) t| MCASP_TX_CLKFAIL 8 ]8 N" ?/ v3 d; l# v
| MCASP_TX_SYNCERROR+ U* A4 ~& a) a+ T" M) `+ E9 l
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR # c7 J& W; d& j. }8 D2 b
| MCASP_RX_CLKFAIL
' |; R! v9 k, {; x, \  B: `+ p& g/ J| MCASP_RX_SYNCERROR % }" g$ H/ A1 j6 J
| MCASP_RX_OVERRUN);3 O5 c4 Y$ ^4 J, ?3 A! l+ m8 {/ m
}
static void I2SDataTxRxActivate(void)5 [& G  X/ i+ `% Q) z. V
{' D+ u# D1 z$ I* k/ q* `9 w# X2 D
/* Start the clocks */3 q" I; t% X( t- ^9 K: I3 C% N% d
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
: O. ?& ^6 {7 V3 w, k$ M8 ?! SMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
, `! M' l" C( S2 b' |) H$ I; PEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,) {! @) A9 M9 X
EDMA3_TRIG_MODE_EVENT);  d/ F8 b1 M- @# T, P
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 0 E7 J- a' d+ b9 o+ @
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */9 q, i% n: r( X6 b$ C+ c
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
4 N& r' u" s2 m1 I/ vMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */7 a8 B' }5 |; Y3 X) h
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */) ^# n  Z9 x% a, B6 s) n: I
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);0 d8 Q: G  p: U4 e# c
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);* i, B  D& b' Y$ ~. U/ X
}

  a) s% B9 @" \2 e' g
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* c7 b9 q' O8 t; y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 09:17 , Processed in 0.043231 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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