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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8909|回复: 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,
" ]) B% O  R' g6 M/ rinput mcasp_ahclkx,' u) \3 I+ ?6 s+ B+ e& k) K( M1 W
input mcasp_aclkx,
  z& Z6 x$ {2 U) Y/ {1 _input axr0,2 p/ @* k: N/ N  Q& h% g
2 C: f9 X8 H3 Y0 k- U; p6 F
output mcasp_afsr,
, w6 j% e' a; `2 ]/ {# Poutput mcasp_ahclkr,  Y' Y8 W0 b, f: _
output mcasp_aclkr,) }% n( r* v1 V) U" Z; N1 h
output axr1,
+ J8 K# q0 u0 `5 J3 ?- M
assign mcasp_afsr = mcasp_afsx;3 |7 T" G1 J7 p8 l" j6 c
assign mcasp_aclkr = mcasp_aclkx;) U/ G5 s  {" y3 s% O# T
assign mcasp_ahclkr = mcasp_ahclkx;8 W" \8 l. p  c
assign axr1 = axr0;

! t/ X4 H) ^+ [) t# G  K3 r: a4 Z+ n+ z0 N6 g0 [* T
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
0 p6 I$ ~3 J6 C3 A
static void McASPI2SConfigure(void)
; r! B' C' H  m' k& e{
2 o& p8 O% `1 S* _; G0 a$ dMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
% C% E4 J$ K. n! i+ dMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */8 `0 u8 J! T+ o$ V
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);& ~* F6 g- h6 C1 a* R) p% V
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
5 x& A3 t6 V& _8 OMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
7 ]0 Z0 T4 N  X8 V4 RMCASP_RX_MODE_DMA);  x* v7 B- W4 h2 S5 O
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
! P/ v+ I# G, x- c4 t8 `MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */8 J, X# x& ^/ R' m% l$ j$ {
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
" ^5 ~+ s% @3 E8 CMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);0 ?6 e: ^1 K, H" l
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ) a* K8 K, n/ I5 k
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
+ X) [) D( R4 e: m1 HMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);& L- Y0 A( C; B5 m7 P4 f
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ) Z) U: J% F% e' Z- l
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,) A, F( `5 s# z; \
0x00, 0xFF);
/* configure the clock for transmitter */- m. z! N$ Y# u( `- z4 R
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
; q+ }5 ~7 _7 g6 N8 a! oMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
7 a+ I# x2 Z& f% w9 v5 RMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32," ]& S' ]& D: z! ?( B" J
0x00, 0xFF);( [( v. D! u, P) @) _9 k& E3 V- i) r

. j8 l+ L7 P& \7 [/* Enable synchronization of RX and TX sections */
( K/ o! r+ Q  }( `McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */& @  S! Y6 ^( G' E: Y
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
5 p+ [- f. J* h& M" k! dMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*+ n/ x: o* j4 ]$ p' h$ ^+ I
** Set the serializers, Currently only one serializer is set as
1 c5 R1 c# h3 B8 b( c; [** transmitter and one serializer as receiver.7 c7 n, a" v9 r; N" M8 j1 V4 e
*/
/ n& U! v- K8 Z# p( x8 AMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
9 ]3 W* V) e6 g2 j* \3 l+ v# WMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*1 B" I5 C3 d/ [) f+ t% I" l
** Configure the McASP pins # U1 Q! L2 f! t1 F+ _7 ?
** Input - Frame Sync, Clock and Serializer Rx
# Y, X! l+ a6 T' w' ^9 T2 S** Output - Serializer Tx is connected to the input of the codec
# @, v& ?# K0 R*/6 K  Q  @; _4 T- N8 d* }( @$ ?
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
3 Y  C: r% y8 v5 GMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));: Y  j3 D: i* i; W0 E
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX- |1 a( N7 x4 b4 b
| MCASP_PIN_ACLKX( Y1 T) W( `4 V7 w! O+ _& W
| MCASP_PIN_AHCLKX; E% b/ E+ P& g, d6 r$ z$ D
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
9 }7 m, t4 J4 N- N" X9 vMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
; H; k5 m$ G: x  N- w| MCASP_TX_CLKFAIL . t4 q/ \) H  R
| MCASP_TX_SYNCERROR0 b8 |0 I3 Z6 I7 t. U
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 3 X! U3 |, @5 h$ I( e7 u
| MCASP_RX_CLKFAIL: m. c0 B- C: o# s  \4 G
| MCASP_RX_SYNCERROR ' B/ |4 s/ ]# P$ z. V; |
| MCASP_RX_OVERRUN);3 ]4 a; F7 @' `3 f5 K
}
static void I2SDataTxRxActivate(void), ]" i. s& S$ ]6 p0 S0 m# _
{7 k. j0 e  S& c
/* Start the clocks */
1 U! R# p" H' [7 C. ~) z& p( vMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
. ], T2 y: N) F) t7 gMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */% P: g( Q& V) b) g; K# j
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
! C  i' t* L% c8 l) p0 \EDMA3_TRIG_MODE_EVENT);) R1 f: p6 o6 O- |6 S
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
  `% e' h  H& }7 c4 j0 gEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */9 `+ [/ G4 c0 Q9 B# H2 j. E* {
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
1 o+ z' l" ~" i& P! B) CMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
/ b, K& J. }; ]7 c: J7 Hwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */9 y$ t3 W; e& [! u3 v
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
# u  @: Y* |! e: A# B6 f9 mMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);" a! u" m& V' V  ]
}
! \7 J! I; F# h# l
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
$ ]3 S  `0 s% _; B' A/ Y8 H4 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 23:58 , Processed in 0.039728 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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