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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1212

积分

金牌会员

Rank: 6Rank: 6

积分
1212
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,4 @( J0 A  W$ }/ X
input mcasp_ahclkx,
4 t' [7 R8 }+ t  Jinput mcasp_aclkx,6 w9 M( F! q% P9 X9 w2 p( O# I, _
input axr0,
9 F+ F# {& K& s- o; W( C( G& \4 m3 ^9 [6 f0 U; h& W6 M4 J
output mcasp_afsr,
  o# C. |0 m/ U& voutput mcasp_ahclkr,; C  ~( x% q% g* E6 g
output mcasp_aclkr,
/ k1 C% V5 x  r1 J- s! A' d7 joutput axr1,! }6 @4 F& r  n* U& I1 C; ~
assign mcasp_afsr = mcasp_afsx;
" S% o+ L) V% K! ]6 ~3 O: o; C- H; bassign mcasp_aclkr = mcasp_aclkx;& m- {( v4 J1 c- d( l; a, D# l
assign mcasp_ahclkr = mcasp_ahclkx;
) s/ r- U% e# R' _7 v4 y8 [assign axr1 = axr0;
4 L2 W, x" U/ ?: ?! q6 s# k( t4 A8 O

3 q3 d) X4 m% S7 o
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
2 h; N1 o$ J  u- o  }# O+ K% F
static void McASPI2SConfigure(void)
' E9 N: k) H3 A/ g5 S8 J{9 q* s* V; K' f3 ?, g: r
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
) g- q3 T: o( U% o! v$ ]6 H( bMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */8 \( \6 r7 D/ s4 ]$ Y& W' V
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
9 W" s0 H. r! E  n" T' R. mMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
! [5 B# E3 q2 V) n6 D- V9 LMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
9 b3 K2 K5 P3 @8 kMCASP_RX_MODE_DMA);
% q* `* f* L1 LMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) `0 z% H5 S3 e0 b  D! z
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
6 b9 P) z0 S# ]( e2 UMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
  y4 d4 s- g; U  y. \6 A: ^MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
+ q. X$ `* f) O/ N- K" C2 B' {McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
. v0 ]0 x0 C2 s: H- Y3 sMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */7 O* D+ L4 p" |5 i- r" i
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
# |0 K1 @! n7 k) G4 C, \McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
' e# \8 T9 ]; T$ C) M5 {McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
2 j' n! K# f) u3 v8 l( t0x00, 0xFF);
/* configure the clock for transmitter */9 u5 }" h' |; z. `
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
$ X. E/ i- h" K2 _( HMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); / w% `4 R  \6 e
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
; V- h" J- L3 d0 e0x00, 0xFF);
* S" z8 D( @/ z$ ~# a6 Z
) U5 ?9 s1 ^9 l/ J, ?/* Enable synchronization of RX and TX sections */ / D  b9 H- r( U+ @# D. L3 Y+ A. A
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
! @3 R" l0 @2 m* ^: }" RMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);$ J# ?; f3 }' t* z9 {. N
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*& n! m5 m  F5 H, S* z( V! c# z6 w# r
** Set the serializers, Currently only one serializer is set as
9 t$ b4 }& J3 w- u0 _) H! h** transmitter and one serializer as receiver.( l6 K* j$ }; a0 ?
*/5 a3 c% I7 Q7 D1 x
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
! K8 c7 z' |4 }7 @McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
" L6 L  k( b& i! D1 w** Configure the McASP pins % L7 U7 H6 o' i5 n/ o
** Input - Frame Sync, Clock and Serializer Rx
" H5 O' c6 n0 B3 r** Output - Serializer Tx is connected to the input of the codec
. d, K8 P2 V: u6 {, D' @*/+ O* F# L' u* v7 n5 s$ o
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);  R0 U: n1 I8 I  O8 P5 G- w
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
+ M& E; v: B/ P9 p$ T3 y4 e! m$ yMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
1 `% G; N* K0 k) m| MCASP_PIN_ACLKX
4 g8 M, z+ o7 W" C8 r8 E| MCASP_PIN_AHCLKX% H6 `" v) a# D  w$ F" T# y
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */! `0 L9 _* g  v7 I/ c0 l3 _
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 2 {) c- p! B: F. J3 \) p. _6 _7 J- S) R
| MCASP_TX_CLKFAIL
6 \* }; Y8 c! j; ~6 q3 G7 x2 u| MCASP_TX_SYNCERROR. y# e- Q1 _+ _8 Q$ r/ A5 V
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
1 H# A' I+ G4 R4 L| MCASP_RX_CLKFAIL
0 E4 b2 q3 D3 p4 S  S( y, z$ x- F| MCASP_RX_SYNCERROR
4 [4 q& L* _% r4 p  r| MCASP_RX_OVERRUN);
$ k& n" s" u9 `7 Q0 m}
static void I2SDataTxRxActivate(void)
, {0 N! t8 W: W3 ^8 I{
; A6 x: t7 K. y+ \/* Start the clocks */
% _+ D, T$ \+ @1 \# m! ?: ?McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);5 x; s) J& \$ [- Q+ \: T
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */! o4 v$ ~( W- Q5 E1 a) m
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,9 O7 r8 _& |! x; F8 \
EDMA3_TRIG_MODE_EVENT);
, R( q  K4 r. P% x0 ^: YEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 9 {. n3 C' W% Y0 Y9 M% a2 P9 z
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
8 D1 h. s* K3 A7 o! a- U; X3 dMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
; ~5 c! r4 b  ]; x5 v) U/ K  ]McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
; y6 R+ N5 |3 Wwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
1 k0 C" h5 q3 l( |3 ]! Z& cMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
: L& ], K/ ?) v/ j" s0 b  r+ V% jMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
, e9 H: F; s# g+ @" B) f}

! ?5 m$ k' G! ~! A* W1 O: K0 m  f
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
6 ]/ H3 Z% ^& G" }3 U  V9 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 10:36 , Processed in 0.039151 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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