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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,5 `. f1 J6 u3 l* a0 I2 u
input mcasp_ahclkx,4 A& \2 s( C( u! {
input mcasp_aclkx,
! A- e! p8 v- I7 q- K/ tinput axr0,6 P( H4 G% h7 _5 P: z* \9 A
1 J2 l& q; ?3 z9 C& j
output mcasp_afsr,
: |& G, z: W- T; q# Zoutput mcasp_ahclkr,/ i4 N( p# \9 r0 j  v7 W
output mcasp_aclkr,
$ ]8 s! f7 i$ d5 d3 noutput axr1,
/ d. k7 A9 d' K* P2 G& U9 j1 l
assign mcasp_afsr = mcasp_afsx;  d% ?4 n3 w* Y- C0 M0 k  w: U' ^
assign mcasp_aclkr = mcasp_aclkx;; [3 M, ~7 L- b/ g, v( b* k
assign mcasp_ahclkr = mcasp_ahclkx;
0 }4 C+ k5 N3 }3 i; Xassign axr1 = axr0;
5 _8 }2 f& x  F- y- X3 S

6 K9 ?) @5 |6 B0 X6 D2 G$ r+ [8 e$ I
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. Z9 n6 S# `& _9 w: F
static void McASPI2SConfigure(void)  b! e, o% q- M1 ~! }/ Q
{# z5 {5 ^# S& p* F% d# a: z+ d
McASPRxReset(SOC_MCASP_0_CTRL_REGS);+ a) R' ?- E: a% Z1 {
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
0 x' v" f. b) q1 @; kMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
6 Q6 e. i4 l2 w. @+ bMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
4 S! }+ c) B" w$ H' u, lMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,0 _: c( v$ y+ W8 f
MCASP_RX_MODE_DMA);* m1 k  x% b8 }; R' H
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,, q6 l; E( \# Q8 D- q* X% V
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
9 e7 ~7 S! N: E5 t2 `9 e$ _" @McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, : ?1 B) J. }& w
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);( q" _) q) I% T6 X5 w
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, : i& I) i; z. v! \0 y
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */& |4 \9 n5 F- R, i
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);" K8 f2 `- B. Z
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); $ i5 F4 M( ~5 h: L' Q& u& ?
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,1 n4 L( M4 @1 f' ^9 b2 A- L
0x00, 0xFF);
/* configure the clock for transmitter */5 r: ^) y  n, A9 d; Y3 e
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
0 p3 o3 M; {9 n7 b8 @8 GMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
* S3 }; F5 m/ s$ R  |McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,8 a$ {6 a8 Y. H
0x00, 0xFF);% G9 i: o% B5 ~3 M" w

. H" b# Y' e1 T; @2 C+ B0 H/* Enable synchronization of RX and TX sections */ + ]. R* l) t5 ~8 M& A
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */5 ?) j$ S$ i0 g' F' t! W. b, A
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
" a/ I6 A" N& ?( O6 h/ ?( iMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
5 F5 m) I: q: ]. H3 S' r" z8 K** Set the serializers, Currently only one serializer is set as
* l& `' R5 k2 {: V** transmitter and one serializer as receiver.- S$ T  X9 G' ~3 b, L
*/
1 d! Z! h! d! o4 Y; o$ ^McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);9 k8 E- R5 L; c- m; `) s$ F2 z& s
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*6 Q& J& z: c- V0 o1 e3 M6 T1 ?; a
** Configure the McASP pins 0 }0 Q8 m5 C& J& u# a! n' y
** Input - Frame Sync, Clock and Serializer Rx2 d6 a( b* O: |9 N& |$ s
** Output - Serializer Tx is connected to the input of the codec * E1 `: ~' y% ^  H1 f, m/ q
*/& g% [8 x5 `( T
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
) R6 z4 B4 [) o* a( rMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
, p. X( N# g5 F! S9 k+ |* ?1 ZMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
  Y. x: F2 R- `| MCASP_PIN_ACLKX
# v& I4 E" p& s, K: L* ^| MCASP_PIN_AHCLKX) a0 s3 _. r$ C( Z& R3 f/ z! Q! R
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */$ X" s1 ~" |) `% W7 J) Q
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR # Q8 s+ P# u* e1 A% C
| MCASP_TX_CLKFAIL $ f) E9 j# i# h& M+ Q/ n! b
| MCASP_TX_SYNCERROR
0 M, s) ?& K% T2 S, U0 X# W0 u| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
, F7 O$ d) b4 j) F, V2 _& t% M| MCASP_RX_CLKFAIL, Z) a' }! k. J5 K# m/ d
| MCASP_RX_SYNCERROR
2 |% z/ l& R, }1 c8 L/ G" t| MCASP_RX_OVERRUN);
1 O! N! [% A! U3 c9 n- l  ?}
static void I2SDataTxRxActivate(void)
" g1 N- d# q5 d1 A; p  H' i' s9 O{
. f0 B! N0 `/ y' e+ S" e& T* K/* Start the clocks */
' g0 @  U; {) H0 M+ X6 d3 @1 aMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
! Q% u/ j2 v) G% S' l$ |5 \4 e# y7 WMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer *// Q: M; w4 g* ~1 F+ }; }- r
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,7 n+ n2 I5 B! y
EDMA3_TRIG_MODE_EVENT);
2 D3 n! {; {* `+ cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, + }8 L) @/ a1 Z
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
+ ~5 P; x! z' ~) u1 qMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);' b% `! e2 G3 r1 l  }5 D. e, u
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */1 D: P4 h  ]0 [: H
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */! L, [1 e* r5 I; T- A4 ]" G- E
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);+ D' t( n7 ]6 N6 F: u
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
2 M/ Z# i6 o* E6 t( I}

. E7 N# k8 S+ _, J
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
5 l6 _+ t: v! U5 v. [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 06:09 , Processed in 0.040315 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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