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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8612|回复: 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,' i9 O! |6 |8 P9 }8 R6 k- R9 ?6 @
input mcasp_ahclkx,
  B; m8 O8 m5 S9 B+ `: F8 D/ P+ iinput mcasp_aclkx,0 U3 U. d6 T. K: M( j& `0 O
input axr0,
& D' A4 f* R) Y* x7 }& a  }% @. P5 k! U7 l) J& w0 H
output mcasp_afsr,5 p9 ~9 e5 Y, w4 O4 ~7 ~  M
output mcasp_ahclkr,
: [5 k; G) N5 T( }output mcasp_aclkr,( R7 I" k  [+ S! G! l9 h
output axr1,
1 T% z# c0 \# C7 s) C7 m* O& G
assign mcasp_afsr = mcasp_afsx;
3 Q2 A: m3 g. [* O) ^" Xassign mcasp_aclkr = mcasp_aclkx;7 C; G: }% e: `! Q6 [; f0 }
assign mcasp_ahclkr = mcasp_ahclkx;8 S4 t' @, e) |1 C/ h
assign axr1 = axr0;

3 O$ r; B' F& V! m+ L6 C7 F* x
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

! i# K. d/ |+ S
static void McASPI2SConfigure(void)
8 G+ W) o+ W7 H( k. L1 C0 M{: H; E9 p4 e. _
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
7 J6 C. n( u4 |/ a! aMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
' R$ _  C) G; }- Z$ @! v8 oMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
3 L0 x6 M* ~" b# L2 {4 aMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */' h8 f. S0 T! X8 F& C3 a; A2 J
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,' v) x9 H! s. H# B$ R( P1 l4 d' P2 H
MCASP_RX_MODE_DMA);) h5 h( Y, L+ h
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
+ N- r, v1 u, y8 H0 AMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */; p8 g9 Q" D1 ^5 Z7 O
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
; S+ u/ u: T8 Z3 Q2 dMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);; N5 s. y$ Y5 o5 z1 K- \: x( z: S
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ) {2 v  V  H, h; P4 q
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
" `9 W5 Q4 f! b2 l2 LMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
! g: l6 [* Y1 _, I% n. UMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); % k6 V( D* l) _3 Z0 F
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
. X% J; ?/ e! D; U. m- T0x00, 0xFF);
/* configure the clock for transmitter */
3 p" y5 u) v5 `+ g1 m0 Q( Z! I4 ]6 kMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);' p8 }. X. S4 x
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
0 B0 W# b0 c( W5 z/ IMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,9 m9 i1 ^$ m: \8 {3 U" v  }
0x00, 0xFF);2 \6 {. Z4 z; d% D" R2 j# U

# ]& m* u5 Y" n  K7 K/* Enable synchronization of RX and TX sections */
$ N; t2 I( Q9 ?& IMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 N. _% O$ @$ @. [8 j- mMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
: g! R" w+ G7 Y. r9 J* G! I* P; y" zMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*8 {( J0 R: n$ t0 a: B
** Set the serializers, Currently only one serializer is set as% C* I) |3 L* h% n% x' d8 G
** transmitter and one serializer as receiver.
: {3 _4 N) ]2 ^. A) F7 X; H*/: @/ l1 M* \/ e8 I! k
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);$ ~% H" A1 `! e4 H5 @$ C! H- F6 ]
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*2 f) A  ^( J& _2 Q0 ]- }! L
** Configure the McASP pins
/ k3 u! y% `7 y** Input - Frame Sync, Clock and Serializer Rx
# c& ^: M& d0 p* _# _3 P# v  e** Output - Serializer Tx is connected to the input of the codec
. q0 g# O/ g3 p9 d  ~6 |*/
8 |3 V2 \1 k7 P2 f/ fMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
( Q& `( q/ m7 n7 g5 \! tMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));1 H% _+ Z  Q" _: H( A
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX6 Q6 G) B6 S" y$ ^2 y
| MCASP_PIN_ACLKX
& s1 |4 N, J$ X4 q9 @| MCASP_PIN_AHCLKX9 c1 v; \( K1 n9 s
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */0 T$ ^% H$ N4 j3 R( U
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
4 H6 V6 g3 E2 [( Z  Q; k: V  ~) n| MCASP_TX_CLKFAIL
3 D, e& o( L( m1 X8 P| MCASP_TX_SYNCERROR6 G5 }" i9 ?& y" X  P# a
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
, D1 z2 x# Z* {% g1 y; k; a- s| MCASP_RX_CLKFAIL
" C0 {1 n" M5 T* P7 n( v| MCASP_RX_SYNCERROR
; q& |  d5 }# V5 ^: d! b9 t( m| MCASP_RX_OVERRUN);
2 \+ t9 {' l9 q! z! p}
static void I2SDataTxRxActivate(void)! i4 c+ Z# ?( n( K
{4 a( q" g! `6 k: B" s! C1 _* U. l
/* Start the clocks */
2 P7 G0 W0 n7 H1 l& D' |1 fMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
2 b7 Y4 I! q, m$ i' T9 m! s& BMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */$ W' ^4 R5 n7 v$ H8 a- t, _; J
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,5 |9 j; r, m! W' T- w" v
EDMA3_TRIG_MODE_EVENT);! g; Q; }+ T2 d, L: h) ^- T
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
- t/ m+ _1 U4 tEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
/ r; Y6 O& \7 y4 ^  C, F3 ZMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);, N" c- o5 c( p) h4 {9 Y4 u
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */5 {3 G# n/ f) t; y+ t- z1 a# L& ]# l
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */6 F8 Q, g# r% i- ?1 d* N+ Y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);' {$ z" n( x* P6 c0 s8 Y
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
' w6 b" |' k8 k3 W8 L) {3 o1 @}
) {9 N1 r. S9 O. g+ N
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

, B% B" V! a( A# m* n& [: a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-29 01:28 , Processed in 0.042152 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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