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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11654|回复: 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,' s- o* ]4 e2 m9 Q/ k
input mcasp_ahclkx,
9 s$ o+ O2 S. O6 Vinput mcasp_aclkx,# d# C8 p. K( u& x0 r4 @- |
input axr0,  y3 m. ^9 U* s  u
; [3 {  t( J. s7 @
output mcasp_afsr,
# @$ Z$ k0 U9 e  A9 ?, A9 n& voutput mcasp_ahclkr,2 v  j7 l$ x* F4 Q. Q) B# d! @' ~
output mcasp_aclkr,
9 |/ U3 ^+ Q1 I3 u* w+ Ooutput axr1,+ L1 [, e! [0 `9 S! t! X
assign mcasp_afsr = mcasp_afsx;
: G: `0 C/ s( Y7 N; b, F5 vassign mcasp_aclkr = mcasp_aclkx;0 k. X  W" E- o* r& ^* T# b
assign mcasp_ahclkr = mcasp_ahclkx;  U& u6 ~$ s+ g& R4 `
assign axr1 = axr0;
5 P1 d1 Z- O5 Z$ Q4 @8 y. Y( ^

/ u. D0 F0 ^# Q* v# C; e
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
+ G4 Y. ]; z2 K. v9 Z: v$ ^# m5 Q
static void McASPI2SConfigure(void)
1 \+ P! F. i; \$ E{! q* W. T) w& l  N1 u' W+ Y! u
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
6 Y5 q4 v0 G% v6 v; S3 k* u' @- CMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
9 u- E. v' i' x1 O! fMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);1 m& p, I; H2 \3 ^' l/ D/ x) Y
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
- N. {7 v  i/ m" f3 i3 |McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
- ?+ E0 Z; P4 SMCASP_RX_MODE_DMA);
  o+ H( c1 G; UMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
9 `$ P/ p; ^* j" s7 u4 r/ m$ B! ?MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */2 c4 b' O, u* L3 i  }8 M5 O
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ) _( c% a' o& M" T$ A1 X
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);2 ?* H1 D, \8 K. H- w
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, & {" v- Y6 m. d+ v3 x9 \- e
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */8 o0 p% h8 i) p- P2 m3 u& Z
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
! u' i+ A- u& K; L% NMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); : r) K. j" O" g1 P3 g! I: m- e
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
- V9 ?  b! x1 X. c- y! @0x00, 0xFF);
/* configure the clock for transmitter */2 M' A/ Q# \+ W3 b  i
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);+ e3 q/ D/ B7 c) }' ]; d& z# s3 ^
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
) |5 i+ I0 g9 B1 ~# GMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,0 h" }1 A) V) J- Z  y
0x00, 0xFF);
" b- l2 C2 j7 G* d
$ y9 C' ?$ Y& A# M3 N; W+ V/* Enable synchronization of RX and TX sections */ 9 C0 ?! A. l* K) }" ^
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
) {5 Q+ M" ^& L8 F- y0 T5 |5 KMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
) y9 ]5 T8 b5 O" D3 ^  O& e, }2 PMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*# {6 I! x9 Q! H& M% Q
** Set the serializers, Currently only one serializer is set as- I' a  Z0 _# t2 s/ d5 K! g0 B
** transmitter and one serializer as receiver.
0 T4 n( X6 {, {, X- n*/
4 }2 s7 ^2 x1 [' O1 Z) w. gMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);9 p; \/ k5 B; [2 k( }- A+ z
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*, K/ l! C- X! ^' p9 Q/ s7 Q  u, v
** Configure the McASP pins
4 P. P; r; O% c  O1 O9 ]* I+ d" R** Input - Frame Sync, Clock and Serializer Rx' w% x# V% O, X7 p8 H/ r, E  ~
** Output - Serializer Tx is connected to the input of the codec
' N4 F$ V! t* X6 d4 ?, t*/
; z% C( t) I6 t, i" AMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
$ _  a; L- [1 k* v3 @& GMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));* n. _& [5 d0 f" s
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX' \3 F' {. ?- L2 ^- M  ~2 o
| MCASP_PIN_ACLKX
) v; M+ m2 q! S4 _| MCASP_PIN_AHCLKX
( @: I7 }( G( V) S9 c: X9 C| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
# q- [$ z8 |# _" E4 cMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 9 \2 x3 a, }6 @, P1 j3 J" p, Z/ U
| MCASP_TX_CLKFAIL % X* ?1 N6 f! ?; J
| MCASP_TX_SYNCERROR+ ^- f5 H* T4 ^9 V$ D
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 4 B# q1 p$ v$ Z
| MCASP_RX_CLKFAIL
& q) C* b% V$ T( U, u% E| MCASP_RX_SYNCERROR % Z3 K: n2 z% L" D* [
| MCASP_RX_OVERRUN);
, J5 J1 E& e. K& Y9 r9 w) |}
static void I2SDataTxRxActivate(void)
& B5 N6 f; X* f. _7 ?+ h5 X8 g2 k{
0 H% e! t! P4 W" B6 Z" ]2 ~& _) X/* Start the clocks */% j8 ?& p& }$ ]1 _% r
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);' @* O! h  P% U6 H! D" h* F' N
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */* o3 `: _4 N  t6 ]5 B; G
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
/ a0 ?: f8 A( f' X4 T$ o8 G$ ZEDMA3_TRIG_MODE_EVENT);
: b% k$ \; P# G; B0 wEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
7 M$ e9 O  z' u3 r3 a: \$ P# ^* ^7 H5 bEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */3 r) G; @3 K" M) B! B+ r
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
: `" m. W) T) Z' ]; @5 _. I; l6 bMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */3 u# D* j" ~! _( L$ K( W' y4 ?0 j# B
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
8 V1 n9 V& d7 q& I0 i3 ZMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
4 P" j' C9 ], W/ m: ^! kMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);' Q" L( z3 K- ~. F4 N# T4 A; u( B6 O
}

% U/ a; L, m4 G4 a
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
6 G0 i; m4 R) h% U# d  Z1 Q5 [$ T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 00:43 , Processed in 0.040808 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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