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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11865|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,1 f  \( \8 a' c
input mcasp_ahclkx,! [' q" G( P* d9 Z; z
input mcasp_aclkx,
% Y- u( N$ n& Minput axr0,3 p6 Q& l8 E# F! p: g  F

/ i8 o4 |" ]$ i: _4 Joutput mcasp_afsr,7 K% S1 T5 |/ U4 z: W! o1 T
output mcasp_ahclkr,
) X7 \  V5 H7 k# w! toutput mcasp_aclkr,
) G$ V9 ]% |9 L8 N! e  k) ioutput axr1,, z" i( `4 l; n  C- {# [. ^
assign mcasp_afsr = mcasp_afsx;- o+ ?8 E( W$ A  y: v/ O2 @
assign mcasp_aclkr = mcasp_aclkx;3 i  v9 n  P. P6 h' m$ E
assign mcasp_ahclkr = mcasp_ahclkx;) F! R7 z% B) Z  I( s
assign axr1 = axr0;

: ]" G5 D6 g7 X4 T' Z! c" L5 t) ~$ P8 e  b: B& q& [
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
! B- f( E3 T8 J: N
static void McASPI2SConfigure(void)$ G+ e9 w- e+ t% n' J# T) \
{
# \) H4 d, R3 @5 u; Y, e$ w6 Q( RMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
, l" G6 c9 O- u$ j$ O2 X4 EMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
8 J. i7 n# A: xMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);- y1 s/ n& a9 S  |" P- D9 l
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */% G+ n  m4 H0 t* v
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 j/ y, `9 R/ c. r4 e. R/ _& K. C2 ^
MCASP_RX_MODE_DMA);  u0 K( L8 {  r+ w
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
2 g* y* Y" u2 r  Y1 P# E/ M4 k" ^MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
8 p5 j: t9 G2 y% b. w4 p: p0 g' uMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,   v( m5 B$ S/ d3 D9 ~# ?
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);: C# G/ i4 o& p# _. u$ p: r, L  I( W
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, $ v/ G7 ^' j# F, g% a4 W) h
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
' P4 J. t( a* z, Q8 @9 tMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
) u/ n8 c# z2 S, R. L  j- PMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
, {1 e$ [, ^$ k  v3 }7 |McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,' ?$ U5 S: D+ }9 @
0x00, 0xFF);
/* configure the clock for transmitter */
! E3 i6 p* J3 tMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
  Q% h$ S8 @$ G9 W' m6 @. [4 uMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
/ f1 }+ [8 T' d, j3 iMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,9 N4 w) N1 I8 u: o
0x00, 0xFF);' i+ N" M/ e. {4 Z& J
3 H3 D6 L2 A, H, v, i5 E
/* Enable synchronization of RX and TX sections */ 7 ]% _0 Z' y' `. Y  l! U
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
8 c7 O: W4 E5 |% c) hMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);  P( P7 {2 _& [6 r
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
- i" z% P3 L9 ]2 Y. k$ n** Set the serializers, Currently only one serializer is set as
3 M( L+ d. K  H0 ~) c# m** transmitter and one serializer as receiver.
# s" q( ?' B6 ~- M/ S5 ?# M& W$ B*/  S5 T7 o1 J# k8 k1 ^5 ^+ l$ z
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
3 K3 H/ H: w" z9 yMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
, l9 N- u$ U0 L5 m** Configure the McASP pins , N7 J& D- L8 ?/ J
** Input - Frame Sync, Clock and Serializer Rx& q' D) n" p+ {+ B( X4 b; w9 |
** Output - Serializer Tx is connected to the input of the codec 3 T1 p2 `1 e- Y- d) ?  y! D0 x
*/
2 h: t* _; N3 }$ Y3 N6 u* G" cMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);0 F# p* ^; F9 D) m! r! ^
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));! b1 W8 K6 F& u( H
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
) g, y# i2 r( L0 I/ j/ U. }| MCASP_PIN_ACLKX; B6 t( a  o: s+ T- j0 w( L
| MCASP_PIN_AHCLKX4 a3 ^; a* U! d7 U
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
9 N* R  J+ x! \' jMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ! v8 a! T( l# Z# r4 V  L
| MCASP_TX_CLKFAIL   O# i! c" o, F+ l: D% s6 [
| MCASP_TX_SYNCERROR
: O" w0 [& ~0 I. b- n| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 8 R6 w1 h4 w7 M' F6 g8 K# g9 ^3 L" h
| MCASP_RX_CLKFAIL$ i5 k9 V; H3 T9 U
| MCASP_RX_SYNCERROR
: N4 ~% A0 `4 J  ]6 Y* x| MCASP_RX_OVERRUN);
) D! ~8 p; W- }! Z9 X}
static void I2SDataTxRxActivate(void)' r( }1 {. l2 O* @1 D3 K6 g
{
+ E: K$ J" J$ R6 C8 v( }: y; U4 H8 c  d/* Start the clocks */& j) m5 O) p8 D2 y% J, f3 p
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
7 `( v, v3 B% u  T: w1 qMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
- Y+ d! v4 \5 U3 Y. eEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
# j! _+ J' s9 J' `/ V; F/ EEDMA3_TRIG_MODE_EVENT);
: t8 k) h5 i  Z' i; O; qEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 7 o) X9 ?3 L) \
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
' @4 g" F- {; u% ?1 e5 L- L, ~9 KMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);! ]7 y9 Y6 d- b# i& U/ M
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
' q9 _  ]5 R0 d: v7 nwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */5 I* x1 S" B! P" I
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
! l$ F! @6 o, sMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);5 F( ^- @0 B* [! i( g
}
! g! D5 z. Z6 T
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 U4 q1 w3 y2 X7 W( N0 P; E4 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 15:26 , Processed in 0.041419 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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