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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11371|回复: 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,
4 N8 s* t. m, V' j: O  r3 A) sinput mcasp_ahclkx,* V1 R- X! t( y6 a6 Z
input mcasp_aclkx,
1 L- x8 c" w* v6 L+ Hinput axr0,( t, D' S- |  l8 v8 J/ C

5 @0 J- n9 a9 x/ v( |1 D9 C, V0 \output mcasp_afsr,
$ [( D% Z, i8 `output mcasp_ahclkr,
  K* x7 r0 D9 ^7 e0 w# t4 Qoutput mcasp_aclkr,
3 x6 q8 o  M8 k) _1 b9 V; X( ooutput axr1,
" {- e) f. `- Y
assign mcasp_afsr = mcasp_afsx;
9 r. F' O3 D8 t( h0 _assign mcasp_aclkr = mcasp_aclkx;' g& @+ s# y$ w) R+ Z# p
assign mcasp_ahclkr = mcasp_ahclkx;
- T. O, W+ k5 D9 r' X4 t+ Dassign axr1 = axr0;

0 z; |/ i5 I5 I8 w% c! M" G0 Q& M( O# n/ c+ d
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
8 @" L. ]$ r& d" L$ b, T
static void McASPI2SConfigure(void)
1 M* V% p; h2 G, S& O1 P{+ c6 P; j! @1 u( J9 o. Z
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
* U4 I. P; y7 d/ S1 MMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */0 q, }, N4 ]$ O
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);& H& y) `. x$ L+ U9 m/ N8 q  T
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */# d- p8 ?% @1 J! c
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,7 ~: ?, Q1 ~( y- W
MCASP_RX_MODE_DMA);" L% v" @1 }% O) n8 z4 F6 S$ f$ j1 n
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
# |) X4 N2 Q/ k5 d9 q3 f7 s* @MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */6 L5 |8 e7 }  i( {) d+ T
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
& P2 T" w9 r0 B, z" AMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
" B8 |, L  S& Y- `7 a- ]McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, " Q7 _6 C; p1 ]
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
4 U7 b: K8 U1 F2 ~: }# }McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);9 `: {! p7 D7 v! t5 t
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
3 N7 \: `1 Q5 @9 J7 AMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,6 ]7 ?' Y" L8 L$ Y  G, G
0x00, 0xFF);
/* configure the clock for transmitter */- s4 d2 C3 }! G! H% r' e& P
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);8 h9 [' ]3 k2 b0 q- U
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
2 k/ U& I/ r" U5 W# M2 o* u# H7 uMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
! E/ F9 K. G1 d& e- K0x00, 0xFF);
! e8 n% w, R1 Y  P; M3 z3 r8 h0 ^
( z$ }  \8 I! Q8 d7 ~$ Z/* Enable synchronization of RX and TX sections */ 5 x( X' J& R- y  H: Q, V
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
' p4 u0 z3 q8 tMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
7 }6 r) f% j3 S, D' J% |. o# Q! PMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*7 |9 Q( N" V8 E! N2 P; ?6 `& u
** Set the serializers, Currently only one serializer is set as8 i4 h9 ?: L2 n% s$ `/ v
** transmitter and one serializer as receiver.5 A  H9 J& x* Q1 b
*/# b3 m, V/ f* f+ i+ C) `  d# o  z: Y1 \
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
5 w  E# d+ m) T; ]! z& tMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*9 M* i: }; D0 d" g) Q. }; b
** Configure the McASP pins
7 E( ?( p- V$ [# v1 e& Q8 P8 l** Input - Frame Sync, Clock and Serializer Rx
8 Q3 `  C( @4 N1 U** Output - Serializer Tx is connected to the input of the codec
3 J6 v5 O) t+ Y- P$ c*/' |- V9 |/ {- B, s  N/ p
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
- \) c2 m( {5 t* Y- i1 ^McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));$ a2 y" j# I: k) p' u& }/ Z1 m) z
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
8 [. I! T; h% q& K| MCASP_PIN_ACLKX2 v5 p7 c" u6 L$ q. C9 V
| MCASP_PIN_AHCLKX, _; Z. D) }1 T. ^3 c3 U, N- {0 Y
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
7 A5 u" @6 W1 z4 }McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
* f& |; f7 x2 O0 P0 W. x8 a( P4 z| MCASP_TX_CLKFAIL
* U' q! b9 M) \1 T8 B3 ^! R9 V" w| MCASP_TX_SYNCERROR2 ]: q" s) E5 p% N$ D& F
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
. r* N. @2 a4 f; E) w| MCASP_RX_CLKFAIL4 D6 O6 _  r6 f' r/ c
| MCASP_RX_SYNCERROR 0 @3 d, H; s, x' s2 Q( U; l2 r2 j' P
| MCASP_RX_OVERRUN);
+ A  }. g- h4 a5 ~+ ]# D. }$ p- T}
static void I2SDataTxRxActivate(void)
5 u9 d; D# n4 ]0 }{& R6 l! N+ w1 w: }* w' H: v
/* Start the clocks */
; u6 g3 L9 L- E( G& KMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);0 A( u. P8 ~5 v( |4 L
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
' o, Q' d+ q3 D' z# ]9 a5 TEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
! [) z" L  m- Q. I& k3 sEDMA3_TRIG_MODE_EVENT);6 H2 y' F* H# E5 |& T/ Z; b
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
& m1 o2 p) y( z% o8 JEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
% j3 |  E, C( B# d  \2 l# eMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);, K8 D; _& r2 f/ p
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */& _! M' D5 k. W/ d; Y
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
3 [' u  z0 }2 d: I. TMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);* ?. Y( s' A% F1 Q% t, ~  W6 C; P
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);1 d# e4 s: D% _8 c3 \, u
}

  b) D& n6 A/ G
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
; Y+ h3 E  j( w7 x, K: k# k5 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 15:13 , Processed in 0.040970 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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