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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9154|回复: 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,+ o4 C2 Z* J# d* H- w- P
input mcasp_ahclkx,
0 y& G4 f+ Q& f% q& minput mcasp_aclkx,2 R: Z" V* B, @. l4 ?" O$ ?
input axr0,7 a6 L, {6 A$ t6 f  y

# o$ v2 P" D( b1 zoutput mcasp_afsr,1 u8 n9 e" `( t5 l4 o
output mcasp_ahclkr,1 H+ }" v/ b# N* Z; Z9 h6 M+ A8 |
output mcasp_aclkr,
6 I4 ?( B3 S2 `8 C. d. Ioutput axr1,
; L2 d2 S: Z  e& \# t/ p( f* N
assign mcasp_afsr = mcasp_afsx;4 q3 i# m( |% `+ D/ L1 |
assign mcasp_aclkr = mcasp_aclkx;
( C0 |/ f% s$ a: A) T" S& U8 {assign mcasp_ahclkr = mcasp_ahclkx;
: b) ]- X% ?* Y+ ^assign axr1 = axr0;

- A8 _3 D3 H. V" I- i+ J, C  M0 w
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. m4 }* X: k- m2 R" b. [4 w* B$ {, _
static void McASPI2SConfigure(void)
" R; Q/ }0 Q" F1 q5 t{& H0 G2 h  l) y* ]
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
$ C/ T( o2 }- ~1 M7 l$ \McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */4 W* e/ M6 a; q! ?0 D
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);4 ?5 X$ B# Z) ]  M
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
6 d6 d( ~$ }5 S- x: d6 i( KMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
+ n5 f: O/ X$ _7 G. d# I; NMCASP_RX_MODE_DMA);
/ h- ~5 I/ K1 ^1 H5 k4 ^: x8 PMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,5 E- z4 {  c/ b# V
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
( W* b4 [# e7 a3 A8 e- q6 h" HMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
" ^3 l0 T9 Q2 x) `5 x: X# q3 nMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
; c3 L' `+ ^/ G9 K7 N" @2 l% w& SMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, . W  w9 c! `$ A- T
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
! J# m' ]1 p% v0 HMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
( I* d9 B5 H  O2 J' P* GMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
# _/ w5 L2 p# UMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: ~. Z# ~9 d0 P$ J1 h( y3 s+ {0x00, 0xFF);
/* configure the clock for transmitter */
; M7 C6 K" O- J0 o+ eMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
$ s3 b1 ^! V+ Q/ ?; q9 aMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
  g$ t1 ~( n  M9 s: ^McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,8 A! h0 w. z9 Z! ~
0x00, 0xFF);/ A; i$ M: f6 I. ^8 H

' g; D3 W( l. p; O$ k/* Enable synchronization of RX and TX sections */
: u$ o9 X& ?& r" F- yMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */0 O, E4 Y( L. v+ T
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);1 n* z( a! A! `6 m( i
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*5 V& r0 F1 x) Q/ `0 V- L
** Set the serializers, Currently only one serializer is set as
! l" c5 R: T+ k4 s2 c6 b** transmitter and one serializer as receiver.1 Q/ y, {7 S5 E" T5 w
*/
7 |; ]" g7 s& X$ r0 p+ @: SMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
/ h* T& U% k) B4 l* Z: \, GMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
0 ?1 h, G( w% m1 E, S! T8 V7 z** Configure the McASP pins
# Q0 |8 q5 e0 ^9 v$ t' I$ q** Input - Frame Sync, Clock and Serializer Rx
, h3 ~! F: U  m5 ]** Output - Serializer Tx is connected to the input of the codec
8 D. J1 U2 Y( l1 G# Y*/
/ l" f( m' b3 ]9 x' rMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);; u3 h6 n9 u8 {- A
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));; h) z" L( G3 S* l2 E" Z
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
  C; Q9 O" }* n! y2 ^; S8 T| MCASP_PIN_ACLKX4 h8 P6 F4 D' R( z  X( S
| MCASP_PIN_AHCLKX) o3 i" \! C- ]) Z! A7 z
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
* S! q% |8 e8 b' fMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR # ?6 [: A; N" P1 D' d
| MCASP_TX_CLKFAIL
5 U/ M6 V; U0 P. C| MCASP_TX_SYNCERROR
/ d7 ^5 h, k8 R3 v- @) Q| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 6 {) `' A1 S! l) ~2 m! `8 y
| MCASP_RX_CLKFAIL9 I6 k! z% u) S3 M% F4 P) z
| MCASP_RX_SYNCERROR - t. l% Y$ ~5 r& V
| MCASP_RX_OVERRUN);" `0 g+ N0 c  i: u
}
static void I2SDataTxRxActivate(void)
; k  e3 ?! \. O& L, z{
9 ~4 D5 A& M) ^: \( C9 g4 `/ I/* Start the clocks */7 L) x7 A3 Z/ g* w
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
: Q- W4 ^! F$ {! g$ V  ~3 dMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
% _$ j! p: k7 [* F" cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
- x6 n: q. Y7 ]; O. BEDMA3_TRIG_MODE_EVENT);
  A2 b, B; I/ x' x) k, Z  ?/ D$ \EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
/ i! @& s: F' n4 k$ u# r5 a7 eEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
  O% H% {$ K# G+ t+ TMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);9 e$ w" |* C! C9 s
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
, G9 z8 l3 Y2 s$ r' G; awhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
# M5 |! L- r6 b0 [McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
' [8 c# x( R. _( C0 KMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
# v. J* X# }/ _( O}
# ]( @1 ^4 D9 V! \2 T' V' a* v
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

" L1 U* R! n2 ?+ |8 G: N! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 10:03 , Processed in 0.037478 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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