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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11826|回复: 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,
4 _. S( w2 A# j, v# X9 Rinput mcasp_ahclkx," v% I8 ]) h* ?  z+ u& `7 _
input mcasp_aclkx,6 p: [9 a- W; e0 y; Y  [: Z* ^% s
input axr0,% B, l+ Z: _9 Y1 m

' L5 s( x, Y. D$ Koutput mcasp_afsr,- {, G9 e/ i$ H+ N8 v/ G% ?$ j9 _
output mcasp_ahclkr,! c* ]0 j6 l' u1 j
output mcasp_aclkr,8 D. j6 W: f' a$ I* @
output axr1,
3 {6 D1 L" g$ G, A. G, V' W
assign mcasp_afsr = mcasp_afsx;7 h3 g# j, _6 d: v1 f3 v
assign mcasp_aclkr = mcasp_aclkx;
$ F  J% ?/ E1 Q& I8 i5 G  h7 ]assign mcasp_ahclkr = mcasp_ahclkx;
5 m, W; \  X( G) K! Nassign axr1 = axr0;
4 x6 y/ y* u  G. o5 R" _. ~

, E5 F& f% O9 F8 g1 n' H
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
  ?4 [" ~+ ~6 D4 P! _" E) ]( A/ d: M
static void McASPI2SConfigure(void)2 y! N" P  X; Y) n: E
{
# C, \; ^: g8 GMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
2 M* q2 Y$ M9 M3 k( ~McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */5 X- _2 Y- I; K* n# N& r! a2 w$ z
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
& x- g' V6 C0 \* }0 Z" @/ [McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
; p3 z: \% m! l7 pMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
2 M* g+ {; g# k" `5 Z: b5 pMCASP_RX_MODE_DMA);; M6 m' q+ t  G: u& N
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
9 c' [6 H7 I0 L$ zMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */2 y7 B$ d$ U3 ]) K0 d
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
. v  H( i) Q; G2 F3 @MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
# {: M) o6 B1 ^& i: f6 UMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
4 c& E- T) M* f. }" d( XMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
0 M7 H% [+ G  d0 P# Q) {# ~3 _- r! mMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
0 n, O, x" `# I+ w1 n* ^3 FMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); - G& I: p* o" t
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
, _8 |9 x/ ]+ s. q0x00, 0xFF);
/* configure the clock for transmitter */
( ^# h6 W' `3 Z6 M( P: ]9 a+ Z. p0 eMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
4 T9 k% |, b* ^1 ZMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 1 G$ k: \9 m0 K. Q- L5 f2 @3 Y" o; h
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,+ O3 a1 g1 z# Z- V0 b5 B$ l
0x00, 0xFF);
  e! N! g' h# J, N9 g) h; R5 A* S* z/ y1 s) B4 U! e; g
/* Enable synchronization of RX and TX sections */ + p& a: u: E- l+ E
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
. ~. R6 {, A: n% q* YMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
& _) Z  `! Y& ?$ eMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/** c0 ^  X) I9 m; F$ T8 L
** Set the serializers, Currently only one serializer is set as
0 M# O4 F1 y% G$ a% d* ]: N0 V8 `& u% X** transmitter and one serializer as receiver.
% e/ H' r7 p4 b+ }$ h! f  }* G*/8 S/ _' i- W( b  n4 y  h
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 q! ?- P+ ~5 a, d* ^McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
0 V) E% Y" L/ B3 N9 W& y0 X* q( o** Configure the McASP pins
! r4 N" l, f. v  Q# n+ j** Input - Frame Sync, Clock and Serializer Rx
7 i  `# |- P4 K/ L8 C) V5 [. N- F** Output - Serializer Tx is connected to the input of the codec " ^  V, p; C: V, t
*/3 c) d, L; K2 f9 d# @
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
# f, W# f7 f$ U/ T* pMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));0 }  b+ y* l, E1 ?  Q+ Y6 O1 x# i
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
; r% @: p+ |- e7 I0 `| MCASP_PIN_ACLKX
& }$ Q0 j: ^9 x1 z| MCASP_PIN_AHCLKX
% U! W: ?8 A3 {0 {+ a# K| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
- h) L3 e- S" W4 t. {5 @: p0 ?McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 4 I! n$ o1 v0 ~& y: z
| MCASP_TX_CLKFAIL
4 u' w0 i( E/ M) O2 |4 Z( d4 h| MCASP_TX_SYNCERROR
& V% U( c, d% V- J| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
: c2 c  \& S4 C% t' T3 @% E| MCASP_RX_CLKFAIL
3 ]$ R7 u6 y" M1 H7 o| MCASP_RX_SYNCERROR
! w' I+ Z+ N* @6 B- q) J) }| MCASP_RX_OVERRUN);
& c# ]0 J" i5 }5 r7 @8 _}
static void I2SDataTxRxActivate(void)
% O' ^2 C" h* }) k; P{4 g1 p7 u! R5 S5 n# Y! |
/* Start the clocks */) l; L1 h, z' y) v7 \/ W5 m# E
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
; O; j2 j7 \8 R7 A2 BMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */' o, [. [! F2 d: i
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
0 u& r$ n9 u1 \# w5 @EDMA3_TRIG_MODE_EVENT);
% d6 s! x: F2 dEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, + t% s  K; V3 ?+ g9 {7 `9 H! N; H
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
! `2 T' H- y" Z+ {: {$ S# tMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);' O; s8 ~6 K) Y. N; Z
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
- ]+ u+ ^1 j4 nwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */8 B, A& w" I/ m2 j
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);2 w) l/ B  E0 y. j& q& W
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
( O6 L- ?. m& E% d: O0 m}
: m  B' q  ?1 x. }
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

! B9 a% p* h( Y$ v1 n/ O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 16:33 , Processed in 0.039759 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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