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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
7 l* x5 d8 A8 u9 v$ A; A! ginput mcasp_ahclkx,
2 y" t! A6 ^# V% Y% U7 Vinput mcasp_aclkx,
% n* u, |1 e" g& @1 z7 [9 C1 b7 f& ]input axr0,3 m8 K) l& n9 [% z+ M$ `
9 ]" @+ t( P- K4 p1 I# g" \5 b5 v% c
output mcasp_afsr,/ R. ~7 o* P$ H; n' Y) {- D
output mcasp_ahclkr,
+ `7 M. e3 |8 a/ moutput mcasp_aclkr,9 _, \7 N- h2 ?6 C& |$ q
output axr1,3 ]  L" q) T0 M8 ?
assign mcasp_afsr = mcasp_afsx;) q- _4 o& z2 s" ?
assign mcasp_aclkr = mcasp_aclkx;
+ e' B# l$ X; L, R3 V9 R3 v% S" }assign mcasp_ahclkr = mcasp_ahclkx;1 g" t8 q; P* f8 T2 p
assign axr1 = axr0;

! j1 e0 i  Q- i
& F8 U/ B* C: y3 ^$ x2 m" ]
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

  N  T+ L. H6 G1 G
static void McASPI2SConfigure(void)0 n3 ]3 L$ @6 G$ `) ^
{/ _: O1 Q! [; E
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
: S4 G6 z; i+ S5 \; w( kMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
0 j6 P7 h* o, h( B8 ?" z2 |McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
1 j7 m4 g8 Y- R+ M% v% p/ LMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
# L% S% y; Z1 C3 p$ p/ m, XMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
' t9 J7 l3 S5 w# Q% C& R+ c/ ?MCASP_RX_MODE_DMA);
4 x% A+ r1 S# \/ _, iMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
# r9 f( t+ q7 p* x" [2 dMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */' A" T7 l# p6 Z9 j3 @: L0 v- h1 f
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 9 Y" t7 z! Y- O3 \: e, O
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
1 W9 C5 n: `' ?7 Q0 ]$ |McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, + N- W5 e, t8 M, O; ?2 o6 w; G
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
/ M& n: V: v0 e/ ^' F4 uMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
4 j% A& o4 p: s0 EMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); , |1 H- @- ~5 c4 n$ X
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
' Q$ l# c5 z) u6 `. U0x00, 0xFF);
/* configure the clock for transmitter */
" R7 B7 {. L  R: ~5 v5 k( ^McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);+ ^/ Z- c  v) N5 z7 U
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); " s$ v- p+ }! f2 S
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32," P! e6 R/ o9 ?6 ^0 p
0x00, 0xFF);
, R1 h7 h. |1 o2 |
0 |" D8 v/ ^$ Y9 c% [# s, G/* Enable synchronization of RX and TX sections */
9 y" N( k+ b; F2 lMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
: u: f; }3 K$ V7 t: f6 j( G! I% m6 [McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);$ Y' d. [, F1 ?7 a' {! C8 d
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*- n) f0 f8 f  z( Z0 m. d( }! w
** Set the serializers, Currently only one serializer is set as
' Z  r1 G# m, E- l% a# x+ l** transmitter and one serializer as receiver.
. a% p- u8 p5 W8 Y; I/ D# x7 {*/3 i2 r6 Y. B( c4 F6 m8 Z! z
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
3 s/ {0 u. i# J" F" lMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*; T% F5 j8 b" o
** Configure the McASP pins
1 v3 R2 x' t: v6 m% K( q( g** Input - Frame Sync, Clock and Serializer Rx
  S8 |5 i+ P, v- g** Output - Serializer Tx is connected to the input of the codec 8 S$ Q% M* Y' e4 n+ A. H  ~' T7 @
*/, N+ n. l: Q, d9 ~' _
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
/ i2 h7 V  ]" a0 D5 NMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));: g% u5 I1 ?: L. B; Y1 S) i3 K
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
, _1 e! m; }, s: m8 {( B| MCASP_PIN_ACLKX
% y. L& r' ^8 N9 w! P0 c7 v* N| MCASP_PIN_AHCLKX
$ {5 j# N5 M3 I3 Q7 s; k| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */8 h3 b# W3 X/ C- g
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 7 F7 N- w) G- c: s7 B
| MCASP_TX_CLKFAIL
3 q$ d, D$ Y3 I; w0 u* ~3 y| MCASP_TX_SYNCERROR' T2 @3 k0 f( M
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
* |8 y5 l, \, b- b+ i( d3 `| MCASP_RX_CLKFAIL4 C, q+ X) j* Y3 `
| MCASP_RX_SYNCERROR
0 B" n( o6 X- L1 n+ U+ z| MCASP_RX_OVERRUN);; C4 E; M* R# \: P8 \$ N; }
}
static void I2SDataTxRxActivate(void)% h3 a# A7 c9 D! T: Z
{
4 @; ^( z" ]1 h) q7 L- z/* Start the clocks */& r% M1 i9 p* U' t$ S9 d: `
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
3 u8 b0 O# c2 J# {McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */6 R: A; \4 f$ B/ P( `
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,0 g5 c, J; ~) @. @4 T- B$ h: w
EDMA3_TRIG_MODE_EVENT);$ W1 K6 J2 u& P# g. D0 U$ z, O
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, - c0 }% e" c) ]
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
! J) ?: V4 @% X" {McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
% k* h+ `, p) v3 G- P6 UMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */& v/ l  }% e% O( l+ E* G
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */  i( U" O/ w# F2 e# C
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);0 E. E" b3 n5 u+ ^0 b
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);% C8 [  J& W) C- }0 k% Q7 L# g8 O
}
9 x1 I# U" j- \) C6 S: W& T
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

8 S6 D7 P8 G0 p4 q% T% r: c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 02:55 , Processed in 0.039619 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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