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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9031|回复: 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,! g# _3 e& U; `* y
input mcasp_ahclkx,6 A! X8 I' N. R" \' H
input mcasp_aclkx,
1 H& V) }# ]' g6 p: Kinput axr0,
( E: |/ V, e# t- u" u: {9 {2 E. F
output mcasp_afsr,
# ?- \4 a0 _" D! K; _# aoutput mcasp_ahclkr,
- S6 R' y9 `9 F/ b) v6 G+ ?2 Ioutput mcasp_aclkr,5 P2 i" W0 ?+ O& c2 B, C' m* W# E
output axr1,
8 p! L  d; D, G& y5 M# b  e
assign mcasp_afsr = mcasp_afsx;
  }/ Y2 u7 J% J* e# Passign mcasp_aclkr = mcasp_aclkx;4 z; q$ m# b5 k' y
assign mcasp_ahclkr = mcasp_ahclkx;
1 V5 v4 o0 t: D# R& H0 Tassign axr1 = axr0;
* Q6 f  w1 e2 Q  A1 B

, ]) X' |9 |5 Z' W" [
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
/ {+ D" @7 @9 Y, x+ E" ]) U
static void McASPI2SConfigure(void)
' p2 @% G4 q1 f/ z& f1 N- _7 M8 e{' e3 h$ w" L" ^$ d
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
" U0 H/ x5 L* W4 h+ TMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
. M5 N3 |1 U; b" NMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
+ {8 d* u* V. B' r- k# `McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */4 |% l0 P. x. ?' T) I: D
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) [. r5 b* I. g: A# C! ?
MCASP_RX_MODE_DMA);$ B4 @& W6 e; o5 ^1 j; j! x) t  [
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  Z. o0 f& ]7 E# b) I+ y( `  I: [MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */: b, X" e+ u/ F5 E3 ^1 t
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
+ `  x! h! k! I- D0 R+ w: g' z" ]MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
+ m# w, t* a! E' ~, k0 q5 gMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
, j9 L1 E) f* {) u3 T, M0 @, \! bMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
4 S) {) r$ q# v) X$ gMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);1 M, Y4 v/ G, @2 I' g
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); + ~* r9 Z3 {9 v2 Z0 d8 j
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,4 N  f3 F3 f. b$ t8 g6 L
0x00, 0xFF);
/* configure the clock for transmitter */) B' E8 N2 j: h, _" B
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);8 j* s3 P3 [. d3 }
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ; w: B; f* _% _4 e, K
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,) Y- h; @% m9 r0 \- l
0x00, 0xFF);1 H+ [" }* ?0 S, W6 \; n/ o7 ?
$ v; a+ G6 J+ h" q
/* Enable synchronization of RX and TX sections */
2 a( @; }% P6 g0 C- xMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
6 K) P! L2 K' P# W" vMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
- R7 |+ Q* @! p1 r! C& iMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
9 j  v* i! _; R, P** Set the serializers, Currently only one serializer is set as
  z: E+ L# U$ `** transmitter and one serializer as receiver.9 [6 E& u. ~2 k! Q8 |8 \
*/
5 R. A  |7 I+ R- rMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
$ N1 e1 N1 G3 R' rMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*1 O# [% P8 v/ s* B  g, u
** Configure the McASP pins ; C( y! z' z7 x1 X6 u- y2 m8 o  T
** Input - Frame Sync, Clock and Serializer Rx* y! `' x+ L6 @7 j
** Output - Serializer Tx is connected to the input of the codec
/ N2 C1 f$ `/ n6 a: V*/6 \& x6 F0 ?9 j) l" X1 a" w; I# F
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);! z& x9 _# ^$ q% S
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
9 r1 j5 d. s9 KMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
' Y8 R2 i: `3 X$ J" || MCASP_PIN_ACLKX! `/ \& y5 W+ m6 X
| MCASP_PIN_AHCLKX
1 _" s. k7 i7 X& M, F* f9 q0 \| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
' V8 J; P  }1 C" b, u1 H# ZMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
5 N# `- V' c: p6 g| MCASP_TX_CLKFAIL
  Z$ o8 C5 A# \$ h| MCASP_TX_SYNCERROR
1 H; W. s1 w* ]- t$ I1 \5 G| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
) S; J7 J9 g1 A) S/ `5 E| MCASP_RX_CLKFAIL$ X' h6 ^+ z' W  W
| MCASP_RX_SYNCERROR 6 Z9 n5 B; H  p. [" ~
| MCASP_RX_OVERRUN);
% \" o& H# ^) i% n5 z! ?}
static void I2SDataTxRxActivate(void)
9 W: r6 `# Z3 O  L9 ~{
7 l) L8 F/ M" g' B7 t0 ^/* Start the clocks */
4 A. E' ?% \% A! uMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
$ ]: z4 B1 D7 {0 DMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */8 E- J+ D- r4 C4 [5 @/ z
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,6 {* E; [3 G+ S! s+ B- m7 T
EDMA3_TRIG_MODE_EVENT);
7 L) J& H! m! r" S$ r6 EEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,   T! j4 z6 y# a8 d' ?8 F
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */4 c6 o8 C' |! i/ w
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);9 G% }8 b3 Y/ o
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */7 O+ a3 t  r0 p, I: O, r9 s+ P! A
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
! w1 K8 c$ k9 i7 eMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);/ f! |1 b$ E1 B) m( g3 n
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);2 M, X- D; z/ ^+ [  Q0 z" H
}
# @' t. W6 ?$ r; J, O" r0 l5 D9 q
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

1 e+ |, w/ s) [) g; P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 17:10 , Processed in 0.036836 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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