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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8842|回复: 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,
' l9 f( h- X' u- d; W. c" P6 Iinput mcasp_ahclkx,* d% ?4 l, H# \( O' Q, |  a' a
input mcasp_aclkx,
- G; }# c. _5 |+ q! tinput axr0,
( _3 F% i. T2 ^5 [/ {5 ~  B) ^$ W$ D4 w2 j0 c. K
output mcasp_afsr,
( G% ^. a* B# r. F5 A8 t9 j7 l; aoutput mcasp_ahclkr,
  h! k8 d" C7 x9 Z  q4 uoutput mcasp_aclkr," Z+ ]+ j% @" N" [7 a, O
output axr1,
2 _  U. S. g: Q9 `6 }3 D& y
assign mcasp_afsr = mcasp_afsx;: v# E( E5 ]! {) {
assign mcasp_aclkr = mcasp_aclkx;) y. {( q' l2 @; c
assign mcasp_ahclkr = mcasp_ahclkx;" i* X  h- h  D, f5 m7 \5 q
assign axr1 = axr0;

; F( d) n7 i2 a) D
+ l8 B! P  F' m2 d* u: @- N
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
4 h# K# g; e8 I9 {
static void McASPI2SConfigure(void)0 b5 p+ k% x+ @" i. ^! o
{4 H9 E" ~, A( _' k2 C8 n4 ?1 J. q* y
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
0 @$ C$ f. ]) }; K! L* UMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
0 U% n0 z, A# F! c6 nMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
$ I& ?( A8 X3 c, {+ yMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
2 v! b  Q( P1 p6 A, x8 ~) x: j  ^McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
/ f) ~* v+ ]- f. m- t0 ~; \MCASP_RX_MODE_DMA);/ }3 V- W2 {& j- Z( I8 i4 T
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( l; x- f# t4 B  f. M  q# UMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
! g2 p7 ^! ?4 E7 X) X: ?McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
' I5 _& E( K" L( U3 I2 F* `MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);6 k$ b2 a. u6 a9 y* N  W) ?* X: h
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
5 K- {; ~' w' G9 y( ^$ FMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */: Z: b1 h6 j0 O4 q3 G  D3 Q' t! ~7 M
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);: A( P: W# y, g  j, t4 k- B) e7 T
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
* e" r+ o/ d$ m5 ^McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
5 M% j) Y4 r7 c; l' u( S0x00, 0xFF);
/* configure the clock for transmitter */6 A6 r- F1 o1 F* [
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
0 [( k+ _7 Y7 q4 z9 K8 n2 b6 O# FMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 5 b9 y5 j- ?4 p7 D2 z
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
+ H6 X0 J0 S9 `5 ^& I0 }0x00, 0xFF);+ E! L- A5 V6 Q# f; A. k

& y, @+ b; H; _* @$ k; f/* Enable synchronization of RX and TX sections */ ; e0 J% W6 Q8 k% L
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */" ?: `2 @- l/ P) z7 M5 M3 X" O1 j
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
4 @1 }$ N" X; A4 O$ C' V  L5 z8 jMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*# I7 b. v( F( P3 I/ c; D3 N9 l
** Set the serializers, Currently only one serializer is set as
8 U- O/ x$ ?+ {) N0 ], B** transmitter and one serializer as receiver.8 ]/ O6 _- w- J9 |+ `% P' p. |
*/
0 Z3 I) }6 l! zMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);2 C& P- J. Z7 S/ Y+ E$ T# N
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
7 {+ j' a4 e+ M. ?** Configure the McASP pins ) F0 c4 M/ x) j+ s4 G3 \
** Input - Frame Sync, Clock and Serializer Rx
- ~$ N( {/ L. W: \6 G3 ?** Output - Serializer Tx is connected to the input of the codec
4 ^1 b4 g. n& ^0 g1 _2 A*/7 r1 p& \  }; \
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);/ U/ w8 p- ]( m& D% u
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
0 B% T, @! P* Z5 S, a! rMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
$ d" D- E2 `6 B3 K% H  P) H| MCASP_PIN_ACLKX
% l9 W% A: \. q  C) e| MCASP_PIN_AHCLKX
5 W0 m: G" q: v9 M5 O| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */* h6 O7 p* y, M" G. s) G5 P
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
: I9 N6 e6 {0 L. w, ~| MCASP_TX_CLKFAIL : p0 r6 n. p) |1 S' `
| MCASP_TX_SYNCERROR
% n% L0 O+ s0 {" x. || MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
: ~) }1 B1 m6 v, l! J; S| MCASP_RX_CLKFAIL
- z* ]6 i$ d+ V  v, b3 O" r/ ~| MCASP_RX_SYNCERROR
0 R  t; F9 A# a4 t" \| MCASP_RX_OVERRUN);
6 i9 w7 [- I5 ~2 ~( D% ?# ?% ]}
static void I2SDataTxRxActivate(void)
5 i) _$ u2 }- J2 l{
8 V+ n. r* u# [6 i/ Y/ B! D/* Start the clocks */3 G4 O0 H3 I; H6 f  G; _/ e5 e
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
" N) o1 c& H9 RMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
: K9 J: \( E+ d0 N* xEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
: U  V2 [- P: eEDMA3_TRIG_MODE_EVENT);& h# N1 S  z6 ?- f. W
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
, T4 |; \, ~/ s' qEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
& d; e3 w8 x4 {# t4 c5 I4 {& S7 wMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);6 a3 W% _* C# m
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */5 P" |/ s0 s, ]- W. u4 Y, w& P( D
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
) p$ A: e5 m% O5 I5 |McASPRxEnable(SOC_MCASP_0_CTRL_REGS);4 E- |7 W4 ?6 ]6 r4 _* N
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);5 b! [1 m0 U4 Z' ~+ F7 N
}

2 @( _0 i+ G7 v$ _/ G4 \5 H
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
' ]8 {0 T3 P' @% F* H! \; V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 13:45 , Processed in 0.044698 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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