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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9763|回复: 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,4 m: T0 B, W2 `, n5 a. i: T8 X# G
input mcasp_ahclkx,
) b; j, F2 U) |+ Sinput mcasp_aclkx,4 x) [2 X$ V* t3 R1 P
input axr0,
& Z4 `3 d5 S8 E5 s8 F! L5 W; K3 j+ j
8 g# z0 _) ]0 {: c( w3 routput mcasp_afsr,1 y  Y" F5 _, s$ ^. `
output mcasp_ahclkr,1 L% j3 }9 l/ u& M& _: b
output mcasp_aclkr,: G; e3 C! m5 i( \3 \  E: a5 r$ B
output axr1,
) @1 ]8 g4 G2 k4 d7 O2 T
assign mcasp_afsr = mcasp_afsx;6 W  P3 I! ]- v, ]& g
assign mcasp_aclkr = mcasp_aclkx;
# h% L" K( h6 J' D& u% w  @assign mcasp_ahclkr = mcasp_ahclkx;
( h7 X4 l2 Y6 O; h8 }* `assign axr1 = axr0;

: e9 M; d* o4 M' X6 c3 W/ u7 L; j
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

1 H* ^- a) H: b7 _4 o6 w- H
static void McASPI2SConfigure(void)
9 k* k4 T! U7 U. s( P! I3 i* a, `{
" C+ |- M+ s& |. G2 aMcASPRxReset(SOC_MCASP_0_CTRL_REGS);$ U) y, g7 t. ^( M. `
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
# S! t6 \, ~/ w/ KMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);) S- Y, y0 x! w9 f
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
+ [! f7 M' \' y5 s" n! bMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
+ V! S2 O# A1 n/ }MCASP_RX_MODE_DMA);
4 ^8 ~+ b: ^6 l* e! ~: mMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,0 L+ k  n9 U  s# ]; Y
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */. A- P% A& C1 X+ t- P. B% c
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
5 w9 E, Q' u, S4 @0 G9 E: @& i- GMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
) l5 m$ |, L2 v: D3 KMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
' |3 |+ G% z8 I1 U0 _- F6 n6 GMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
3 t& Q; R+ p9 C0 T( N5 AMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);, A- S% w) W2 {" i; W: C/ ~% a( W2 S
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 3 O/ Y3 [; p9 [
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
6 Z1 d$ M9 m; x( ^3 @4 a$ S0 y0x00, 0xFF);
/* configure the clock for transmitter */
! x6 m& w$ Q% q) `7 H% l+ Z, `McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
% c  k! s* @1 b" U" MMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
- S' \% m. D. K. Z$ }McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
8 G% Q3 @1 Y8 h6 A0x00, 0xFF);% Q4 e2 C# n! p7 R1 Q3 n

/ P9 `) J# F8 s; p" `8 h7 I/* Enable synchronization of RX and TX sections */ / P+ M0 |) u9 q2 C9 r" `0 Q
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
8 B5 \0 l, R0 Y/ E% p: A5 O) _4 g+ BMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);6 [4 d2 A( x7 M+ C% [6 F
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
% P- i: [4 r" M8 y0 m) `( I& G** Set the serializers, Currently only one serializer is set as6 h( b% ]4 {4 b5 X
** transmitter and one serializer as receiver.# T  g( f1 b+ i6 p
*/
, }- u# _( e5 O% V# V  p3 g- _7 ^McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
- Y; W3 C7 [& d+ |McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*2 Y- p' t8 ?7 G/ y  Q9 ]
** Configure the McASP pins & L1 j  l! [( B8 o) a0 M7 B3 e
** Input - Frame Sync, Clock and Serializer Rx7 `5 b6 ?) E4 a6 |3 j$ e
** Output - Serializer Tx is connected to the input of the codec " z  Y0 O6 x4 J, l7 v  |
*/
4 Q/ W5 F8 o( k7 y1 M) h2 r2 mMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);8 r9 k/ O) {* D8 B5 z" d: d
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
6 _- Q1 o, ~- |! t: n/ gMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX8 t+ I' a& ~+ R4 m2 L, ^2 ?
| MCASP_PIN_ACLKX
, O  A* @! t8 y) g| MCASP_PIN_AHCLKX
' @: ^. O) |% v) q; u" r| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */5 B% y% u0 p# {
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
4 z8 m+ {# W- I; v$ l6 n1 y| MCASP_TX_CLKFAIL ( C8 H& A7 |2 D. ~' L( [% h
| MCASP_TX_SYNCERROR
. D: {: X4 C# w| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
, |8 j9 W7 L% S| MCASP_RX_CLKFAIL  C* p* @& X9 A4 A3 v. z# g
| MCASP_RX_SYNCERROR
8 h; I5 P- _! E4 W/ r4 x7 v1 U& M| MCASP_RX_OVERRUN);$ b9 g' j5 ~/ {3 e* A
}
static void I2SDataTxRxActivate(void)5 ^5 F$ ]5 a" s# e
{3 C( J# K  g( y- F# ~
/* Start the clocks */; ~8 \7 L' [5 g6 |. e& s  S
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);; p4 h% V' \" {# Z
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
0 I' N7 L* x% F  b5 F1 \& |EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
3 G$ I* Z, Z# Y7 |2 P1 x; E1 _EDMA3_TRIG_MODE_EVENT);* _' u0 K  P$ m9 ]/ M/ Y5 \. [
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 4 M& ~8 a& y" q: D# d4 n- n
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */( }6 b/ `* e9 X5 v8 F  r
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
/ B  Q4 r" ]" Y% g; ?; CMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
3 |0 J. [5 x- E& Bwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
/ s" A$ V4 u/ c) O4 s1 U) h( f% _McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
3 k6 ]/ Y4 `# y+ T+ J. J3 SMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
" U) G7 {4 s  }, i" ?' Q0 v}

; A' x* \5 ^  w9 a9 l9 X9 j" T
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
  L2 z: x" R0 A7 l" l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 14:41 , Processed in 0.039548 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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