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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9678|回复: 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,0 t( Y4 X) e; t" F3 Z6 P
input mcasp_ahclkx,
/ _; J9 h. T/ f, U' @/ ainput mcasp_aclkx,3 C( B7 `2 x5 D- V, f, P+ Q0 `  U
input axr0,8 B( V7 b/ J4 x" U

, g) z6 H8 r2 u: noutput mcasp_afsr,& r7 W$ w, H7 M: m4 X
output mcasp_ahclkr,
. ^: Q6 ~6 o/ d, H/ Ioutput mcasp_aclkr,$ V/ i% t, v0 z: p# H
output axr1,& R# ^  s3 ~, J! z4 {+ Y6 P: y
assign mcasp_afsr = mcasp_afsx;' S9 Q/ U* P" I$ @% u
assign mcasp_aclkr = mcasp_aclkx;
9 A" U# `# V  A3 Bassign mcasp_ahclkr = mcasp_ahclkx;
4 }) M8 z0 B' S! `assign axr1 = axr0;
) X( m- U2 k' `
( y5 r+ s$ q3 v" K6 x, u9 A* x
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

! N' C; _) ]0 v& W% c2 e
static void McASPI2SConfigure(void): A* m* d2 P5 b% }, j+ {  E
{. @7 c; r7 \: |0 X$ A1 z1 u
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
8 T7 o, U& X* t7 k; ]; BMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */; {# c! N' k! X7 j" g
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
* j( p& ]" v$ dMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
1 c- d2 V4 M9 D3 TMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,0 S. _. m: s) y' U: B
MCASP_RX_MODE_DMA);7 \; y" m: ?& C
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," K. X/ `, U# B) u
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */  C, d; v3 G( P9 g2 T
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
/ K8 T( _- m  J: lMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);: \3 P5 ]2 D4 x; ?: K
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 8 V. \8 j4 \2 Z4 e) E% T
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */* J( p4 ^; f* c6 X# u0 R
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);4 D/ K1 ]; W9 |$ T3 D
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
% U- l$ N2 z# r/ h! mMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
& I  X# j# M4 L7 E0x00, 0xFF);
/* configure the clock for transmitter */
9 P# K# R( [6 s: ]  B0 _1 |" iMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
8 E8 W/ X" C9 X, [6 LMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
( s' F! a  f. R7 o2 a6 J( k+ nMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,) X' e5 H! y4 c8 r( w$ c# ]
0x00, 0xFF);
0 {8 n0 u. u# e, g8 `: l) X  c7 K, l3 b7 T
/* Enable synchronization of RX and TX sections */ 6 m, f% |  y& O% k  B$ S) ^
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
9 ]; S6 [) U4 T, v, AMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);" m6 U" ?  z$ t" `) \  n
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*$ t5 `1 ^" @+ g& V, S, P5 g' \
** Set the serializers, Currently only one serializer is set as
% U& l8 ^5 o1 l0 B9 ?; F** transmitter and one serializer as receiver." S" J$ i$ g9 k3 [/ ?% {! t
*/
: \6 V$ n+ B" i$ ]McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);+ g, p# J! S6 C: y
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*+ O) F; m5 c$ a
** Configure the McASP pins
6 k9 g( s% j: P- E** Input - Frame Sync, Clock and Serializer Rx
4 K7 g4 ^2 A7 m1 Q  n2 n* I** Output - Serializer Tx is connected to the input of the codec 8 {  z+ w- b9 h
*/
7 M+ f9 z# R. L" cMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
$ ~0 K$ {! {, i4 WMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
( A  U+ T  P9 m+ a" W( tMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX* f( V$ F8 Z7 v
| MCASP_PIN_ACLKX" H' b, X& k' m0 ]( i& a
| MCASP_PIN_AHCLKX
0 ~0 K$ l' R0 @7 i  o/ P; x! l5 W2 t| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
$ g! v9 Y, Y6 m$ fMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
& t7 o) N. k! I2 a: j+ `+ w| MCASP_TX_CLKFAIL & A1 L5 n  M* K4 j" x# p
| MCASP_TX_SYNCERROR3 l8 F# [' d1 C
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 9 w2 j' x, S3 @  k" _9 U  Q) Q
| MCASP_RX_CLKFAIL
. p/ N$ S$ P/ T  a: R| MCASP_RX_SYNCERROR 5 m1 F$ `; @9 U! {
| MCASP_RX_OVERRUN);
0 e; d' q9 j" y# ~# k}
static void I2SDataTxRxActivate(void)
  n3 K3 I/ M' g, s& V0 x6 w{
# H6 j; f( b) ?7 P( F2 q, [/* Start the clocks */& o7 g& a' R) X% M& X6 t' h
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);  T; n' [% l9 @* e2 ?; r
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */$ A6 r: f4 e% @( D% u. `5 y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
5 a2 y. ^' [5 i' [) uEDMA3_TRIG_MODE_EVENT);
* Z) K$ T) Q" V7 r8 x' n' lEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,   @5 Z* i) T. i/ T) Q0 ~! d8 Z
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
/ j+ f% V6 z7 v9 }3 n+ V4 GMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);8 I, S) W$ u7 Z4 F1 t' S) v
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
- i4 V! J5 M: ~) H! Gwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
9 V4 f/ P# \  HMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
! j8 }" R& a3 A4 I' o- |6 N' E; aMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
3 g5 Q0 b; L5 B# Q( c& I% E5 y% @}

/ B- P/ H4 R( R: G; c
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

1 _2 P2 E4 E$ e. p6 J, o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 06:48 , Processed in 0.045269 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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