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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12076|回复: 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,( T, H' U6 a# h- a
input mcasp_ahclkx,
0 i9 f0 c( w1 I; l3 g$ Y$ rinput mcasp_aclkx,
( ~1 L" c! {% y8 cinput axr0,
6 w, y5 A7 h# k! z9 M
5 o" e6 V, ~* Z- l& Eoutput mcasp_afsr,
3 X: A$ y0 E; k. [1 zoutput mcasp_ahclkr,8 [$ }4 D) _3 |" b
output mcasp_aclkr," r( x4 g! v! a
output axr1,
# X& {" Z/ B& t
assign mcasp_afsr = mcasp_afsx;
( h- C3 \& s& N8 u1 {assign mcasp_aclkr = mcasp_aclkx;9 Q. Z9 n/ o+ t1 A, o- B
assign mcasp_ahclkr = mcasp_ahclkx;/ I6 n' X6 m* B
assign axr1 = axr0;
+ k  A7 I8 O, A

* c) t$ h3 A1 }$ S
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
$ Y3 ~2 _" x$ a, x, t
static void McASPI2SConfigure(void)
  L8 B  d) F  y& t% @$ N{  O' {# N/ w2 B: p# ^& J' {
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
. e+ l% v' q3 I7 W! `- C* }; kMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */$ ~# s# n" [9 V
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
, _" [7 P5 U9 x3 C) h* ?+ rMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
% i. \" O) K! L' fMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,6 S4 R4 f( w, [  J7 Q4 c0 J  y1 J
MCASP_RX_MODE_DMA);
+ l: M8 s* |/ X6 `McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,+ l, L; h' j9 f% j( H" o
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
7 d6 t; c# A* t) G6 GMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, + A0 u' @+ H' Q( ]& q0 }- W7 B  \! X1 h. R
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);! i. y+ R& E$ }0 E% _" B
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
0 q% y: H2 ?1 s" pMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */3 p1 K# P/ v" v3 }- k
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);6 H( a# _5 G6 z2 p- U
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ; |1 V7 W4 N5 D1 ~1 [: b/ i3 H
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,( d$ |! o  E/ y  Y3 h+ s
0x00, 0xFF);
/* configure the clock for transmitter */% J' L( B( S) ^  s. i$ R
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
$ h$ Y/ D$ u# N3 |6 b* i! r1 E& [McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
! m) w& ]+ B0 I0 |2 G& PMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
4 _) |/ c. u. @/ F4 W0x00, 0xFF);
$ B: c* Z7 {6 B! Y1 g) K7 j  u) p/ z
& T  ^- v6 a8 ]% f5 C+ {/* Enable synchronization of RX and TX sections */
9 x, C. L9 k" o0 OMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
0 x1 O% v' {3 \- }McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);9 j+ }* g# M( F5 _
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*7 G( A7 r) \$ E4 z7 j4 ~0 Y
** Set the serializers, Currently only one serializer is set as; i1 a/ {- _3 u. a8 R
** transmitter and one serializer as receiver.
: @* j& S7 B" g1 w% z*/
- g" |/ q9 }) c: S, Q3 p! jMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);7 `/ L" k% w- k2 S
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
( k  ?) \" ~2 @** Configure the McASP pins : `* Y8 h6 J: d+ n6 c; L
** Input - Frame Sync, Clock and Serializer Rx
! T+ C5 ?5 S) \7 [- U; g& T. ~/ D** Output - Serializer Tx is connected to the input of the codec 1 R+ A) H: L: C; I* n  k( a
*/
4 i: `# x: r/ f" k& A2 g/ vMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
4 V0 G, R! G5 U% ]McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
$ h+ V0 t$ _* D3 ~3 J! c9 I; oMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
. X( D$ `# P7 L: a, e5 e| MCASP_PIN_ACLKX
% q& H! U0 ^' n7 j. f# }7 d| MCASP_PIN_AHCLKX
6 Y! _0 w( G3 `. T1 `5 J| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */" ]% {* s7 c5 J2 I
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
7 y) x+ `2 W  \& f; B; Z7 o| MCASP_TX_CLKFAIL
  u, t' w, j1 A& G! z  j| MCASP_TX_SYNCERROR
9 g% e( l, G4 A+ ~| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 3 A6 f8 f# J+ a* g
| MCASP_RX_CLKFAIL
4 b2 z1 t4 l5 A' W, \( P. d| MCASP_RX_SYNCERROR 0 i5 p# b4 K) A  H+ y3 @
| MCASP_RX_OVERRUN);, F' I! s; h& |" y
}
static void I2SDataTxRxActivate(void)* U2 o) k3 K! P1 F
{
* ^* t/ l  E3 H/* Start the clocks */
; x: ?: q5 d$ {5 Z$ s4 PMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, I$ X; P! m4 ?( u* |( F" a
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */8 i; W/ M+ M5 p7 X7 N
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,, {& D" r5 ?6 C
EDMA3_TRIG_MODE_EVENT);: f/ p3 F! B$ c' w4 [4 l! k1 @
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 4 B3 `' O4 m/ ^
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
& \: d2 j7 J8 I4 R+ a4 yMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
  |7 K( Q$ P/ w+ k$ b3 eMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */0 h8 y) W; I8 ?! l! z8 b
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. f- G/ |' W: U5 z, G
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
& s/ y, n0 W0 v9 M0 o+ ?$ w4 r! v& }% yMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
3 B) L$ {% o: C3 J# S# }5 R}

8 m. D# u9 z1 j
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* O5 T5 T, e' w! o0 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-27 03:38 , Processed in 0.042119 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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