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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9768|回复: 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,+ n# n+ p! j8 b0 y6 W5 A9 w7 T
input mcasp_ahclkx,
% B) f+ |- A5 l# B5 E7 c7 M- L% _; ^input mcasp_aclkx,
) ?4 b9 h/ Y8 z( g/ Q# f! M3 Z, }input axr0,
; G  A# P, P9 G' q  `9 q. ^4 [+ ^6 P+ b, L0 |: _% r/ x- Y
output mcasp_afsr,+ }! g4 f/ A) s6 T$ R, [
output mcasp_ahclkr," L: A. t9 p$ s; X
output mcasp_aclkr,/ D. j" i% i! j: g, Q* f8 {( D) @* T3 b/ j
output axr1,
& g5 B- f! T2 A/ o- _8 u& Y2 ^( @
assign mcasp_afsr = mcasp_afsx;
" C  f* H, y+ Iassign mcasp_aclkr = mcasp_aclkx;
1 R1 p+ A  I& M/ vassign mcasp_ahclkr = mcasp_ahclkx;
# Z" R. L8 _8 M. _$ d" }assign axr1 = axr0;
- d, l9 S! f9 z- I( @5 i1 y

9 y2 Z2 W& E( v9 @2 B) o4 G* N6 s
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

" e# _; r/ d. I
static void McASPI2SConfigure(void)% f$ ]' O2 U6 H1 ^' O  h( x: f
{* }! D) K) Q/ \4 I1 G
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
8 n+ {4 F1 D; p& b7 bMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
& b6 I- N$ @2 P4 @# w( CMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
4 ~6 c" B$ z  [" k6 BMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
" V0 t; E  ]9 ^7 d# ]  }8 \: ]McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
9 e' c/ K/ ~2 ]* b* M- VMCASP_RX_MODE_DMA);3 q/ t" s; {6 v# C3 _
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,; ~( B" Q8 x6 q$ J1 h
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */- c  R! C3 u( U: m/ V2 a
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 6 F( g! N: S( K9 z6 H3 X
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
/ L; @$ v$ a, }# M. A9 k% e% r; E" fMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
7 i: l- p! @4 R! X2 w6 sMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
0 x! J, [3 k' \+ q' O% r' rMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);2 {2 v8 P6 G3 {
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 6 O, b1 e" j. W& ]
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
, s0 o3 ^* z# I! @, K/ i0x00, 0xFF);
/* configure the clock for transmitter *// o2 [% v, V" Z# {. d
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
5 w; r$ F1 d( q' |4 a: F. b2 q, Y" xMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); : ^+ V8 i. x8 }+ b: `
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
3 G; r- T$ C- }. |& o0x00, 0xFF);
. J. J! K3 V( \1 h/ e1 u" D2 v% c5 m+ l: B
/* Enable synchronization of RX and TX sections */
; {  f/ h9 b8 w+ I+ lMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
- Q. ^3 ^9 y0 [$ y: }McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);8 A8 w7 l* \+ d7 [$ y# P" X# a, f) S
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
: V7 Y2 `  e2 j! i" a& ^( \** Set the serializers, Currently only one serializer is set as
+ s! g+ V/ i+ o** transmitter and one serializer as receiver.; c4 H0 w- Y; r# ~7 M
*/
3 ^5 X# e1 @" Z. E6 F1 a  eMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
) K7 r. z. {+ A9 t: H. M% A) qMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
8 e: n5 l( E: b+ s8 w** Configure the McASP pins . ?: j7 i  Z5 ]' I, G& `* I
** Input - Frame Sync, Clock and Serializer Rx9 J! V! r7 J4 V4 G2 |( w8 X
** Output - Serializer Tx is connected to the input of the codec
1 ^5 X- q! |8 B6 D*/5 j# R8 A. g* O) s/ p
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
# R7 f# |, U6 J! S, z/ z6 kMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
( g% y- |6 \+ h- dMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
: ?9 ^; e+ u4 Z8 v% t7 o| MCASP_PIN_ACLKX- p& |% @0 n1 N- i, m6 y' P
| MCASP_PIN_AHCLKX
5 X: G, n% y0 o| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */4 w1 j( z* x0 _" f0 t  O
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
2 e9 _' J/ D& W% b- F  V* @| MCASP_TX_CLKFAIL
4 g$ @" f7 e3 U( e* Y. z7 v| MCASP_TX_SYNCERROR
5 x; q$ _' o8 z| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR & u) N& N% Z  T) W
| MCASP_RX_CLKFAIL! S9 W$ [2 m$ j' _
| MCASP_RX_SYNCERROR
0 T, A% K, H7 H8 U| MCASP_RX_OVERRUN);
( L3 m. J9 B  b  l5 u7 u}
static void I2SDataTxRxActivate(void)( G; l- o8 j3 E' p; o* d
{
, N0 F3 F! q# V% {/* Start the clocks */
$ j2 f" B/ E, j( U  _' a/ iMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);  P* P* [3 P7 I4 M1 u9 U
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
# z3 @' H1 k& R5 g- eEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
" a8 Y2 [0 y8 V. F8 A% a: d* REDMA3_TRIG_MODE_EVENT);
0 k5 A: n; n: q1 z. \8 j$ s+ AEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ) I0 z" T: |# {1 [
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */8 W! B5 L: e; c+ S5 H) z1 V. [
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);0 N/ e" P: x/ M
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
8 ]' V7 l$ @/ m; }+ q1 kwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
7 C) ^8 x! n. ?0 `McASPRxEnable(SOC_MCASP_0_CTRL_REGS);8 h4 C! r. A  Q' j$ A; F
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);+ r: Q8 z- q$ p2 K0 W' b* O# c* u
}
+ e: z$ u; Y$ Q' m8 }* }# O
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

+ b% \+ z0 d. R! X2 g. }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 17:43 , Processed in 0.039293 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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