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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1213

积分

金牌会员

Rank: 6Rank: 6

积分
1213
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,# @9 X- q9 S* ^( @( h) d
input mcasp_ahclkx,. n; k1 [% E! ~4 m& w/ c: p4 {# V
input mcasp_aclkx,* L7 c' \: s1 U, j) L/ l  I' o; ?
input axr0,
4 Y7 {- ]5 _# M+ r" Z% n1 _
$ h) u# b. _5 @7 P% zoutput mcasp_afsr,
$ v1 x, ^3 o3 I, U! O8 routput mcasp_ahclkr,. Y# j' f, m" E/ Q+ }
output mcasp_aclkr,8 ~8 N3 N) l/ P' Y
output axr1,
' b1 H, Z% m- {, g) d% Q5 q2 l
assign mcasp_afsr = mcasp_afsx;8 a0 H* }+ _% m( F) u/ k# W
assign mcasp_aclkr = mcasp_aclkx;
! n5 V' c$ Z' jassign mcasp_ahclkr = mcasp_ahclkx;
' C7 y5 B5 n# Q0 T( hassign axr1 = axr0;

, I9 N& T5 n6 a* X1 O; `
- w: _+ F% |2 Q3 U
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
0 M1 R+ _9 r& [
static void McASPI2SConfigure(void)6 m- t- a! x3 k: ?* B# ]
{2 v  Y7 t, p/ o) v8 M1 H
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
4 s2 B% @! j. r  g2 C6 U- k! qMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */9 O- s* d$ _8 A/ P0 Q5 k! R
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
5 i) M9 _0 g6 G+ J2 IMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */$ P  e( G: n2 V6 c
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,+ W, Q! ]7 _5 Q/ w% q  C: P( ~
MCASP_RX_MODE_DMA);( }9 Z! d( V8 b8 k: x  G) a
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,! j1 T5 {7 }1 a2 \" m" _
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */; [, N$ @8 f) |0 X# G9 s/ e
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, $ U- X9 j0 V; t4 G$ \
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
& U5 U  W9 r1 p# r4 e8 G' G$ f+ @McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
* ~6 U$ ~' [) jMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
- @. n% U0 j/ c& k3 o- X5 b- j2 kMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
2 z( N  v/ t3 h. D+ i5 QMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
6 H$ ]. w* u5 j  y6 p  b8 W) `McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,8 w  ^: ?) o, `. T5 ~6 z& d/ c( \3 k) @
0x00, 0xFF);
/* configure the clock for transmitter */. B: O  F0 t0 z% \0 N# K
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
6 t, ^; D! I7 f7 ~& }McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ; w% ]8 Y, S$ ^7 e
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
5 f# m( S& t; z4 n; j8 Q4 y; h0x00, 0xFF);
, k2 N2 P; w7 ^& A3 P' S/ P5 g
% o4 S: f, \8 i/ s3 c/* Enable synchronization of RX and TX sections */
% ^4 v, ^2 z- l0 Y# N6 M- E. ]McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
, H; X+ v! L+ c! DMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
& S' d7 W4 |2 F5 o# ?McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
" I4 E: y) ~" Z8 L** Set the serializers, Currently only one serializer is set as
' b( o9 J4 e( ^! k3 M** transmitter and one serializer as receiver.
% M0 ?3 L  e% K. x7 j+ u*/- B; e. Q1 i: n, Z6 L6 W' y$ n
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);9 y. W9 [! }1 r8 [3 k. }; F0 x
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
# X# v" M) @6 T2 ^' r** Configure the McASP pins + Y& z' a# Y% Q) ]$ `  d4 G
** Input - Frame Sync, Clock and Serializer Rx
1 }! _6 g# o8 t' i** Output - Serializer Tx is connected to the input of the codec
7 e, l, ~' t! C" d  t9 G% X; \*/
/ x5 a4 o( G6 M4 A, B! }+ IMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
$ y  n; k+ G2 s7 u9 SMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
7 L' D& \  G8 Q. I, ?- JMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX* @; \$ q& p( ^2 o
| MCASP_PIN_ACLKX
7 [7 A* O$ S6 D" d6 X| MCASP_PIN_AHCLKX2 u  I. `0 X+ ]; I9 i
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */8 E" m- I- X6 J$ a4 R9 X$ S! V
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ' }1 d4 y: u7 C  a5 J# Q; R6 U4 L
| MCASP_TX_CLKFAIL
* B; D' A; B! o8 D, n% j# Q| MCASP_TX_SYNCERROR3 y6 s, y. o4 M) A4 X+ l: H
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
- x8 b7 T, g. Z  o; M) `| MCASP_RX_CLKFAIL
% H& K( _4 d0 M( f$ v. }/ a- I+ n4 g| MCASP_RX_SYNCERROR
8 |6 y9 m" v" E3 W| MCASP_RX_OVERRUN);4 R7 p) U& k& `) m5 |" e2 o
}
static void I2SDataTxRxActivate(void)
% p4 V! K8 O* y{( |! {* i# a4 a+ _$ }; H
/* Start the clocks */
: v- n: l3 |" Q8 I* v2 N* ZMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
3 o( T: t6 B- c; P6 wMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
/ y& Q. |8 E6 y* J8 n) x6 s  p- nEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
, L9 l& m( S' {. @4 k7 u; iEDMA3_TRIG_MODE_EVENT);" |. M$ s+ y. A' M
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
: f) P' w, Q5 W3 _9 X+ s2 H! i0 @EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */7 B9 n* s; |/ m) H- u4 t3 t$ o
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
) ]$ {$ o$ C) n$ v1 ZMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */! v. w) Z6 l( q- }$ k
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */! v: A/ k+ b: F1 P4 V& F  v
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);- L  Z7 H  B" ^" M2 h$ l) |7 t
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);% ]! T" P# b# L/ L7 Z: c, ]
}
$ K5 f4 |) \& d8 F# N7 \
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

. g3 H) I! F: D) n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-10 07:40 , Processed in 0.040744 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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