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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8834|回复: 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,& \' m8 x' v5 Z& f
input mcasp_ahclkx,1 P3 c% v$ f' K; Y
input mcasp_aclkx,, Y" S- s: a8 l8 ~; H* R4 z
input axr0,. G! a6 B3 U! [) A
; Q' M' K" Z+ {0 a
output mcasp_afsr,
% F7 r+ m0 {2 t  o6 u3 \output mcasp_ahclkr,
. K/ W; m! d# e! N& }1 xoutput mcasp_aclkr,
/ N  ]; g. d( m/ o0 L: Routput axr1,! C* f  a+ K9 {7 x5 _" X
assign mcasp_afsr = mcasp_afsx;
  ]0 H' Y& y  n' h& Yassign mcasp_aclkr = mcasp_aclkx;/ ]2 Q$ Q) [$ p5 r3 b
assign mcasp_ahclkr = mcasp_ahclkx;
; b- Y) h1 P# k2 g5 S" ?assign axr1 = axr0;

6 K; ^  f& K* O8 ~: \  l; R+ \/ [4 x* y9 j4 f* z
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
, {! R  t- {% O0 ^7 @% H, w  g' G( [
static void McASPI2SConfigure(void)0 `6 ?; M) [9 f# E% z+ b5 y  j
{
( L5 g0 }  p2 H4 ?9 v2 f% a; eMcASPRxReset(SOC_MCASP_0_CTRL_REGS);2 Q3 T5 Q# n9 U6 e1 Y
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
# }! R+ T' a$ m4 A  CMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
- }+ Q* N7 k3 z! f( L- S! {McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */) T  y. F: x$ s) R1 I4 e0 M
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,% l! G" Z4 f( Z6 Q9 e% v  P, d
MCASP_RX_MODE_DMA);( `7 }# t. A* w
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,, Q; ^9 \# u5 l7 I
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
# d+ e$ R1 h- a7 o6 _: L3 f# g5 L" NMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
8 y6 z! H$ x# W. UMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);5 |4 {& l1 p! {8 p9 H
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 7 e- m4 G- l: u& ?% V
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */8 J/ p" x: V9 ?0 z& B
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);3 c1 D8 k; @: P3 ?- l8 l# r  Y
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
# i( j7 r# z! iMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
$ s- C* ^+ g' ?0x00, 0xFF);
/* configure the clock for transmitter */+ A7 I2 L( U' N/ Q, h5 |$ \" j2 X, W7 m
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);, Q# ?) h! e* y. F+ a
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 7 x  Y9 s% r! U
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,2 D+ f6 K5 O6 W7 I" H
0x00, 0xFF);1 R/ W3 ^+ I8 L9 c

- C2 V% B8 i6 n" `, Q$ r& @# N) C  \/* Enable synchronization of RX and TX sections */
, A1 [: ?& L2 Z# {7 w0 gMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */$ f0 D  w- q0 E: P8 A4 |8 S+ ]; e" y
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
9 n& T. o) B& J, F4 s0 a# VMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*2 O" T- Y! ~! }+ U# z1 h4 E
** Set the serializers, Currently only one serializer is set as
7 J. b3 T0 R' ~: x** transmitter and one serializer as receiver.7 a  o" x. y7 H, b
*/  h" {( M/ S1 R/ x
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 }8 L+ b  H* }/ Z/ h& OMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
; n: n: X$ d1 p& T/ b) W9 n5 x' G8 G** Configure the McASP pins
4 N5 O- [* E7 _** Input - Frame Sync, Clock and Serializer Rx
$ s+ g) U0 m* M( d# l** Output - Serializer Tx is connected to the input of the codec
7 x! {1 d, Y( E: ]" [/ u*/3 t; e  g1 t8 e3 h
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);+ I/ V5 C0 }  E, k7 Y+ `1 M4 ~
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
0 e; J# s& A$ v$ M. D7 |# z: f% I1 [McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
7 y  m8 k( ^' h| MCASP_PIN_ACLKX* [5 t. D  r# n8 s" G! v7 C
| MCASP_PIN_AHCLKX9 ?  P0 {' j- C
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
2 J& z' y% [6 }6 x, hMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
0 v3 }% N5 H) c! D3 || MCASP_TX_CLKFAIL / O7 p/ O8 l' {
| MCASP_TX_SYNCERROR/ y4 h  Y" _$ H- Y  J+ a
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 6 b. ?  H* \& d2 \/ N  P
| MCASP_RX_CLKFAIL& h6 S" a3 u0 {; |: x- s# q
| MCASP_RX_SYNCERROR ) N! K9 ~4 t/ e  z
| MCASP_RX_OVERRUN);2 y  b( R  {7 y4 F+ p$ {
}
static void I2SDataTxRxActivate(void)3 n' `' c% Y$ ]5 d" r8 h
{5 H7 O$ x' r0 e5 d5 L' z# u
/* Start the clocks */
, S  Y- Y* f9 gMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
& `% |) u; D" L8 ]9 }) QMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */$ y" j% o( Q  x# b$ u
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
5 ~- s2 D- i( q( V7 S% [. B; HEDMA3_TRIG_MODE_EVENT);
) z2 e$ {3 b; T  yEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
. o. r5 k& v" X1 k$ d* J  V9 K/ AEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
1 s4 Z8 L& O9 oMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);: O7 U9 h: D& T1 x
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
7 g1 }( y2 z" X0 r1 A: l/ ], S- mwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
# z) E* I* L0 a6 a- U3 W5 ^2 pMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
9 e" ]4 x, f- d% U! l0 N: m8 JMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);( Q3 c9 ?( O7 h& j2 w1 c$ x
}
+ [# N8 Y- t) c
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
( _8 B% f/ N, I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 03:37 , Processed in 0.038862 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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