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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11775|回复: 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,
9 \4 i) e2 ?' M/ G5 S& vinput mcasp_ahclkx,
5 ]! g/ n( _9 k( @* x; uinput mcasp_aclkx,
4 S4 T7 m, m) `3 X. J5 Ninput axr0,
/ a5 k. d% l* r( [4 \% v5 L2 O' X8 b- p% n# c
output mcasp_afsr,
- n" N5 B* ]. Z( ?, j' ^output mcasp_ahclkr,
: C6 B$ e% z$ L" soutput mcasp_aclkr,+ r  n* f' L" D4 @
output axr1," l  n0 L( B) N; A% g/ n* \7 \! [) [: q
assign mcasp_afsr = mcasp_afsx;
/ ^% r3 Y* g4 i+ G' xassign mcasp_aclkr = mcasp_aclkx;6 R& k5 p# L# Z3 w0 Z
assign mcasp_ahclkr = mcasp_ahclkx;
" T- E3 o6 Q! E% j8 uassign axr1 = axr0;

% V6 N- {0 M" ^4 K7 q
$ [5 Y1 E* b4 s- q
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

( e) V/ U% c5 S- G7 V% h6 X
static void McASPI2SConfigure(void)
( N- E) B9 U6 S  \# t{1 d6 ^' B1 }1 W2 _* P' R7 I: t
McASPRxReset(SOC_MCASP_0_CTRL_REGS);4 x8 z) W! M+ I) X" d* g. y
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */* H7 \) g/ P4 z- H: H
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
3 a- W/ P& }4 w1 \$ y: I0 R/ c7 RMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
* u2 }: Y3 U! n" a% vMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," v" z7 i( p8 m! w% p  p  K% N
MCASP_RX_MODE_DMA);; d& S& T) g9 y: j7 `4 L3 E1 t
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,% g6 V! I/ s5 |0 h+ f! r+ |
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
4 H( {$ `9 W! P+ M/ vMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 1 e9 \" t6 `% F3 x
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
8 M( v& G% r( g/ GMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
! G6 K; W* B: q7 p  u8 nMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
* g: r4 `3 h# u/ \McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);% k2 }. {; |, `( {6 P: l
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); # L+ B4 B5 _6 m
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
2 {, ?. Y, }0 d3 q0 C, n( N0x00, 0xFF);
/* configure the clock for transmitter *// n% K7 @) i2 j3 k! y
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);* n3 p- C1 q' m9 Q9 u9 l! b8 H
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
9 T1 m. [1 k- v9 XMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,- d& w5 D, p$ T0 t2 i2 [: G+ R
0x00, 0xFF);% ]% e/ o5 V" q2 I3 \
$ e" I  E3 k8 u: l* ~2 H
/* Enable synchronization of RX and TX sections */
1 k5 A4 U4 y1 t* O$ O9 aMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */, l* e# e) W/ Z8 U/ J: X, h7 C
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);0 Y! ?; t: z- z. `! M4 \
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*+ o$ R. `1 Y! I1 R  @; {9 @" D6 J
** Set the serializers, Currently only one serializer is set as
- K/ e$ W9 |9 i; C, i9 ]** transmitter and one serializer as receiver.6 \! t: }& J3 O7 `
*/
- d" u; e0 o- ]7 y) v3 b; S' yMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);3 \% j; T+ g' s& z6 |) }+ U& u" G
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
4 a9 z, J8 p$ V7 b' e** Configure the McASP pins
0 E- o+ W: A, a0 F8 T** Input - Frame Sync, Clock and Serializer Rx
2 E" E; Y8 f" ~& U9 U# K** Output - Serializer Tx is connected to the input of the codec " B7 Y$ S: Y( h( {" r  o
*/- Z$ a3 A, Z2 W3 |; d& n3 Z
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
, b' I4 _! p* L0 }9 aMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));% ?/ @" P% ~0 ~
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
, ?, E. _: s5 L8 e9 Q| MCASP_PIN_ACLKX6 m4 A  r1 K* c4 b
| MCASP_PIN_AHCLKX" o" E! z. I3 D: s2 Z0 {& g
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */" R& w1 h2 V  f0 S* ~' a( H" a
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
2 z7 r" @0 d4 N+ b3 \* S| MCASP_TX_CLKFAIL
, a1 G3 ]* f) j* U& g; C: ?3 s| MCASP_TX_SYNCERROR) B7 [; z' c1 `. z0 k2 v% Z
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
: o( L$ B4 }; r: L# d  j+ n9 Y| MCASP_RX_CLKFAIL. B" F! V) v/ t1 r
| MCASP_RX_SYNCERROR
0 \5 {5 f6 M  Q- q  r/ X' p| MCASP_RX_OVERRUN);4 H; n9 l8 {$ m# u) ?
}
static void I2SDataTxRxActivate(void)
! q" U2 H& E& t{5 T% t* y2 S" H. [! g! E" }2 p5 o
/* Start the clocks */
; g+ A; {! l9 b" v3 V2 m6 nMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
* T0 w2 F, E5 c; B0 P: N: ]McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
5 S* |* Q3 u, f. T4 uEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,  p$ h2 j4 @- I# m" U# `3 r# O
EDMA3_TRIG_MODE_EVENT);( ]3 M! }' t* d! S" N! L9 {2 g
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 8 q" R( }  p: w+ r6 l6 N4 {
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
! I, W2 l4 o- @: ]2 x+ S2 RMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);0 i; E7 Y* N  I3 u, F
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
$ \. @1 l+ V7 F# y% Dwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */+ @* `  q, K# t( y- \4 r4 h
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
: F5 S' @, f0 e/ E, _McASPTxEnable(SOC_MCASP_0_CTRL_REGS);5 D; F; q" E7 i: |1 o) a6 g+ A' n
}
# M' z3 P5 A; r! g! e
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

, o$ w* x" A3 K8 u2 |0 F# a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 21:59 , Processed in 0.046258 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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